diff --git a/benchmarks/tof/options/track_reconstruction.py b/benchmarks/tof/options/track_reconstruction.py index 0fa1fb6e0a67a68401464ea356767323148b5eff..ca73db662a574a14bf530b18ade652245a6135dd 100644 --- a/benchmarks/tof/options/track_reconstruction.py +++ b/benchmarks/tof/options/track_reconstruction.py @@ -5,11 +5,17 @@ from GaudiKernel import SystemOfUnits as units detector_name = "topside" if "JUGGLER_DETECTOR" in os.environ : - detector_name = str(os.environ["JUGGLER_DETECTOR"]) + detector_name = str(os.environ["JUGGLER_DETECTOR"]) detector_path = "" if "DETECTOR_PATH" in os.environ : - detector_path = str(os.environ["DETECTOR_PATH"]) + detector_path = str(os.environ["DETECTOR_PATH"]) + +detector_version = 'default' +if "JUGGLER_DETECTOR_VERSION" in os.environ: + env_version = str(os.environ["JUGGLER_DETECTOR_VERSION"]) + if 'acadia' in env_version: + detector_version = 'acadia' # todo add checks input_sim_file = str(os.environ["JUGGLER_SIM_FILE"]) @@ -20,9 +26,6 @@ geo_service = GeoSvc("GeoSvc", detectors=["{}/{}.xml".format(detector_path,dete podioevent = EICDataSvc("EventDataSvc", inputs=[input_sim_file], OutputLevel=WARNING) from Configurables import PodioInput -from Configurables import Jug__Base__InputCopier_dd4pod__Geant4ParticleCollection_dd4pod__Geant4ParticleCollection_ as MCCopier -from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollection_dd4pod__CalorimeterHitCollection_ as CalCopier -from Configurables import Jug__Base__InputCopier_dd4pod__TrackerHitCollection_dd4pod__TrackerHitCollection_ as TrkCopier from Configurables import Jug__Digi__SiliconTrackerDigi as TrackerDigi @@ -43,22 +46,15 @@ from Configurables import Jug__Reco__SimpleClustering as SimpleClustering algorithms = [ ] -podioinput = PodioInput("PodioReader", - collections=["mcparticles","TrackerEndcapHits","TrackerBarrelHits","VertexBarrelHits","VertexEndcapHits","BarrelTOFHits","ForwardTOFHits","BackwardTOFHits"]) - #collections=["mcparticles","TrackerEndcapHits","TrackerBarrelHits","VertexBarrelHits","VertexEndcapHits","GEMTrackerEndcapHits","BarrelTOFHits","ForwardTOFHits","BackwardTOFHits"]) +input_collections = ['mcparticles','TrackerEndcapHits','TrackerBarrelHits','TOFBarrelHits','VertexBarrelHits','GEMTrackerEndcapHits'] +if 'acadia' in detector_version: + input_collections.append('VertexEndcapHits') +else: + input_collections.append('MPGDTrackerBarrelHits') +podioinput = PodioInput("PodioReader", + collections=input_collections)#, OutputLevel=DEBUG) algorithms.append( podioinput ) -## copiers to get around input --> output copy bug. Note the "2" appended to the output collection. -copier = MCCopier("MCCopier", - inputCollection="mcparticles", - outputCollection="mcparticles2") -algorithms.append( copier ) - -trkcopier = TrkCopier("TrkCopier", - inputCollection="TrackerBarrelHits", - outputCollection="TrackerBarrelHits2") -algorithms.append( trkcopier ) - trk_b_digi = TrackerDigi("trk_b_digi", inputHitCollection="TrackerBarrelHits", outputHitCollection="TrackerBarrelRawHits", @@ -76,35 +72,30 @@ vtx_b_digi = TrackerDigi("vtx_b_digi", timeResolution=8) algorithms.append( vtx_b_digi ) -vtx_ec_digi = TrackerDigi("vtx_ec_digi", - inputHitCollection="VertexEndcapHits", - outputHitCollection="VertexEndcapRawHits", - timeResolution=8) -algorithms.append( vtx_ec_digi ) - -#gem_ec_digi = TrackerDigi("gem_ec_digi", -# inputHitCollection="GEMTrackerEndcapHits", -# outputHitCollection="GEMTrackerEndcapRawHits", -# timeResolution=10) -#algorithms.append(gem_ec_digi) +if 'acadia' in detector_version: + vtx_ec_digi = TrackerDigi("vtx_ec_digi", + inputHitCollection="VertexEndcapHits", + outputHitCollection="VertexEndcapRawHits", + timeResolution=8) + algorithms.append( vtx_ec_digi ) +else: + mm_b_digi = TrackerDigi("mm_b_digi", + inputHitCollection="MPGDTrackerBarrelHits", + outputHitCollection="MPGDTrackerBarrelRawHits", + timeResolution=8) + algorithms.append( mm_b_digi ) tof_b_digi = TrackerDigi("tof_b_digi", - inputHitCollection="BarrelTOFHits", - outputHitCollection="BarrelTOFRawHits", + inputHitCollection="TOFBarrelHits", + outputHitCollection="TOFBarrelRawHits", timeResolution=20) algorithms.append(tof_b_digi) -tof_forward_digi = TrackerDigi("tof_forward_digi", - inputHitCollection="ForwardTOFHits", - outputHitCollection="ForwardTOFRawHits", - timeResolution=20) -algorithms.append(tof_forward_digi) - -tof_backward_digi = TrackerDigi("tof_backward_digi", - inputHitCollection="BackwardTOFHits", - outputHitCollection="BackwardTOFRawHits", - timeResolution=20) -algorithms.append(tof_backward_digi) +gem_ec_digi = TrackerDigi("gem_ec_digi", + inputHitCollection="GEMTrackerEndcapHits", + outputHitCollection="GEMTrackerEndcapRawHits", + timeResolution=10) +algorithms.append(gem_ec_digi) # Tracker and vertex reconstruction trk_b_reco = TrackerHitReconstruction("trk_b_reco", @@ -122,41 +113,40 @@ vtx_b_reco = TrackerHitReconstruction("vtx_b_reco", outputHitCollection="VertexBarrelRecHits") algorithms.append( vtx_b_reco ) -vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco", - inputHitCollection = vtx_ec_digi.outputHitCollection, - outputHitCollection="VertexEndcapRecHits") -algorithms.append( vtx_ec_reco ) - -#gem_ec_reco = TrackerHitReconstruction("gem_ec_reco", -# inputHitCollection=gem_ec_digi.outputHitCollection, -# outputHitCollection="GEMTrackerEndcapRecHits") -#algorithms.append(gem_ec_reco) +if 'acadia' in detector_version: + vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco", + inputHitCollection = vtx_ec_digi.outputHitCollection, + outputHitCollection="VertexEndcapRecHits") + algorithms.append( vtx_ec_reco ) +else: + mm_b_reco = TrackerHitReconstruction("mm_b_reco", + inputHitCollection = mm_b_digi.outputHitCollection, + outputHitCollection="MPGDTrackerBarrelRecHits") + algorithms.append( mm_b_reco ) tof_b_reco = TrackerHitReconstruction("tof_b_reco", inputHitCollection=tof_b_digi.outputHitCollection, outputHitCollection="BarrelTOFRecHits") algorithms.append(tof_b_reco) -tof_forward_reco = TrackerHitReconstruction("tof_forward_reco", - inputHitCollection=tof_forward_digi.outputHitCollection, - outputHitCollection="ForwardTOFRecHits") -algorithms.append(tof_forward_reco) - -tof_backward_reco = TrackerHitReconstruction("tof_backward_reco", - inputHitCollection=tof_backward_digi.outputHitCollection, - outputHitCollection="BackwardTOFRecHits") -algorithms.append(tof_backward_reco) +gem_ec_reco = TrackerHitReconstruction("gem_ec_reco", + inputHitCollection=gem_ec_digi.outputHitCollection, + outputHitCollection="GEMTrackerEndcapRecHits") +algorithms.append(gem_ec_reco) + +input_tracking_hits = [ + str(trk_b_reco.outputHitCollection), + str(trk_ec_reco.outputHitCollection), + str(vtx_b_reco.outputHitCollection), + str(tof_b_reco.outputHitCollection), + str(gem_ec_reco.outputHitCollection) ] +if 'acadia' in detector_version: + input_tracking_hits.append(str(vtx_ec_reco.outputHitCollection)) +else: + input_tracking_hits.append(str(mm_b_reco.outputHitCollection)) trk_hit_col = TrackingHitsCollector("trk_hit_col", - inputTrackingHits=[ - str(trk_b_reco.outputHitCollection), - str(trk_ec_reco.outputHitCollection), - str(vtx_b_reco.outputHitCollection), - str(vtx_ec_reco.outputHitCollection), -# str(gem_ec_reco.outputHitCollection), - str(tof_b_reco.outputHitCollection), - str(tof_forward_reco.outputHitCollection), - str(tof_backward_reco.outputHitCollection) ], + inputTrackingHits=input_tracking_hits, trackingHits="trackingHits", OutputLevel=DEBUG) algorithms.append( trk_hit_col ) @@ -225,7 +215,7 @@ out.outputCommands = ["keep *", "drop trajectories", "drop outputSourceLinks", "drop outputInitialTrackParameters", - "drop mcparticles" + "keep mcparticles" ] algorithms.append(out)