diff --git a/benchmarks/full/options/full_reconstruction.py b/benchmarks/full/options/full_reconstruction.py index fed2a5aba5604da5143476f19f59c06d964778b5..8f6e88f5ce22dedd64f6b55651e1f5a6d0492c87 100644 --- a/benchmarks/full/options/full_reconstruction.py +++ b/benchmarks/full/options/full_reconstruction.py @@ -100,6 +100,9 @@ sim_coll = [ "DRICHHits" ] +# list of algorithms +algorithms = [] + # input and output podin = PodioInput("PodioReader", collections=sim_coll) podout = PodioOutput("out", filename=output_rec) @@ -108,12 +111,17 @@ podout = PodioOutput("out", filename=output_rec) copier = MCCopier("MCCopier", inputCollection="mcparticles", outputCollection="mcparticles2") +algorithms.append( copier ) + trkcopier = TrkCopier("TrkCopier", inputCollection="TrackerBarrelHits", outputCollection="TrackerBarrelHits2") +algorithms.append( trkcopier ) + pmtcopier = PMTCopier("PMTCopier", inputCollection="DRICHHits", outputCollection="DRICHHits2") +algorithms.append( pmtcopier ) # Crystal Endcap Ecal ce_ecal_daq = dict( @@ -127,6 +135,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi", outputHitCollection="EcalEndcapNHitsDigi", energyResolutions=[0., 0.02, 0.], **ce_ecal_daq) +algorithms.append( ce_ecal_digi ) ce_ecal_reco = CalHitReco("ce_ecal_reco", inputHitCollection=ce_ecal_digi.outputHitCollection, @@ -135,6 +144,7 @@ ce_ecal_reco = CalHitReco("ce_ecal_reco", readoutClass="EcalEndcapNHits", sectorField="sector", **ce_ecal_daq) +algorithms.append( ce_ecal_reco ) ce_ecal_cl = IslandCluster("ce_ecal_cl", inputHitCollection=ce_ecal_reco.outputHitCollection, @@ -144,6 +154,7 @@ ce_ecal_cl = IslandCluster("ce_ecal_cl", minClusterCenterEdep=30*units.MeV, sectorDist=5.0*units.cm, dimScaledLocalDistXY=[1.8, 1.8]) # dimension scaled dist is good for hybrid sectors with different module size +algorithms.append( ce_ecal_cl ) ce_ecal_clreco = RecoCoG("ce_ecal_clreco", inputHitCollection=ce_ecal_cl.inputHitCollection, @@ -151,6 +162,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco", outputClusterCollection="EcalEndcapNClusters", samplingFraction=0.998, # this accounts for a small fraction of leakage logWeightBase=4.6) +algorithms.append( ce_ecal_clreco ) # Endcap Sampling Ecal ci_ecal_daq = dict( @@ -163,12 +175,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi", inputHitCollection="EcalEndcapPHits", outputHitCollection="EcalEndcapPHitsDigi", **ci_ecal_daq) +algorithms.append( ci_ecal_digi ) ci_ecal_reco = CalHitReco("ci_ecal_reco", inputHitCollection=ci_ecal_digi.outputHitCollection, outputHitCollection="EcalEndcapPHitsReco", thresholdFactor=5.0, **ci_ecal_daq) +algorithms.append( ci_ecal_reco ) # merge hits in different layer (projection to local x-y plane) ci_ecal_merger = CalHitsMerger("ci_ecal_merger", @@ -177,6 +191,7 @@ ci_ecal_merger = CalHitsMerger("ci_ecal_merger", fields=["layer", "slice"], fieldRefNumbers=[1, 0], readoutClass="EcalEndcapPHits") +algorithms.append( ci_ecal_merger ) ci_ecal_cl = IslandCluster("ci_ecal_cl", inputHitCollection=ci_ecal_merger.outputHitCollection, @@ -184,6 +199,7 @@ ci_ecal_cl = IslandCluster("ci_ecal_cl", splitCluster=False, minClusterCenterEdep=10.*units.MeV, localDistXY=[10*units.mm, 10*units.mm]) +algorithms.append( ci_ecal_cl ) ci_ecal_clreco = RecoCoG("ci_ecal_clreco", inputHitCollection=ci_ecal_cl.inputHitCollection, @@ -192,6 +208,7 @@ ci_ecal_clreco = RecoCoG("ci_ecal_clreco", outputInfoCollection="EcalEndcapPClustersInfo", logWeightBase=6.2, samplingFraction=ci_ecal_sf) +algorithms.append( ci_ecal_clreco ) # Central Barrel Ecal (Imaging Cal.) cb_ecal_daq = dict( @@ -205,6 +222,7 @@ cb_ecal_digi = CalHitDigi("cb_ecal_digi", outputHitCollection="EcalBarrelHitsDigi", energyResolutions=[0., 0.02, 0.], # 2% flat resolution **cb_ecal_daq) +algorithms.append( cb_ecal_digi ) cb_ecal_reco = ImCalPixelReco("cb_ecal_reco", inputHitCollection=cb_ecal_digi.outputHitCollection, @@ -214,6 +232,7 @@ cb_ecal_reco = ImCalPixelReco("cb_ecal_reco", layerField="layer", # field to get layer id sectorField="module", # field to get sector id **cb_ecal_daq) +algorithms.append( cb_ecal_reco ) cb_ecal_cl = ImagingCluster("cb_ecal_cl", inputHitCollection=cb_ecal_reco.outputHitCollection, @@ -222,6 +241,7 @@ cb_ecal_cl = ImagingCluster("cb_ecal_cl", layerDistEtaPhi=[10*units.mrad, 10*units.mrad], # adjacent layer neighbourLayersRange=2, # id diff for adjacent layer sectorDist=3.*units.cm) # different sector +algorithms.append( cb_ecal_cl ) cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco", samplingFraction=cb_ecal_sf, @@ -230,6 +250,7 @@ cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco", outputClusterCollection="EcalBarrelClusters", outputInfoCollection="EcalBarrelClustersInfo", outputLayerCollection="EcalBarrelLayers") +algorithms.append( cb_ecal_clreco ) # Central ECAL SciFi scfi_barrel_daq = dict( @@ -412,7 +433,7 @@ trk_ec_digi = TrackerDigi("trk_ec_digi", vtx_b_digi = TrackerDigi("vtx_b_digi", inputHitCollection="VertexBarrelHits", - outputHitCollection="VertexBarrelRawHits", + outputHitCollection="VertetimeResolution=10xBarrelRawHits", timeResolution=8) vtx_ec_digi = TrackerDigi("vtx_ec_digi", @@ -444,9 +465,8 @@ vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco", gem_ec_reco = TrackerHitReconstruction("gem_ec_reco", inputHitCollection=gem_ec_digi.outputHitCollection, - outputHitCollection="GEMTrackerEndcapRecHits", - timeResolution=10) -TrackingHitsCollector + outputHitCollection="GEMTrackerEndcapRecHits") + # Tracking hit collector trk_hit_col = TrackingHitsCollector("trk_hit_col", inputTrackingHits=[ @@ -547,26 +567,7 @@ podout.outputCommands = [ ] ApplicationMgr( - TopAlg = [podin, copier, trkcopier, - ce_ecal_digi, ce_ecal_reco, ce_ecal_cl, ce_ecal_clreco, - ci_ecal_digi, ci_ecal_reco, ci_ecal_merger, ci_ecal_cl, ci_ecal_clreco, - cb_ecal_digi, cb_ecal_reco, cb_ecal_cl, cb_ecal_clreco, - scfi_barrel_digi, scfi_barrel_reco, scfi_barrel_merger, scfi_barrel_cl, scfi_barrel_clreco, - cb_hcal_digi, cb_hcal_reco, cb_hcal_merger, cb_hcal_cl, cb_hcal_clreco, - ce_hcal_digi, ce_hcal_reco, ce_hcal_merger, ce_hcal_cl, ce_hcal_clreco, - ci_hcal_digi, ci_hcal_reco, ci_hcal_merger, ci_hcal_cl, ci_hcal_clreco, - trk_b_digi, trk_ec_digi, vtx_b_digi, vtx_ec_digi, - trk_b_reco, trk_ec_reco, vtx_b_reco, vtx_ec_reco, - trk_hit_col, - sourcelinker, #trk_hits_srclnkr, - #clust_trk_init, - truth_trk_init, trk_find_alg, parts_from_fit, - #vtxcluster_trk_init, - #trk_find_alg1, parts_from_fit1, - #trk_find_alg2, parts_from_fit2, - pmtcopier, pmtdigi, pmtreco, #richcluster, - podout - ], + TopAlg = algorithms, EvtSel = 'NONE', EvtMax = n_events, ExtSvc = [podioevent,geo_service],