From 22465e8da4e123c17a219f747044fcaf33edeafc Mon Sep 17 00:00:00 2001
From: Chengdong Fu <fucd@ihep.ac.cn>
Date: Wed, 21 Oct 2020 11:11:02 +0800
Subject: [PATCH] fix error on field unit

---
 .../KalDet/src/ild/ftd/ILDFTDKalDetector.cc   |  8 ++-----
 .../KalDet/src/ild/set/ILDSETKalDetector.cc   |  5 +++--
 .../KalDet/src/ild/sit/ILDSITKalDetector.cc   | 21 +++++++------------
 .../src/ild/support/ILDSupportKalDetector.cc  | 13 ++++++------
 .../KalDet/src/ild/tpc/ILDTPCKalDetector.cc   |  3 ++-
 .../KalDet/src/ild/vxd/ILDVXDKalDetector.cc   |  6 ++++--
 6 files changed, 26 insertions(+), 30 deletions(-)

diff --git a/Utilities/KalDet/src/ild/ftd/ILDFTDKalDetector.cc b/Utilities/KalDet/src/ild/ftd/ILDFTDKalDetector.cc
index 799bddf9..06246a68 100644
--- a/Utilities/KalDet/src/ild/ftd/ILDFTDKalDetector.cc
+++ b/Utilities/KalDet/src/ild/ftd/ILDFTDKalDetector.cc
@@ -8,6 +8,7 @@
 #include "DetInterface/IGeoSvc.h"
 #include "DD4hep/Detector.h"
 #include "DDRec/DetectorData.h"
+#include "DD4hep/DD4hepUnits.h"
 
 #include "gear/GEAR.h"
 #include "gear/BField.h"
@@ -29,7 +30,6 @@
 ILDFTDKalDetector::ILDFTDKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geoSvc ) : 
 TVKalDetector(300), _nDisks(0) // SJA:FIXME initial size, 300 looks reasonable for ILD, though this would be better stored as a const somewhere
 {
-  
   // streamlog_out(DEBUG1) << "ILDFTDKalDetector building FTD detector using GEAR " << std::endl ;
   
   MaterialDataBase::Instance().registerForService(gearMgr, geoSvc);
@@ -41,15 +41,11 @@ TVKalDetector(300), _nDisks(0) // SJA:FIXME initial size, 300 looks reasonable f
   }
 
   this->build_staggered_design();
-
   
   SetOwner();
   
 }
 
