diff --git a/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml b/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml index 44c3378af654b7946be479c5eb7a792c6d6491f9..e99dd88c3d974b0e3a326fd34ea6e5a1af91f936 100644 --- a/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml +++ b/Detector/DetCRD/compact/CRD_common_v02/FTD_SkewRing_v01_04.xml @@ -1,7 +1,7 @@ <lccdd> <define> - <constant name="SiliconThickness" value="1.0*mm"/> - <constant name="SupportThickness" value="2.0*mm"/> + <constant name="SiliconThickness" value="0.2*mm"/> + <constant name="SupportThickness" value="1.4925*mm"/> <!--equivalent from 2mm carbon fiber to carbon/--> <constant name="ModuleZGap" value="2.0*mm"/> <constant name="ModuleRPhiGap" value="-10*mm"/> <constant name="FTDPetalNumber" value="16"/> @@ -19,38 +19,38 @@ <layer id="0" z="SiTracker_endcap_z1" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z1*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius1" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> - <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="G4_Si" thickness="SiliconThickness/2" vis="FTDSensitiveVis" sensitive="yes"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> <layer id="1" z="SiTracker_endcap_z2" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z2*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius2" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> - <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="G4_Si" thickness="SiliconThickness/2" vis="FTDSensitiveVis" sensitive="yes"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> <layer id="2" z="SiTracker_endcap_z3" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z3*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius3" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> <layer id="3" z="SiTracker_endcap_z4" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius4" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> - <layer id="4" z="SiTracker_endcap_z5" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius5" + <layer id="4" z="SiTracker_endcap_z5" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z5*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius5" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> - <layer id="5" z="SiTracker_endcap_z6" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z4*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius6" + <layer id="5" z="SiTracker_endcap_z6" dz="0.5*ModuleZGap" inner_r="SiTracker_endcap_z6*tan(acos(Global_endcap_costheta))*cos(pi/FTDPetalNumber)" outer_r="SiTracker_endcap_outer_radius6" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> <layer id="6" z="SiTracker_endcap_z7" dz="0.5*ModuleZGap" inner_r="Ecal_endcap_inner_radius" outer_r="SiTracker_endcap_outer_radius7" phi0="0" gap="ModuleRPhiGap" is_pixel="true" nmodules="FTDPetalNumber" vis="SeeThrough"> <component material="G4_Si" thickness="SiliconThickness" vis="FTDSensitiveVis" sensitive="yes"/> - <component material="CarbonFiber" thickness="SupportThickness" vis="FTDSupportVis"/> + <component material="Carbon" thickness="SupportThickness" vis="FTDSupportVis"/> </layer> </detector> diff --git a/Detector/DetCRD/compact/CRD_common_v02/materials.xml b/Detector/DetCRD/compact/CRD_common_v02/materials.xml index b7205315712174e04014ed02459f627dd8bc9f28..57b8871e99b3a02105e6c256514b1e2095b2473b 100644 --- a/Detector/DetCRD/compact/CRD_common_v02/materials.xml +++ b/Detector/DetCRD/compact/CRD_common_v02/materials.xml @@ -409,6 +409,10 @@ <fraction n="0.0433592706" ref="Si"/> <fraction n="0.00232484085105981" ref="H"/> </material> + <material name="Carbon" state="solid"> + <D unit="g/cm3" value="2.0"/> + <fraction n="1.0" ref="C"/> + </material> <material name="CarbonFiber" state="solid"> <MEE unit="eV" value="70.7270877537631"/> <D unit="g/cm3" value="1.46666666666667"/> @@ -570,6 +574,31 @@ <fraction n="0.671054" ref="Bi" /> </material> + <material name="G4_GlassHCAL" state="solid"> + <!-- <MEE unit="eV" value="534.1"/> --> + <D value="6." unit="g/cm3" /> + <fraction n="0.0270234" ref="B"/> + <fraction n="0.00700559" ref="Ce" /> + <fraction n="0.0883374" ref="F" /> + <fraction n="0.69186" ref="Gd" /> + <fraction n="0.0181464" ref="Ge" /> + <fraction n="0.153585" ref="O" /> + <fraction n="0.0140419" ref="Si" /> + </material> + + <material name="G4_ESR" state="solid"> + <D value="0.90" unit="g/cm3" /> + <composite n="2" ref="C"/> + <composite n="4" ref="H" /> + </material> + + <material name="G4_ECAL_electronics" state="solid"> + <D value="3.5537349300000005" unit="g/cm3" /> + <fraction n="0.1595" ref="PCB"/> + <fraction n="0.0001" ref="G4_AIR"/> + <fraction n="0.8404" ref="G4_Cu"/> + </material> + <!-- Driftchamber: material for the drift chamber --> <material name="GasHe_90Isob_10"> <D value="0.0003983999999999999" unit="g/cm3" /> diff --git a/Detector/DetCRD/compact/README.md b/Detector/DetCRD/compact/README.md index 7a7cac749e8acfbc764d08cef3ef13fedbd1726e..8cd6fd645daccb41d79c43b376aa8905e0b6c08b 100644 --- a/Detector/DetCRD/compact/README.md +++ b/Detector/DetCRD/compact/README.md @@ -10,6 +10,10 @@ The following CRD detector models are available in CEPCSW | CRD_o1_v04 | smaller center beam pipe | SIT+DC+SET | crystal | RPC | developing | | CRD_o1_v05 | Use Ref-Det ECAL and HCAL | SIT+TPC+SET | crystal | Glass| developing | | ------------- | -----------------------------|-------------|---------|------|----------------| +| TDR_o1_v01 | long barrel vertex, TPC | SIT+TPC+SET | crystal | Glass| developing | +| TDR_o1_v02 | short barrel vertex, TPC | SIT+TPC+SET | crystal | Glass| developing | +| TDR_o2_v01 | long barrel vertex, DC | SIT+DC +SET | crystal | Glass| developing | +| TDR_o2_v02 | short barrel vertex, DC | SIT+DC +SET | crystal | Glass| developing | ## Details @@ -72,5 +76,10 @@ The following CRD detector models are available in CEPCSW - compact files: - [./CRD_o1_v05/CRD_o1_v05.xml] +### TDR_o1_v01 (TODO) +### TDR_o1_v02 (TODO) +### TDR_o2_v01 (TODO) + +### TDR_o2_v02 (TODO) diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml index 1915d12429c85b59175bf8dcad41d1c2bcdd8167..b78b74341aee898779fd8ff66f462cc854976486 100644 --- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml +++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml @@ -35,7 +35,11 @@ <include ref="../CRD_common_v01/SIT_SimplePixel_v01_02.xml"/> <include ref="../CRD_common_v01/TPC_Simple_v10_02.xml"/> <include ref="../CRD_common_v01/SET_SimplePixel_v01_01.xml"/> - <!--TODO: Ecal and Hcal/--> + <!--TODO: Ecal and Hcal, Hcal outer raduis should be modified with 48 layers/--> + <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v01_02.xml"/> + <include ref="../CRD_common_v02/EcalEndcaps_Polyhedra_v01_01.xml"/> + <!--include ref="../CRD_common_v01/SHcalGlass_Barrel_v04_01.xml"/--> + <!--include ref="../CRD_common_v02/HcalEndcaps_Polyhedra_v01_01.xml"/--> <!--preliminary Magnet, to update/--> <include ref="../CRD_common_v02/Coil_Simple_v01_02.xml"/> diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/sim.py b/Detector/DetCRD/scripts/TDR_o1_v01/sim.py new file mode 100644 index 0000000000000000000000000000000000000000..d46de9314e25051d76c7539ef2133b6777dc048d --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o1_v01/sim.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +# option for standalone tracker study +geometry_option = "TDR_o1_v01/TDR_o1_v01.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +############################################################################## +# Physics Generator +############################################################################## +from Configurables import GenAlgo +from Configurables import GtGunTool +from Configurables import StdHepRdr +from Configurables import SLCIORdr +from Configurables import HepMCRdr +from Configurables import GenPrinter + +gun = GtGunTool("GtGunTool") +gun.PositionXs = [0] +gun.PositionYs = [0] +gun.PositionZs = [0] +gun.Particles = ["mu-"] +gun.EnergyMins = [1] +gun.EnergyMaxs = [100] +gun.ThetaMins = [8] +gun.ThetaMaxs = [172] +gun.PhiMins = [0] +gun.PhiMaxs = [360] + +genprinter = GenPrinter("GenPrinter") + +genalg = GenAlgo("GenAlgo") +genalg.GenTools = ["GtGunTool"] + +############################################################################## +# Detector Simulation +############################################################################## +from Configurables import DetSimSvc +detsimsvc = DetSimSvc("DetSimSvc") + +from Configurables import DetSimAlg +detsimalg = DetSimAlg("DetSimAlg") +detsimalg.RandomSeeds = seed +# detsimalg.VisMacs = ["vis.mac"] +detsimalg.RunCmds = [ +# "/tracking/verbose 1", +] +detsimalg.AnaElems = [ + # example_anatool.name() + # "ExampleAnaElemTool" + "Edm4hepWriterAnaElemTool" +] +detsimalg.RootDetElem = "WorldDetElemTool" + +from Configurables import TimeProjectionChamberSensDetTool +tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool") +tpc_sensdettool.TypeOption = 1 + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "sim00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [genalg, detsimalg, out], + EvtSel = 'NONE', + EvtMax = 10, + ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py new file mode 100644 index 0000000000000000000000000000000000000000..6c7a4e89577607fcdbd1771be3fe4fd12ebd80e1 --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc", input="sim00.root") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +geometry_option = "TDR_o1_v01/TDR_o1_v01.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +from Configurables import GearSvc +gearsvc = GearSvc("GearSvc") + +from Configurables import TrackSystemSvc +tracksystemsvc = TrackSystemSvc("TrackSystemSvc") + +from Configurables import PodioInput +podioinput = PodioInput("PodioReader", collections=[ +# "EventHeader", + "MCParticle", + "VXDCollection", + "SITCollection", + "TPCCollection", + "SETCollection", + "FTDCollection" + ]) + +# digitization +vxdhitname = "VXDTrackerHits" +sithitname = "SITTrackerHits" +gashitname = "TPCTrackerHits" +sethitname = "SETTrackerHits" +setspname = "SETSpacePoints" +ftdhitname = "FTDTrackerHits" +ftdspname = "FTDSpacePoints" +from Configurables import PlanarDigiAlg +digiVXD = PlanarDigiAlg("VXDDigi") +digiVXD.SimTrackHitCollection = "VXDCollection" +digiVXD.TrackerHitCollection = vxdhitname +digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation" +digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.UsePlanarTag = True +digiVXD.ParameterizeResolution = False +digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +#digiVXD.OutputLevel = DEBUG + +digiSIT = PlanarDigiAlg("SITDigi") +digiSIT.IsStrip = False +digiSIT.SimTrackHitCollection = "SITCollection" +digiSIT.TrackerHitCollection = sithitname +digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation" +digiSIT.ResolutionU = [0.0072] +digiSIT.ResolutionV = [0.086] +digiSIT.UsePlanarTag = True +digiSIT.ParameterizeResolution = False +digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSIT.OutputLevel = DEBUG + +digiSET = PlanarDigiAlg("SETDigi") +digiSET.IsStrip = False +digiSET.SimTrackHitCollection = "SETCollection" +digiSET.TrackerHitCollection = sethitname +digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation" +digiSET.ResolutionU = [0.0072] +digiSET.ResolutionV = [0.086] +digiSET.UsePlanarTag = True +digiSET.ParameterizeResolution = False +digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSET.OutputLevel = DEBUG + +digiFTD = PlanarDigiAlg("FTDDigi") +digiFTD.IsStrip = False +digiFTD.SimTrackHitCollection = "FTDCollection" +digiFTD.TrackerHitCollection = ftdhitname +digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation" +digiFTD.ResolutionU = [0.0072] +digiFTD.ResolutionV = [0.086] +digiFTD.UsePlanarTag = True +digiFTD.ParameterizeResolution = False +digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiFTD.OutputLevel = DEBUG + +from Configurables import TPCDigiAlg +digiTPC = TPCDigiAlg("TPCDigi") +digiTPC.TPCCollection = "TPCCollection" +digiTPC.TPCLowPtCollection = "TPCLowPtCollection" +digiTPC.TPCTrackerHitsCol = gashitname +#digiTPC.OutputLevel = DEBUG + +# tracking +from Configurables import KalTestTool +# Close multiple scattering and smooth, used by clupatra +kt010 = KalTestTool("KalTest010") +kt010.MSOn = False +kt010.Smooth = False +#kt010.OutputLevel = DEBUG + +# Open multiple scattering, energy loss and smooth (default) +kt111 = KalTestTool("KalTest111") +#kt111.OutputLevel = DEBUG + +# Close smooth +kt110 = KalTestTool("KalTest110") +kt110.Smooth = False +#kt110.OutputLevel = DEBUG + +from Configurables import SiliconTrackingAlg +tracking = SiliconTrackingAlg("SiliconTracking") +tracking.LayerCombinationsFTD = [] +tracking.HeaderCol = "EventHeader" +tracking.VTXHitCollection = vxdhitname +tracking.SITHitCollection = sithitname +tracking.FTDPixelHitCollection = ftdhitname +tracking.FTDSpacePointCollection = ftdspname +tracking.SITRawHitCollection = "NotNeedForPixelSIT" +tracking.FTDRawHitCollection = ftdhitname +tracking.UseSIT = True +tracking.SmoothOn = False +tracking.NDivisionsInTheta = 10 +tracking.NDivisionsInPhi = 60 +tracking.NDivisionsInPhiFTD = 16 +tracking.MinDistCutAttach = 50 +tracking.Chi2FitCut = 200 +tracking.MaxChi2PerHit = 200 +tracking.Chi2WZTriplet = 0.1 +tracking.Chi2WZQuartet = 0.1 +tracking.Chi2WZSeptet = 0.1 +#tracking.FitterTool = "KalTestTool/KalTest111" +#tracking.OutputLevel = DEBUG + +from Configurables import ForwardTrackingAlg +forward = ForwardTrackingAlg("ForwardTracking") +forward.FTDPixelHitCollection = ftdhitname +forward.FTDSpacePointCollection = ftdspname +forward.FTDRawHitCollection = ftdhitname +forward.Chi2ProbCut = 0.0 +forward.HitsPerTrackMin = 3 +forward.BestSubsetFinder = "SubsetSimple" +forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation", + "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"] +forward.CriteriaMin = [0, 0.9, 0, 0.995, 0, 0.8, 0, 20, 1.002, 0.1, 0, 0.99, 0, 0.999, 0, 0.99, 0] +forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08, 99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05] +#forward.FitterTool = "KalTestTool/KalTest110" +#forward.OutputLevel = DEBUG + +from Configurables import TrackSubsetAlg +subset = TrackSubsetAlg("TrackSubset") +subset.TrackInputCollections = ["ForwardTracks", "SiTracks"] +subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname] +subset.TrackSubsetCollection = "SubsetTracks" +#subset.FitterTool = "KalTestTool/KalTest111" +#subset.OutputLevel = DEBUG + +from Configurables import ClupatraAlg +clupatra = ClupatraAlg("Clupatra") +clupatra.TPCHitCollection = gashitname +#clupatra.OutputLevel = DEBUG + +from Configurables import FullLDCTrackingAlg +full = FullLDCTrackingAlg("FullTracking") +full.VTXTrackerHits = vxdhitname +full.SITTrackerHits = sithitname +full.TPCTrackerHits = gashitname +full.SETTrackerHits = sethitname +full.FTDPixelTrackerHits = ftdhitname +full.FTDSpacePoints = ftdspname +full.SITRawHits = "NotNeedForPixelSIT" +full.SETRawHits = "NotNeedForPixelSET" +full.FTDRawHits = ftdhitname +full.TPCTracks = "ClupatraTracks" # add standalone TPC track +full.SiTracks = "SubsetTracks" +full.OutputTracks = "CompleteTracks" # default name +full.VTXHitToTrackDistance = 5. +full.FTDHitToTrackDistance = 5. +full.SITHitToTrackDistance = 3. +full.SETHitToTrackDistance = 5. +full.MinChi2ProbForSiliconTracks = 0 +#full.OutputLevel = DEBUG + +from Configurables import TrackParticleRelationAlg +tpr = TrackParticleRelationAlg("Track2Particle") +tpr.MCParticleCollection = "MCParticle" +tpr.TrackList = ["CompleteTracks"] +#tpr.OutputLevel = DEBUG + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "rec00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, digiTPC, tracking, forward, subset, clupatra, full, tpr, out], + EvtSel = 'NONE', + EvtMax = 5, + ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o1_v02/sim.py b/Detector/DetCRD/scripts/TDR_o1_v02/sim.py new file mode 100644 index 0000000000000000000000000000000000000000..61f893006dc6861c0bef8ff151981f0e371076e7 --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o1_v02/sim.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +# option for standalone tracker study +geometry_option = "TDR_o1_v02/TDR_o1_v02.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +############################################################################## +# Physics Generator +############################################################################## +from Configurables import GenAlgo +from Configurables import GtGunTool +from Configurables import StdHepRdr +from Configurables import SLCIORdr +from Configurables import HepMCRdr +from Configurables import GenPrinter + +gun = GtGunTool("GtGunTool") +gun.PositionXs = [0] +gun.PositionYs = [0] +gun.PositionZs = [0] +gun.Particles = ["mu-"] +gun.EnergyMins = [1] +gun.EnergyMaxs = [100] +gun.ThetaMins = [8] +gun.ThetaMaxs = [172] +gun.PhiMins = [0] +gun.PhiMaxs = [360] + +genprinter = GenPrinter("GenPrinter") + +genalg = GenAlgo("GenAlgo") +genalg.GenTools = ["GtGunTool"] + +############################################################################## +# Detector Simulation +############################################################################## +from Configurables import DetSimSvc +detsimsvc = DetSimSvc("DetSimSvc") + +from Configurables import DetSimAlg +detsimalg = DetSimAlg("DetSimAlg") +detsimalg.RandomSeeds = seed +# detsimalg.VisMacs = ["vis.mac"] +detsimalg.RunCmds = [ +# "/tracking/verbose 1", +] +detsimalg.AnaElems = [ + # example_anatool.name() + # "ExampleAnaElemTool" + "Edm4hepWriterAnaElemTool" +] +detsimalg.RootDetElem = "WorldDetElemTool" + +from Configurables import TimeProjectionChamberSensDetTool +tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool") +tpc_sensdettool.TypeOption = 1 + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "sim00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [genalg, detsimalg, out], + EvtSel = 'NONE', + EvtMax = 10, + ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py b/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py new file mode 100644 index 0000000000000000000000000000000000000000..3bcb7d186fbbe5e2dc1773199ffc9d6e3491f9b0 --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o1_v02/tracking.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc", input="sim00.root") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +geometry_option = "TDR_o1_v02/TDR_o1_v02.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +from Configurables import GearSvc +gearsvc = GearSvc("GearSvc") + +from Configurables import TrackSystemSvc +tracksystemsvc = TrackSystemSvc("TrackSystemSvc") + +from Configurables import PodioInput +podioinput = PodioInput("PodioReader", collections=[ +# "EventHeader", + "MCParticle", + "VXDCollection", + "SITCollection", + "TPCCollection", + "SETCollection", + "FTDCollection" + ]) + +# digitization +vxdhitname = "VXDTrackerHits" +sithitname = "SITTrackerHits" +gashitname = "TPCTrackerHits" +sethitname = "SETTrackerHits" +setspname = "SETSpacePoints" +ftdhitname = "FTDTrackerHits" +ftdspname = "FTDSpacePoints" +from Configurables import PlanarDigiAlg +digiVXD = PlanarDigiAlg("VXDDigi") +digiVXD.SimTrackHitCollection = "VXDCollection" +digiVXD.TrackerHitCollection = vxdhitname +digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation" +digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.UsePlanarTag = True +digiVXD.ParameterizeResolution = False +digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +#digiVXD.OutputLevel = DEBUG + +digiSIT = PlanarDigiAlg("SITDigi") +digiSIT.IsStrip = False +digiSIT.SimTrackHitCollection = "SITCollection" +digiSIT.TrackerHitCollection = sithitname +digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation" +digiSIT.ResolutionU = [0.0072] +digiSIT.ResolutionV = [0.086] +digiSIT.UsePlanarTag = True +digiSIT.ParameterizeResolution = False +digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSIT.OutputLevel = DEBUG + +digiSET = PlanarDigiAlg("SETDigi") +digiSET.IsStrip = False +digiSET.SimTrackHitCollection = "SETCollection" +digiSET.TrackerHitCollection = sethitname +digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation" +digiSET.ResolutionU = [0.0072] +digiSET.ResolutionV = [0.086] +digiSET.UsePlanarTag = True +digiSET.ParameterizeResolution = False +digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSET.OutputLevel = DEBUG + +digiFTD = PlanarDigiAlg("FTDDigi") +digiFTD.IsStrip = False +digiFTD.SimTrackHitCollection = "FTDCollection" +digiFTD.TrackerHitCollection = ftdhitname +digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation" +digiFTD.ResolutionU = [0.0072] +digiFTD.ResolutionV = [0.086] +digiFTD.UsePlanarTag = True +digiFTD.ParameterizeResolution = False +digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiFTD.OutputLevel = DEBUG + +from Configurables import TPCDigiAlg +digiTPC = TPCDigiAlg("TPCDigi") +digiTPC.TPCCollection = "TPCCollection" +digiTPC.TPCLowPtCollection = "TPCLowPtCollection" +digiTPC.TPCTrackerHitsCol = gashitname +#digiTPC.OutputLevel = DEBUG + +# tracking +from Configurables import KalTestTool +# Close multiple scattering and smooth, used by clupatra +kt010 = KalTestTool("KalTest010") +kt010.MSOn = False +kt010.Smooth = False +#kt010.OutputLevel = DEBUG + +# Open multiple scattering, energy loss and smooth (default) +kt111 = KalTestTool("KalTest111") +#kt111.OutputLevel = DEBUG + +# Close smooth +kt110 = KalTestTool("KalTest110") +kt110.Smooth = False +#kt110.OutputLevel = DEBUG + +from Configurables import SiliconTrackingAlg +tracking = SiliconTrackingAlg("SiliconTracking") +tracking.LayerCombinationsFTD = [4,2,0, 6,2,0, 6,4,0, 6,4,2, 5,3,1, 7,3,1, 7,5,1, 7,5,3, + 4,2,1, 6,2,1, 6,4,1, 6,4,3, 5,3,0, 7,3,0, 7,5,0, 7,5,2, + 4,3,0, 6,3,0, 6,5,0, 6,5,2, 5,2,1, 7,2,1, 7,4,1, 7,4,3, + 5,2,0, 7,2,0, 7,4,0, 7,4,2, 4,3,1, 6,3,1, 6,5,1, 6,5,3] +tracking.HeaderCol = "EventHeader" +tracking.VTXHitCollection = vxdhitname +tracking.SITHitCollection = sithitname +tracking.FTDPixelHitCollection = ftdhitname +tracking.FTDSpacePointCollection = ftdspname +tracking.SITRawHitCollection = "NotNeedForPixelSIT" +tracking.FTDRawHitCollection = ftdhitname +tracking.UseSIT = True +tracking.SmoothOn = False +tracking.NDivisionsInTheta = 10 +tracking.NDivisionsInPhi = 60 +tracking.NDivisionsInPhiFTD = 16 +tracking.MinDistCutAttach = 5 +tracking.Chi2FitCut = 100 +tracking.MaxChi2PerHit = 100 +#tracking.Chi2WZTriplet = 0.1 +#tracking.Chi2WZQuartet = 0.1 +#tracking.Chi2WZSeptet = 0.1 +#tracking.FitterTool = "KalTestTool/KalTest111" +#tracking.OutputLevel = DEBUG + +from Configurables import ForwardTrackingAlg +forward = ForwardTrackingAlg("ForwardTracking") +forward.FTDPixelHitCollection = ftdhitname +forward.FTDSpacePointCollection = ftdspname +forward.FTDRawHitCollection = ftdhitname +forward.Chi2ProbCut = 0.0 +forward.HitsPerTrackMin = 3 +forward.BestSubsetFinder = "SubsetSimple" +forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation", + "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"] +forward.CriteriaMin = [0, 0.9, 0, 0.995, 0, 0.8, 0, 20, 1.002, 0.1, 0, 0.99, 0, 0.999, 0, 0.99, 0] +forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08, 99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05] +#forward.FitterTool = "KalTestTool/KalTest110" +#forward.OutputLevel = DEBUG + +from Configurables import TrackSubsetAlg +subset = TrackSubsetAlg("TrackSubset") +subset.TrackInputCollections = ["ForwardTracks", "SiTracks"] +subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname] +subset.TrackSubsetCollection = "SubsetTracks" +#subset.FitterTool = "KalTestTool/KalTest111" +#subset.OutputLevel = DEBUG + +from Configurables import ClupatraAlg +clupatra = ClupatraAlg("Clupatra") +clupatra.TPCHitCollection = gashitname +#clupatra.OutputLevel = DEBUG + +from Configurables import FullLDCTrackingAlg +full = FullLDCTrackingAlg("FullTracking") +full.VTXTrackerHits = vxdhitname +full.SITTrackerHits = sithitname +full.TPCTrackerHits = gashitname +full.SETTrackerHits = sethitname +full.FTDPixelTrackerHits = ftdhitname +full.FTDSpacePoints = ftdspname +full.SITRawHits = "NotNeedForPixelSIT" +full.SETRawHits = "NotNeedForPixelSET" +full.FTDRawHits = ftdhitname +full.TPCTracks = "ClupatraTracks" # add standalone TPC track +full.SiTracks = "SubsetTracks" +full.OutputTracks = "CompleteTracks" # default name +full.VTXHitToTrackDistance = 5. +full.FTDHitToTrackDistance = 5. +full.SITHitToTrackDistance = 3. +full.SETHitToTrackDistance = 5. +full.MinChi2ProbForSiliconTracks = 0 +#full.OutputLevel = DEBUG + +from Configurables import TrackParticleRelationAlg +tpr = TrackParticleRelationAlg("Track2Particle") +tpr.MCParticleCollection = "MCParticle" +tpr.TrackList = ["CompleteTracks"] +#tpr.OutputLevel = DEBUG + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "rec00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, digiTPC, tracking, forward, subset, clupatra, full, tpr, out], + EvtSel = 'NONE', + EvtMax = 5, + ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o2_v01/sim.py b/Detector/DetCRD/scripts/TDR_o2_v01/sim.py new file mode 100644 index 0000000000000000000000000000000000000000..53241da11372d8fdc22d199d8c9f01f0aa18a41b --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o2_v01/sim.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +# option for standalone tracker study +geometry_option = "TDR_o2_v01/TDR_o2_v01.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +############################################################################## +# Physics Generator +############################################################################## +from Configurables import GenAlgo +from Configurables import GtGunTool +from Configurables import StdHepRdr +from Configurables import SLCIORdr +from Configurables import HepMCRdr +from Configurables import GenPrinter + +gun = GtGunTool("GtGunTool") +gun.PositionXs = [0] +gun.PositionYs = [0] +gun.PositionZs = [0] +gun.Particles = ["mu-"] +gun.EnergyMins = [1] +gun.EnergyMaxs = [100] +gun.ThetaMins = [8] +gun.ThetaMaxs = [172] +gun.PhiMins = [0] +gun.PhiMaxs = [360] + +genprinter = GenPrinter("GenPrinter") + +genalg = GenAlgo("GenAlgo") +genalg.GenTools = ["GtGunTool"] + +############################################################################## +# Detector Simulation +############################################################################## +from Configurables import DetSimSvc +detsimsvc = DetSimSvc("DetSimSvc") + +from Configurables import DetSimAlg +detsimalg = DetSimAlg("DetSimAlg") +detsimalg.RandomSeeds = seed +# detsimalg.VisMacs = ["vis.mac"] +detsimalg.RunCmds = [ +# "/tracking/verbose 1", +] +detsimalg.AnaElems = [ + # example_anatool.name() + # "ExampleAnaElemTool" + "Edm4hepWriterAnaElemTool" +] +detsimalg.RootDetElem = "WorldDetElemTool" + +dedxoption = "BetheBlochEquationDedxSimTool" +from Configurables import DriftChamberSensDetTool +dc_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool") +dc_sensdettool.DedxSimTool = dedxoption + +from Configurables import DummyDedxSimTool +from Configurables import BetheBlochEquationDedxSimTool + +if dedxoption == "DummyDedxSimTool": + dedx_simtool = DummyDedxSimTool("DummyDedxSimTool") +elif dedxoption == "BetheBlochEquationDedxSimTool": + dedx_simtool = BetheBlochEquationDedxSimTool("BetheBlochEquationDedxSimTool") + dedx_simtool.material_Z = 2 + dedx_simtool.material_A = 4 + dedx_simtool.scale = 10 + dedx_simtool.resolution = 0.0001 + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "sim00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [genalg, detsimalg, out], + EvtSel = 'NONE', + EvtMax = 10, + ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py b/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py new file mode 100644 index 0000000000000000000000000000000000000000..785f49eff505a740a1373622a669410d226f6514 --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o2_v01/tracking.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc", input="sim00.root") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +geometry_option = "TDR_o2_v01/TDR_o2_v01.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +from Configurables import GearSvc +gearsvc = GearSvc("GearSvc") + +from Configurables import TrackSystemSvc +tracksystemsvc = TrackSystemSvc("TrackSystemSvc") + +from Configurables import PodioInput +podioinput = PodioInput("PodioReader", collections=[ +# "EventHeader", + "MCParticle", + "VXDCollection", + "SITCollection", + "DriftChamberHitsCollection", + "SETCollection", + "FTDCollection" + ]) + +# digitization +vxdhitname = "VXDTrackerHits" +sithitname = "SITTrackerHits" +gashitname = "DCTrackerHits" +sethitname = "SETTrackerHits" +setspname = "SETSpacePoints" +ftdhitname = "FTDTrackerHits" +ftdspname = "FTDSpacePoints" +from Configurables import PlanarDigiAlg +digiVXD = PlanarDigiAlg("VXDDigi") +digiVXD.SimTrackHitCollection = "VXDCollection" +digiVXD.TrackerHitCollection = vxdhitname +digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation" +digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.UsePlanarTag = True +digiVXD.ParameterizeResolution = False +digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +#digiVXD.OutputLevel = DEBUG + +digiSIT = PlanarDigiAlg("SITDigi") +digiSIT.IsStrip = False +digiSIT.SimTrackHitCollection = "SITCollection" +digiSIT.TrackerHitCollection = sithitname +digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation" +digiSIT.ResolutionU = [0.0072] +digiSIT.ResolutionV = [0.086] +digiSIT.UsePlanarTag = True +digiSIT.ParameterizeResolution = False +digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSIT.OutputLevel = DEBUG + +digiSET = PlanarDigiAlg("SETDigi") +digiSET.IsStrip = False +digiSET.SimTrackHitCollection = "SETCollection" +digiSET.TrackerHitCollection = sethitname +digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation" +digiSET.ResolutionU = [0.0072] +digiSET.ResolutionV = [0.086] +digiSET.UsePlanarTag = True +digiSET.ParameterizeResolution = False +digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSET.OutputLevel = DEBUG + +digiFTD = PlanarDigiAlg("FTDDigi") +digiFTD.IsStrip = False +digiFTD.SimTrackHitCollection = "FTDCollection" +digiFTD.TrackerHitCollection = ftdhitname +digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation" +digiFTD.ResolutionU = [0.0072] +digiFTD.ResolutionV = [0.086] +digiFTD.UsePlanarTag = True +digiFTD.ParameterizeResolution = False +digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiFTD.OutputLevel = DEBUG + +#TODO: digitization for DC + + +# tracking +from Configurables import KalTestTool +# Close multiple scattering and smooth, used by clupatra +kt010 = KalTestTool("KalTest010") +kt010.MSOn = False +kt010.Smooth = False +#kt010.OutputLevel = DEBUG + +# Open multiple scattering, energy loss and smooth (default) +kt111 = KalTestTool("KalTest111") +#kt111.OutputLevel = DEBUG + +# Close smooth +kt110 = KalTestTool("KalTest110") +kt110.Smooth = False +#kt110.OutputLevel = DEBUG + +from Configurables import SiliconTrackingAlg +tracking = SiliconTrackingAlg("SiliconTracking") +tracking.LayerCombinationsFTD = [] +tracking.HeaderCol = "EventHeader" +tracking.VTXHitCollection = vxdhitname +tracking.SITHitCollection = sithitname +tracking.FTDPixelHitCollection = ftdhitname +tracking.FTDSpacePointCollection = ftdspname +tracking.SITRawHitCollection = "NotNeedForPixelSIT" +tracking.FTDRawHitCollection = ftdhitname +tracking.UseSIT = True +tracking.SmoothOn = False +tracking.NDivisionsInTheta = 10 +tracking.NDivisionsInPhi = 60 +tracking.NDivisionsInPhiFTD = 16 +tracking.MinDistCutAttach = 50 +tracking.Chi2FitCut = 200 +tracking.MaxChi2PerHit = 200 +tracking.Chi2WZTriplet = 0.1 +tracking.Chi2WZQuartet = 0.1 +tracking.Chi2WZSeptet = 0.1 +#tracking.FitterTool = "KalTestTool/KalTest111" +#tracking.OutputLevel = DEBUG + +from Configurables import ForwardTrackingAlg +forward = ForwardTrackingAlg("ForwardTracking") +forward.FTDPixelHitCollection = ftdhitname +forward.FTDSpacePointCollection = ftdspname +forward.FTDRawHitCollection = ftdhitname +forward.Chi2ProbCut = 0.0 +forward.HitsPerTrackMin = 3 +forward.BestSubsetFinder = "SubsetSimple" +forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation", + "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"] +forward.CriteriaMin = [0, 0.9, 0, 0.995, 0, 0.8, 0, 20, 1.002, 0.1, 0, 0.99, 0, 0.999, 0, 0.99, 0] +forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08, 99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05] +#forward.FitterTool = "KalTestTool/KalTest110" +#forward.OutputLevel = DEBUG + +from Configurables import TrackSubsetAlg +subset = TrackSubsetAlg("TrackSubset") +subset.TrackInputCollections = ["ForwardTracks", "SiTracks"] +subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname] +subset.TrackSubsetCollection = "SubsetTracks" +#subset.FitterTool = "KalTestTool/KalTest111" +#subset.OutputLevel = DEBUG + +# TODO: reconstruction for DC + + +from Configurables import TrackParticleRelationAlg +tpr = TrackParticleRelationAlg("Track2Particle") +tpr.MCParticleCollection = "MCParticle" +tpr.TrackList = ["CompleteTracks"] +#tpr.OutputLevel = DEBUG + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "rec00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, tracking, forward, subset, tpr, out], + EvtSel = 'NONE', + EvtMax = 5, + ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o2_v02/sim.py b/Detector/DetCRD/scripts/TDR_o2_v02/sim.py new file mode 100644 index 0000000000000000000000000000000000000000..cbfb47e85046913ec69da4a1afb2df0558b1fbeb --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o2_v02/sim.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +# option for standalone tracker study +geometry_option = "TDR_o2_v02/TDR_o2_v02.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +############################################################################## +# Physics Generator +############################################################################## +from Configurables import GenAlgo +from Configurables import GtGunTool +from Configurables import StdHepRdr +from Configurables import SLCIORdr +from Configurables import HepMCRdr +from Configurables import GenPrinter + +gun = GtGunTool("GtGunTool") +gun.PositionXs = [0] +gun.PositionYs = [0] +gun.PositionZs = [0] +gun.Particles = ["mu-"] +gun.EnergyMins = [1] +gun.EnergyMaxs = [100] +gun.ThetaMins = [8] +gun.ThetaMaxs = [172] +gun.PhiMins = [0] +gun.PhiMaxs = [360] + +genprinter = GenPrinter("GenPrinter") + +genalg = GenAlgo("GenAlgo") +genalg.GenTools = ["GtGunTool"] + +############################################################################## +# Detector Simulation +############################################################################## +from Configurables import DetSimSvc +detsimsvc = DetSimSvc("DetSimSvc") + +from Configurables import DetSimAlg +detsimalg = DetSimAlg("DetSimAlg") +detsimalg.RandomSeeds = seed +# detsimalg.VisMacs = ["vis.mac"] +detsimalg.RunCmds = [ +# "/tracking/verbose 1", +] +detsimalg.AnaElems = [ + # example_anatool.name() + # "ExampleAnaElemTool" + "Edm4hepWriterAnaElemTool" +] +detsimalg.RootDetElem = "WorldDetElemTool" + +dedxoption = "BetheBlochEquationDedxSimTool" +from Configurables import DriftChamberSensDetTool +dc_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool") +dc_sensdettool.DedxSimTool = dedxoption + +from Configurables import DummyDedxSimTool +from Configurables import BetheBlochEquationDedxSimTool + +if dedxoption == "DummyDedxSimTool": + dedx_simtool = DummyDedxSimTool("DummyDedxSimTool") +elif dedxoption == "BetheBlochEquationDedxSimTool": + dedx_simtool = BetheBlochEquationDedxSimTool("BetheBlochEquationDedxSimTool") + dedx_simtool.material_Z = 2 + dedx_simtool.material_A = 4 + dedx_simtool.scale = 10 + dedx_simtool.resolution = 0.0001 + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "sim00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [genalg, detsimalg, out], + EvtSel = 'NONE', + EvtMax = 10, + ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py b/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py new file mode 100644 index 0000000000000000000000000000000000000000..ea2ca6a18282444c5cbdb392843111dcdb9cc292 --- /dev/null +++ b/Detector/DetCRD/scripts/TDR_o2_v02/tracking.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python +import os +from Gaudi.Configuration import * + +from Configurables import k4DataSvc +dsvc = k4DataSvc("EventDataSvc", input="sim00.root") + +from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ +seed = [12340] +# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi +rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 +rndmengine.SetSingleton = True +rndmengine.Seeds = seed + +rndmgensvc = RndmGenSvc("RndmGenSvc") +rndmgensvc.Engine = rndmengine.name() + +geometry_option = "TDR_o2_v02/TDR_o2_v02.xml" + +if not os.getenv("DETCRDROOT"): + print("Can't find the geometry. Please setup envvar DETCRDROOT." ) + sys.exit(-1) + +geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option) +if not os.path.exists(geometry_path): + print("Can't find the compact geometry file: %s"%geometry_path) + sys.exit(-1) + +from Configurables import GeomSvc +geosvc = GeomSvc("GeomSvc") +geosvc.compact = geometry_path + +from Configurables import MarlinEvtSeeder +evtseeder = MarlinEvtSeeder("EventSeeder") + +from Configurables import GearSvc +gearsvc = GearSvc("GearSvc") + +from Configurables import TrackSystemSvc +tracksystemsvc = TrackSystemSvc("TrackSystemSvc") + +from Configurables import PodioInput +podioinput = PodioInput("PodioReader", collections=[ +# "EventHeader", + "MCParticle", + "VXDCollection", + "SITCollection", + "DriftChamberHitsCollection", + "SETCollection", + "FTDCollection" + ]) + +# digitization +vxdhitname = "VXDTrackerHits" +sithitname = "SITTrackerHits" +gashitname = "DCTrackerHits" +sethitname = "SETTrackerHits" +setspname = "SETSpacePoints" +ftdhitname = "FTDTrackerHits" +ftdspname = "FTDSpacePoints" +from Configurables import PlanarDigiAlg +digiVXD = PlanarDigiAlg("VXDDigi") +digiVXD.SimTrackHitCollection = "VXDCollection" +digiVXD.TrackerHitCollection = vxdhitname +digiVXD.TrackerHitAssociationCollection = "VXDTrackerHitAssociation" +digiVXD.ResolutionU = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.ResolutionV = [0.004, 0.004, 0.004, 0.004, 0.004, 0.004] +digiVXD.UsePlanarTag = True +digiVXD.ParameterizeResolution = False +digiVXD.ParametersU = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +digiVXD.ParametersV = [5.60959e-03, 5.74913e-03, 7.03433e-03, 1.99516, -663.952, 3.752e-03, 0, -0.0704734, 0.0454867e-03, 1.07359] +#digiVXD.OutputLevel = DEBUG + +digiSIT = PlanarDigiAlg("SITDigi") +digiSIT.IsStrip = False +digiSIT.SimTrackHitCollection = "SITCollection" +digiSIT.TrackerHitCollection = sithitname +digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation" +digiSIT.ResolutionU = [0.0072] +digiSIT.ResolutionV = [0.086] +digiSIT.UsePlanarTag = True +digiSIT.ParameterizeResolution = False +digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSIT.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSIT.OutputLevel = DEBUG + +digiSET = PlanarDigiAlg("SETDigi") +digiSET.IsStrip = False +digiSET.SimTrackHitCollection = "SETCollection" +digiSET.TrackerHitCollection = sethitname +digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation" +digiSET.ResolutionU = [0.0072] +digiSET.ResolutionV = [0.086] +digiSET.UsePlanarTag = True +digiSET.ParameterizeResolution = False +digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiSET.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiSET.OutputLevel = DEBUG + +digiFTD = PlanarDigiAlg("FTDDigi") +digiFTD.IsStrip = False +digiFTD.SimTrackHitCollection = "FTDCollection" +digiFTD.TrackerHitCollection = ftdhitname +digiFTD.TrackerHitAssociationCollection = "FTDTrackerHitAssociation" +digiFTD.ResolutionU = [0.0072] +digiFTD.ResolutionV = [0.086] +digiFTD.UsePlanarTag = True +digiFTD.ParameterizeResolution = False +digiFTD.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452] +digiFTD.ParametersV = [1.44629e-02, 2.20108e-03, 1.03044e-02, 4.39195e+00, 3.29641e+00, 1.55167e+18, -5.41954e+01, 5.72986e+00, -6.80699e-03, 5.04095e-01] +#digiFTD.OutputLevel = DEBUG + +#TODO: digitization for DC + + +# tracking +from Configurables import KalTestTool +# Close multiple scattering and smooth, used by clupatra +kt010 = KalTestTool("KalTest010") +kt010.MSOn = False +kt010.Smooth = False +#kt010.OutputLevel = DEBUG + +# Open multiple scattering, energy loss and smooth (default) +kt111 = KalTestTool("KalTest111") +#kt111.OutputLevel = DEBUG + +# Close smooth +kt110 = KalTestTool("KalTest110") +kt110.Smooth = False +#kt110.OutputLevel = DEBUG + +from Configurables import SiliconTrackingAlg +tracking = SiliconTrackingAlg("SiliconTracking") +tracking.LayerCombinationsFTD = [4,2,0, 6,2,0, 6,4,0, 6,4,2, 5,3,1, 7,3,1, 7,5,1, 7,5,3, + 4,2,1, 6,2,1, 6,4,1, 6,4,3, 5,3,0, 7,3,0, 7,5,0, 7,5,2, + 4,3,0, 6,3,0, 6,5,0, 6,5,2, 5,2,1, 7,2,1, 7,4,1, 7,4,3, + 5,2,0, 7,2,0, 7,4,0, 7,4,2, 4,3,1, 6,3,1, 6,5,1, 6,5,3] +tracking.HeaderCol = "EventHeader" +tracking.VTXHitCollection = vxdhitname +tracking.SITHitCollection = sithitname +tracking.FTDPixelHitCollection = ftdhitname +tracking.FTDSpacePointCollection = ftdspname +tracking.SITRawHitCollection = "NotNeedForPixelSIT" +tracking.FTDRawHitCollection = ftdhitname +tracking.UseSIT = True +tracking.SmoothOn = False +tracking.NDivisionsInTheta = 10 +tracking.NDivisionsInPhi = 60 +tracking.NDivisionsInPhiFTD = 16 +tracking.MinDistCutAttach = 5 +tracking.Chi2FitCut = 100 +tracking.MaxChi2PerHit = 100 +#tracking.Chi2WZTriplet = 0.1 +#tracking.Chi2WZQuartet = 0.1 +#tracking.Chi2WZSeptet = 0.1 +#tracking.FitterTool = "KalTestTool/KalTest111" +#tracking.OutputLevel = DEBUG + +from Configurables import ForwardTrackingAlg +forward = ForwardTrackingAlg("ForwardTracking") +forward.FTDPixelHitCollection = ftdhitname +forward.FTDSpacePointCollection = ftdspname +forward.FTDRawHitCollection = ftdhitname +forward.Chi2ProbCut = 0.0 +forward.HitsPerTrackMin = 3 +forward.BestSubsetFinder = "SubsetSimple" +forward.Criteria = ["Crit2_DeltaPhi","Crit2_StraightTrackRatio","Crit3_3DAngle","Crit3_ChangeRZRatio","Crit3_IPCircleDist","Crit4_3DAngleChange","Crit4_DistToExtrapolation", + "Crit2_DeltaRho","Crit2_RZRatio","Crit3_PT"] +forward.CriteriaMin = [0, 0.9, 0, 0.995, 0, 0.8, 0, 20, 1.002, 0.1, 0, 0.99, 0, 0.999, 0, 0.99, 0] +forward.CriteriaMax = [30, 1.02, 10, 1.015, 20, 1.3, 1.0, 150, 1.08, 99999999, 0.8, 1.01, 0.35, 1.001, 1.5, 1.01, 0.05] +#forward.FitterTool = "KalTestTool/KalTest110" +#forward.OutputLevel = DEBUG + +from Configurables import TrackSubsetAlg +subset = TrackSubsetAlg("TrackSubset") +subset.TrackInputCollections = ["ForwardTracks", "SiTracks"] +subset.RawTrackerHitCollections = [vxdhitname, sithitname, ftdhitname, ftdspname] +subset.TrackSubsetCollection = "SubsetTracks" +#subset.FitterTool = "KalTestTool/KalTest111" +#subset.OutputLevel = DEBUG + +# TODO: reconstruction for DC + + +from Configurables import TrackParticleRelationAlg +tpr = TrackParticleRelationAlg("Track2Particle") +tpr.MCParticleCollection = "MCParticle" +tpr.TrackList = ["CompleteTracks"] +#tpr.OutputLevel = DEBUG + +# output +from Configurables import PodioOutput +out = PodioOutput("outputalg") +out.filename = "rec00.root" +out.outputCommands = ["keep *"] + +# ApplicationMgr +from Configurables import ApplicationMgr +mgr = ApplicationMgr( + TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, tracking, forward, subset, tpr, out], + EvtSel = 'NONE', + EvtMax = 5, + ExtSvc = [rndmengine, rndmgensvc, dsvc, evtseeder, geosvc, gearsvc, tracksystemsvc], + HistogramPersistency = 'ROOT', + OutputLevel = ERROR +) diff --git a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h index fee28994bf66bd1f0c7510faf11588e681afd5cc..8a30b2fa06cadae2d2af427f49b5a6bf267c4084 100644 --- a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h +++ b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.h @@ -262,7 +262,7 @@ class ForwardTrackingAlg : public GaudiAlgorithm { Gaudi::Property<std::vector<std::string> > _criteriaNames{this, "Criteria", Criteria::getAllCriteriaNamesVec()}; Gaudi::Property<std::vector<float> > _critMinimaInit{this, "CriteriaMin", {} }; Gaudi::Property<std::vector<float> > _critMaximaInit{this, "CriteriaMax", {} }; - Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true}; + Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false}; Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest110"}; std::map<std::string, std::vector<float> > _critMinima; diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h index c457d446bc20205b4f7a8bd5aa86597ec8acbfae..9579ed8ee7542c82c2f1c6de1887dfcf489cf759 100644 --- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h +++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h @@ -255,7 +255,7 @@ class SiliconTrackingAlg : public GaudiAlgorithm { Gaudi::Property<bool> _ElossOn{this, "EnergyLossOn", true}; Gaudi::Property<bool> _SmoothOn{this, "SmoothOn", true}; Gaudi::Property<float> _helix_max_r{this, "HelixMaxR", 2000.}; - Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true}; + Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false}; Gaudi::Property<bool> m_debug{this, "Debug", false}; //std::vector<int> _colours; diff --git a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h index 534524f9b66fcac2c60858e7f3d29d033740f877..5af3a25e1ffdef672780e06bc4f01884c8915a17 100644 --- a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h +++ b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h @@ -77,7 +77,7 @@ class TrackSubsetAlg : public GaudiAlgorithm { Gaudi::Property<float> _initialTrackError_tanL{this, "InitialTrackErrorTanL",1e2}; Gaudi::Property<double> _maxChi2PerHit{this, "MaxChi2PerHit", 1e2}; Gaudi::Property<double> _omega{this, "Omega", 0.75}; - Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true}; + Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false}; Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest111"}; float _bField; diff --git a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h index 2e9b9586bab5237f87738b97e28365e1ddaab305..9a4561f229f2ee70ad4a378cbf3948c37ca7a953 100755 --- a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h +++ b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.h @@ -397,7 +397,7 @@ protected: Gaudi::Property<float> _vetoMergeMomentumCut{this, "VetoMergeMomentumCut", 2.5}; Gaudi::Property<float> _maxAllowedPercentageOfOutliersForTrackCombination{this, "MaxAllowedPercentageOfOutliersForTrackCombination", 0.3}; Gaudi::Property<int> _maxAllowedSiHitRejectionsForTrackCombination{this, "MaxAllowedSiHitRejectionsForTrackCombination", 2}; - Gaudi::Property<bool> m_dumpTime{this, "DumpTime", true}; + Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false}; //float _dPCutForForcedMerging; Gaudi::Property<std::string> m_fitToolName{this, "FitterTool", "KalTestTool/KalTest111"}; @@ -517,9 +517,9 @@ protected: DataHandle<edm4hep::TrackCollection> _TPCTrackColHdl{"ClupatraTracks", Gaudi::DataHandle::Reader, this}; DataHandle<edm4hep::TrackCollection> _SiTrackColHdl{"SiTracks", Gaudi::DataHandle::Reader, this}; - DataHandle<edm4hep::TrackCollection> _OutputTrackColHdl{"MarlinTrkTracks", Gaudi::DataHandle::Writer, this}; + DataHandle<edm4hep::TrackCollection> _OutputTrackColHdl{"CompleteTracks", Gaudi::DataHandle::Writer, this}; - NTuple::Tuple* m_tuple; + NTuple::Tuple* m_tuple = nullptr; NTuple::Item<float> m_timeTotal; NTuple::Item<float> m_timeKalman; };