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