-
-
-
 void ILDFTDKalDetector::build_staggered_design() {
   
   // streamlog_out(DEBUG) << "ILDFTDKalDetector::build_staggered_design " << std::endl;
@@ -532,7 +528,7 @@ void ILDFTDKalDetector::setupGearGeom( IGeoSvc* geoSvc ){
   }
   
   const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-  _bZ = field.z();
+  _bZ = field.z()/dd4hep::tesla;
 
   double strip_angle_deg = ftdData->angleStrip/CLHEP::degree;
   bool strip_angle_present = true;
diff --git a/Utilities/KalDet/src/ild/set/ILDSETKalDetector.cc b/Utilities/KalDet/src/ild/set/ILDSETKalDetector.cc
index f1f7c675..e1c0dee1 100644
--- a/Utilities/KalDet/src/ild/set/ILDSETKalDetector.cc
+++ b/Utilities/KalDet/src/ild/set/ILDSETKalDetector.cc
@@ -20,6 +20,7 @@
 #include "gearimpl/Util.h"
 
 #include "CLHEP/Units/SystemOfUnits.h"
+#include "DD4hep/DD4hepUnits.h"
 #include "TMath.h"
 
 #include "math.h"
@@ -46,7 +47,7 @@ ILDSETKalDetector::ILDSETKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geo
   else{
     setupGearGeom( gearMgr );
   }
-  
+
   if (_isStripDetector) {
     // streamlog_out(DEBUG4) << "\t\t building SET detector as STRIP Detector." << std::endl ;
   } else {
@@ -311,7 +312,7 @@ void ILDSETKalDetector::setupGearGeom( IGeoSvc* geoSvc ){
   }
 
   const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-  _bZ = field.z();
+  _bZ = field.z()/dd4hep::tesla;
 
   std::vector<dd4hep::rec::ZPlanarData::LayerLayout>& setlayers = setData->layers;
   _nLayers = setlayers.size();
diff --git a/Utilities/KalDet/src/ild/sit/ILDSITKalDetector.cc b/Utilities/KalDet/src/ild/sit/ILDSITKalDetector.cc
index 1c409d64..b63364d1 100644
--- a/Utilities/KalDet/src/ild/sit/ILDSITKalDetector.cc
+++ b/Utilities/KalDet/src/ild/sit/ILDSITKalDetector.cc
@@ -13,6 +13,7 @@
 #include "DD4hep/Detector.h"
 #include "DDRec/DetectorData.h"
 #include "CLHEP/Units/SystemOfUnits.h"
+#include "DD4hep/DD4hepUnits.h"
 
 #include <gear/GEAR.h>
 #include "gear/BField.h"
@@ -30,28 +31,26 @@
 ILDSITKalDetector::ILDSITKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geoSvc )
 : TVKalDetector(300) // SJA:FIXME initial size, 300 looks reasonable for ILD, though this would be better stored as a const somewhere
 {
+  // std::cout << "ILDSITKalDetector building SIT detector using GEAR " << std::endl ;
   
-  
-  // streamlog_out(DEBUG4) << "ILDSITKalDetector building SIT detector using GEAR " << std::endl ;
-
   MaterialDataBase::Instance().registerForService(gearMgr, geoSvc);
   
   TMaterial & air       = *MaterialDataBase::Instance().getMaterial("air");
   TMaterial & silicon   = *MaterialDataBase::Instance().getMaterial("silicon");
   TMaterial & carbon    = *MaterialDataBase::Instance().getMaterial("carbon");
+
   if(geoSvc){
     this->setupGearGeom(geoSvc);
   }
   else{
     this->setupGearGeom(gearMgr) ;
   }
-
+  
   if (_isStripDetector) {
     // streamlog_out(DEBUG4) << "\t\t building SIT detector as STRIP Detector." << std::endl ;    
   } else {
     // streamlog_out(DEBUG4) << "\t\t building SIT detector as PIXEL Detector." << std::endl ;    
   }
-
   
   //--The Ladder structure (realistic ladder)--
   int nLadders;
@@ -141,9 +140,7 @@ ILDSITKalDetector::ILDSITKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geo
           }
           
           
-          // streamlog_out(DEBUG0) << "ILDSITKalDetector add surface with CellID = "
-          // << CellID
-          // << std::endl ;
+	  //std::cout << "ILDSITKalDetector add surface with CellID = " << CellID << std::endl ;
           
         }
         
@@ -187,10 +184,8 @@ ILDSITKalDetector::ILDSITKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geo
             Add(new ILDParallelPlanarMeasLayer(silicon, silicon, sensitive_distance+sensitive_thickness*0.5, currPhi, _bZ, measurement_plane_sorting_policy, width, sensor_length, offset, z_centre_sensor, offset, true, CellID, "SITMeaslayer" )) ;
           }
 
-                                    
-          // streamlog_out(DEBUG0) << "ILDSITKalDetector add surface with CellID = "
-          // << CellID
-          // << std::endl ;
+	  
+	  //std::cout << "ILDSITKalDetector add surface with CellID = " << CellID << std::endl ;
 
           
         }
@@ -312,7 +307,7 @@ void ILDSITKalDetector::setupGearGeom( IGeoSvc* geoSvc ){
   }
 
   const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-  _bZ = field.z();
+  _bZ = field.z()/dd4hep::tesla;
 
   std::vector<dd4hep::rec::ZPlanarData::LayerLayout>& sitlayers = sitData->layers;
   _nLayers = sitlayers.size();
diff --git a/Utilities/KalDet/src/ild/support/ILDSupportKalDetector.cc b/Utilities/KalDet/src/ild/support/ILDSupportKalDetector.cc
index 98a6f247..c3bd0c5f 100644
--- a/Utilities/KalDet/src/ild/support/ILDSupportKalDetector.cc
+++ b/Utilities/KalDet/src/ild/support/ILDSupportKalDetector.cc
@@ -19,6 +19,7 @@
 #include "DD4hep/Detector.h"
 #include "DDRec/DetectorData.h"
 #include "CLHEP/Units/SystemOfUnits.h"
+#include "DD4hep/DD4hepUnits.h"
 
 #include "gear/GEAR.h"
 #include "gear/BField.h"
@@ -37,11 +38,11 @@ TVKalDetector(10)
     const dd4hep::rec::ConicalSupportData* pBeamPipeData = geoSvc->getBeamPipeData();
     const std::vector<dd4hep::rec::ConicalSupportData::Section>& sections = pBeamPipeData->sections;
     const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-    bz = field.z();
+    bz = field.z()/dd4hep::tesla;
     for(int i=0;i<sections.size();i++){
-      z.push_back(sections[i].zPos);
-      rInner.push_back(sections[i].rInner);
-      rOuter.push_back(sections[i].rOuter);
+      z.push_back(sections[i].zPos*CLHEP::cm  );
+      rInner.push_back(sections[i].rInner*CLHEP::cm );
+      rOuter.push_back(sections[i].rOuter*CLHEP::cm );
     }
   }
   else{
@@ -54,8 +55,8 @@ TVKalDetector(10)
     rInner = pBeamPipe.getDoubleVals("RInner"); //inner radius of the cone
     rOuter = pBeamPipe.getDoubleVals("ROuter"); //outer radius of the cone
   }
-  //for(int i=0;i<sections.size();i++){
-  //  std::cout << z[i] << " " << rInner[i] << " " << rOuter[i] << std::endl;
+  //for(int i=0;i<z.size();i++){
+  //std::cout << z[i] << " " << rInner[i] << " " << rOuter[i] << std::endl;
   //}
   MaterialDataBase::Instance().registerForService(gearMgr, geoSvc);
   TMaterial & beam      = *MaterialDataBase::Instance().getMaterial("beam");
diff --git a/Utilities/KalDet/src/ild/tpc/ILDTPCKalDetector.cc b/Utilities/KalDet/src/ild/tpc/ILDTPCKalDetector.cc
index fbb5f380..3f36963f 100644
--- a/Utilities/KalDet/src/ild/tpc/ILDTPCKalDetector.cc
+++ b/Utilities/KalDet/src/ild/tpc/ILDTPCKalDetector.cc
@@ -14,6 +14,7 @@
 #include "DD4hep/Detector.h"
 #include "DDRec/DetectorData.h"
 #include "CLHEP/Units/SystemOfUnits.h"
+#include "DD4hep/DD4hepUnits.h"
 
 #include "gear/GEAR.h"
 #include "gear/BField.h"
@@ -52,7 +53,7 @@ TVKalDetector(250) // SJA:FIXME initial size, 250 looks reasonable for ILD, thou
     }
 
     const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-    bz = field.z();
+    bz = field.z()/dd4hep::tesla;
     nlayers = tpcData->maxRow;
     lhalf = tpcData->driftLength*CLHEP::cm;
     rstep = tpcData->padHeight*CLHEP::cm;
diff --git a/Utilities/KalDet/src/ild/vxd/ILDVXDKalDetector.cc b/Utilities/KalDet/src/ild/vxd/ILDVXDKalDetector.cc
index edf608f8..cebb37ef 100644
--- a/Utilities/KalDet/src/ild/vxd/ILDVXDKalDetector.cc
+++ b/Utilities/KalDet/src/ild/vxd/ILDVXDKalDetector.cc
@@ -14,6 +14,7 @@
 #include "DD4hep/Detector.h"
 #include "DDRec/DetectorData.h"
 #include "CLHEP/Units/SystemOfUnits.h"
+#include "DD4hep/DD4hepUnits.h"
 
 #include <gear/GEAR.h>
 #include "gear/BField.h"
@@ -48,13 +49,14 @@ ILDVXDKalDetector::ILDVXDKalDetector( const gear::GearMgr& gearMgr, IGeoSvc* geo
   TMaterial & aluminium = *MaterialDataBase::Instance().getMaterial("aluminium");
   
   _vxd_Cryostat.exists = false;
-  
+
   if(geoSvc){
     this->setupGearGeom(geoSvc) ;
   }
   else{
     this->setupGearGeom(gearMgr) ;
   }
+
   //--The Ladder structure (realistic ladder)--
   int nLadders;
   
@@ -398,7 +400,7 @@ void ILDVXDKalDetector::setupGearGeom( IGeoSvc* geoSvc){
   }
   */
   const dd4hep::Direction& field = geoSvc->lcdd()->field().magneticField(dd4hep::Position(0,0,0));
-  _bZ = field.z();
+  _bZ = field.z()/dd4hep::tesla;
   
   const gear::ZPlanarParametersImpl* pVXDDetMain = geoSvc->getVXDParameters();
   const gear::VXDLayerLayout& pVXDLayerLayout = pVXDDetMain->getVXDLayerLayout();
-- 
GitLab