diff --git a/benchmarks/full/options/full_reconstruction.py b/benchmarks/full/options/full_reconstruction.py index 3ee99112b196a0d710fe5cad5215ac0527f1b4a0..ecaa564ffad9afd7a57406d7e43f4f07ae29f746 100644 --- a/benchmarks/full/options/full_reconstruction.py +++ b/benchmarks/full/options/full_reconstruction.py @@ -52,15 +52,12 @@ from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollectio from Configurables import Jug__Base__InputCopier_dd4pod__TrackerHitCollection_dd4pod__TrackerHitCollection_ as TrkCopier from Configurables import Jug__Base__InputCopier_dd4pod__PhotoMultiplierHitCollection_dd4pod__PhotoMultiplierHitCollection_ as PMTCopier -from Configurables import Jug__Base__MC2DummyParticle as MC2DummyParticle - from Configurables import Jug__Digi__PhotoMultiplierDigi as PhotoMultiplierDigi from Configurables import Jug__Digi__CalorimeterHitDigi as CalHitDigi -from Configurables import Jug__Digi__ExampleCaloDigi as ExampleCaloDigi from Configurables import Jug__Digi__UFSDTrackerDigi as TrackerDigi -from Configurables import Jug__Digi__EMCalorimeterDigi as EMCalorimeterDigi from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitReconstruction +from Configurables import Jug__Reco__TrackingHitsCollector2 as TrackingHitsCollector from Configurables import Jug__Reco__TrackerSourceLinker as TrackerSourceLinker from Configurables import Jug__Reco__TrackerSourcesLinker as TrackerSourcesLinker #from Configurables import Jug__Reco__TrackingHitsSourceLinker as TrackingHitsSourceLinker @@ -85,8 +82,6 @@ from Configurables import Jug__Reco__PhotoRingClusters as PhotoRingClusters from Configurables import Jug__Reco__EMCalReconstruction as EMCalReconstruction -from Configurables import Jug__Reco__SimpleClustering as SimpleClustering - # branches needed from simulation root file sim_coll = [ "mcparticles", @@ -102,46 +97,32 @@ sim_coll = [ "GEMTrackerEndcapHits", "VertexBarrelHits", "VertexEndcapHits", - "DRICHHits" + "DRICHHits", + "MRICHHits" ] -# input and output +# list of algorithms +algorithms = [] + +# input podin = PodioInput("PodioReader", collections=sim_coll) -podout = PodioOutput("out", filename=output_rec) +algorithms.append(podin) ## 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) + pmtcopier = PMTCopier("PMTCopier", inputCollection="DRICHHits", outputCollection="DRICHHits2") - -# Dummy reconstruction -dummy = MC2DummyParticle("MC2Dummy", - inputCollection="mcparticles", - outputCollection="ReconstructedParticles", - smearing = 0.01) - -# Simple clusters -ecal_digi = EMCalorimeterDigi("ecal_digi", - inputHitCollection="EcalBarrelHits", - outputHitCollection="EcalBarrelHitsSimpleDigi") - -ecal_reco = EMCalReconstruction("ecal_reco", - inputHitCollection=ecal_digi.outputHitCollection, - outputHitCollection="EcalBarrelHitsSimpleReco", - minModuleEdep=0.0*units.MeV) - -simple_cluster = SimpleClustering("simple_cluster", - inputHitCollection=ecal_reco.outputHitCollection, - outputClusterCollection="SimpleClusters", - outputProtoClusterCollection="SimpleProtoClusters", - minModuleEdep=1.0*units.MeV, - maxDistance=50.0*units.cm) +algorithms.append(pmtcopier) # Crystal Endcap Ecal ce_ecal_daq = dict( @@ -155,6 +136,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi", outputHitCollection="EcalEndcapNRawHits", 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, @@ -163,6 +145,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, @@ -172,6 +155,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, @@ -179,6 +163,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( @@ -191,12 +176,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi", inputHitCollection="EcalEndcapPHits", outputHitCollection="EcalEndcapPRawHits", **ci_ecal_daq) +algorithms.append(ci_ecal_digi) ci_ecal_reco = CalHitReco("ci_ecal_reco", inputHitCollection=ci_ecal_digi.outputHitCollection, outputHitCollection="EcalEndcapPRecHits", 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", @@ -205,6 +192,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, @@ -212,6 +200,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, @@ -220,6 +209,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.) img_barrel_daq = dict( @@ -233,6 +223,7 @@ img_barrel_digi = CalHitDigi("img_barrel_digi", outputHitCollection="EcalBarrelImagingRawHits", energyResolutions=[0., 0.02, 0.], # 2% flat resolution **img_barrel_daq) +algorithms.append(img_barrel_digi) img_barrel_reco = ImCalPixelReco("img_barrel_reco", inputHitCollection=img_barrel_digi.outputHitCollection, @@ -242,6 +233,7 @@ img_barrel_reco = ImCalPixelReco("img_barrel_reco", layerField="layer", # field to get layer id sectorField="module", # field to get sector id **img_barrel_daq) +algorithms.append(img_barrel_reco) img_barrel_cl = ImagingCluster("img_barrel_cl", inputHitCollection=img_barrel_reco.outputHitCollection, @@ -250,6 +242,7 @@ img_barrel_cl = ImagingCluster("img_barrel_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(img_barrel_cl) img_barrel_clreco = ImagingClusterReco("img_barrel_clreco", samplingFraction=img_barrel_sf, @@ -258,6 +251,7 @@ img_barrel_clreco = ImagingClusterReco("img_barrel_clreco", outputClusterCollection="EcalBarrelImagingClusters", outputInfoCollection="EcalBarrelImagingClustersInfo", outputLayerCollection="EcalBarrelImagingLayers") +algorithms.append(img_barrel_clreco) # Central ECAL SciFi scfi_barrel_daq = dict( @@ -270,6 +264,7 @@ scfi_barrel_digi = CalHitDigi("scfi_barrel_digi", inputHitCollection="EcalBarrelScFiHits", outputHitCollection="EcalBarrelScFiRawHits", **scfi_barrel_daq) +algorithms.append(scfi_barrel_digi) scfi_barrel_reco = CalHitReco("scfi_barrel_reco", inputHitCollection=scfi_barrel_digi.outputHitCollection, @@ -280,6 +275,7 @@ scfi_barrel_reco = CalHitReco("scfi_barrel_reco", sectorField="module", localDetFields=["system", "module"], # use local coordinates in each module (stave) **scfi_barrel_daq) +algorithms.append(scfi_barrel_reco) # merge hits in different layer (projection to local x-y plane) scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger", @@ -288,6 +284,7 @@ scfi_barrel_merger = CalHitsMerger("scfi_barrel_merger", fields=["fiber"], fieldRefNumbers=[1], readoutClass="EcalBarrelScFiHits") +algorithms.append(scfi_barrel_merger) scfi_barrel_cl = IslandCluster("scfi_barrel_cl", inputHitCollection=scfi_barrel_merger.outputHitCollection, @@ -295,6 +292,7 @@ scfi_barrel_cl = IslandCluster("scfi_barrel_cl", splitCluster=False, minClusterCenterEdep=10.*MeV, localDistXZ=[30*mm, 30*mm]) +algorithms.append(scfi_barrel_cl) scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco", inputHitCollection=scfi_barrel_cl.inputHitCollection, @@ -303,6 +301,7 @@ scfi_barrel_clreco = RecoCoG("scfi_barrel_clreco", outputInfoCollection="EcalBarrelScFiClustersInfo", logWeightBase=6.2, samplingFraction= scifi_barrel_sf) +algorithms.append(scfi_barrel_clreco) # Central Barrel Hcal cb_hcal_daq = dict( @@ -315,6 +314,7 @@ cb_hcal_digi = CalHitDigi("cb_hcal_digi", inputHitCollection="HcalBarrelHits", outputHitCollection="HcalBarrelRawHits", **cb_hcal_daq) +algorithms.append(cb_hcal_digi) cb_hcal_reco = CalHitReco("cb_hcal_reco", inputHitCollection=cb_hcal_digi.outputHitCollection, @@ -324,6 +324,7 @@ cb_hcal_reco = CalHitReco("cb_hcal_reco", layerField="layer", sectorField="module", **cb_hcal_daq) +algorithms.append(cb_hcal_reco) cb_hcal_merger = CalHitsMerger("cb_hcal_merger", inputHitCollection=cb_hcal_reco.outputHitCollection, @@ -331,6 +332,7 @@ cb_hcal_merger = CalHitsMerger("cb_hcal_merger", readoutClass="HcalBarrelHits", fields=["layer", "slice"], fieldRefNumbers=[1, 0]) +algorithms.append(cb_hcal_merger) cb_hcal_cl = IslandCluster("cb_hcal_cl", inputHitCollection=cb_hcal_merger.outputHitCollection, @@ -338,6 +340,7 @@ cb_hcal_cl = IslandCluster("cb_hcal_cl", splitCluster=False, minClusterCenterEdep=30.*units.MeV, localDistXY=[15.*units.cm, 15.*units.cm]) +algorithms.append(cb_hcal_cl) cb_hcal_clreco = RecoCoG("cb_hcal_clreco", inputHitCollection=cb_hcal_cl.inputHitCollection, @@ -346,7 +349,7 @@ cb_hcal_clreco = RecoCoG("cb_hcal_clreco", outputInfoCollection="HcalBarrelClustersInfo", logWeightBase=6.2, samplingFraction=cb_hcal_sf) - +algorithms.append(cb_hcal_clreco) # Hcal Hadron Endcap ci_hcal_daq = dict( @@ -354,16 +357,19 @@ ci_hcal_daq = dict( capacityADC=32768, pedestalMean=400, pedestalSigma=10) + ci_hcal_digi = CalHitDigi("ci_hcal_digi", inputHitCollection="HcalEndcapPHits", outputHitCollection="HcalEndcapPRawHits", **ci_hcal_daq) +algorithms.append(ci_hcal_digi) ci_hcal_reco = CalHitReco("ci_hcal_reco", inputHitCollection=ci_hcal_digi.outputHitCollection, outputHitCollection="HcalEndcapPRecHits", thresholdFactor=5.0, **ci_hcal_daq) +algorithms.append(ci_hcal_reco) ci_hcal_merger = CalHitsMerger("ci_hcal_merger", inputHitCollection=ci_hcal_reco.outputHitCollection, @@ -371,6 +377,7 @@ ci_hcal_merger = CalHitsMerger("ci_hcal_merger", readoutClass="HcalEndcapPHits", fields=["layer", "slice"], fieldRefNumbers=[1, 0]) +algorithms.append(ci_hcal_merger) ci_hcal_cl = IslandCluster("ci_hcal_cl", inputHitCollection=ci_hcal_merger.outputHitCollection, @@ -378,6 +385,7 @@ ci_hcal_cl = IslandCluster("ci_hcal_cl", splitCluster=False, minClusterCenterEdep=30.*units.MeV, localDistXY=[15.*units.cm, 15.*units.cm]) +algorithms.append(ci_hcal_cl) ci_hcal_clreco = RecoCoG("ci_hcal_clreco", inputHitCollection=ci_hcal_cl.inputHitCollection, @@ -386,6 +394,7 @@ ci_hcal_clreco = RecoCoG("ci_hcal_clreco", outputInfoCollection="HcalEndcapPClustersInfo", logWeightBase=6.2, samplingFraction=ci_hcal_sf) +algorithms.append(ci_hcal_clreco) # Hcal Electron Endcap ce_hcal_daq = dict( @@ -398,12 +407,14 @@ ce_hcal_digi = CalHitDigi("ce_hcal_digi", inputHitCollection="HcalEndcapNHits", outputHitCollection="HcalEndcapNRawHits", **ce_hcal_daq) +algorithms.append(ce_hcal_digi) ce_hcal_reco = CalHitReco("ce_hcal_reco", inputHitCollection=ce_hcal_digi.outputHitCollection, outputHitCollection="HcalEndcapNRecHits", thresholdFactor=5.0, **ce_hcal_daq) +algorithms.append(ce_hcal_reco) ce_hcal_merger = CalHitsMerger("ce_hcal_merger", inputHitCollection=ce_hcal_reco.outputHitCollection, @@ -411,6 +422,7 @@ ce_hcal_merger = CalHitsMerger("ce_hcal_merger", readoutClass="HcalEndcapNHits", fields=["layer", "slice"], fieldRefNumbers=[1, 0]) +algorithms.append(ce_hcal_merger) ce_hcal_cl = IslandCluster("ce_hcal_cl", inputHitCollection=ce_hcal_merger.outputHitCollection, @@ -418,6 +430,7 @@ ce_hcal_cl = IslandCluster("ce_hcal_cl", splitCluster=False, minClusterCenterEdep=30.*units.MeV, localDistXY=[15.*units.cm, 15.*units.cm]) +algorithms.append(ce_hcal_cl) ce_hcal_clreco = RecoCoG("ce_hcal_clreco", inputHitCollection=ce_hcal_cl.inputHitCollection, @@ -426,163 +439,154 @@ ce_hcal_clreco = RecoCoG("ce_hcal_clreco", outputInfoCollection="HcalEndcapNClustersInfo", logWeightBase=6.2, samplingFraction=ce_hcal_sf) - +algorithms.append(ce_hcal_clreco) # Tracking trk_b_digi = TrackerDigi("trk_b_digi", inputHitCollection="TrackerBarrelHits", outputHitCollection="TrackerBarrelRawHits", timeResolution=8) +algorithms.append(trk_b_digi) + trk_ec_digi = TrackerDigi("trk_ec_digi", inputHitCollection="TrackerEndcapHits", outputHitCollection="TrackerEndcapRawHits", timeResolution=8) +algorithms.append(trk_ec_digi) vtx_b_digi = TrackerDigi("vtx_b_digi", inputHitCollection="VertexBarrelHits", - outputHitCollection="VertexBarrelRawHits", + outputHitCollection="VertetimeResolution=10xBarrelRawHits", 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) # Tracker and vertex reconstruction trk_b_reco = TrackerHitReconstruction("trk_b_reco", inputHitCollection = trk_b_digi.outputHitCollection, outputHitCollection="TrackerBarrelRecHits") +algorithms.append(trk_b_reco) trk_ec_reco = TrackerHitReconstruction("trk_ec_reco", inputHitCollection = trk_ec_digi.outputHitCollection, outputHitCollection="TrackerEndcapRecHits") +algorithms.append(trk_ec_reco) vtx_b_reco = TrackerHitReconstruction("vtx_b_reco", inputHitCollection = vtx_b_digi.outputHitCollection, 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_digi", +gem_ec_reco = TrackerHitReconstruction("gem_ec_reco", inputHitCollection=gem_ec_digi.outputHitCollection, - outputHitCollection="GEMTrackerEndcapRecHits", - timeResolution=10) + outputHitCollection="GEMTrackerEndcapRecHits") +algorithms.append(gem_ec_reco) + +# Tracking hit collector +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) ], + trackingHits="trackingHits") +algorithms.append(trk_hit_col) # Hit Source linker -sourcelinker = TrackerSourcesLinker("trk_srcslnkr", - inputHitCollections = ["VertexBarrelRecHits", "TrackerBarrelRecHits"], - outputSourceLinks = "TrackerSourceLinks", - outputMeasurements = "TrackerMeasurements") - -#trk_hits_srclnkr = TrackerSourcesLinker("trk_srcslnkr", -# ITrackerBarrelHits = vtx_b_reco.outputHitCollection, -# ITrackerEndcapHits = vtx_ec_reco.outputHitCollection, -# OTrackerBarrelHits = trk_b_reco.outputHitCollection, -# OTrackerEndcapHits = trk_ec_reco.outputHitCollection, -# outputSourceLinks="TrackerMeasurements") +sourcelinker = TrackerSourceLinker("trk_srcslnkr", + inputHitCollection = trk_hit_col.trackingHits, + outputSourceLinks = "TrackSourceLinks", + outputMeasurements = "TrackMeasurements") +algorithms.append(sourcelinker) ## Track param init truth_trk_init = TrackParamTruthInit("truth_trk_init", inputMCParticles="mcparticles", - outputInitialTrackParameters="InitTrackParamsFromTruth") - -#clust_trk_init = TrackParamClusterInit("clust_trk_init", -# inputClusters="SimpleClusters", -# outputInitialTrackParameters="InitTrackParamsFromClusters") - -#vtxcluster_trk_init = TrackParamVertexClusterInit("vtxcluster_trk_init", -# inputVertexHits="VertexBarrelRecHits", -# inputClusters="EcalBarrelImagingClusters", -# outputInitialTrackParameters="InitTrackParamsFromVtxClusters", -# maxHitRadius=40.0*units.mm) + outputInitialTrackParameters="InitTrackParams") +algorithms.append(truth_trk_init) # Tracking algorithms trk_find_alg = TrackFindingAlgorithm("trk_find_alg", inputSourceLinks = sourcelinker.outputSourceLinks, inputMeasurements = sourcelinker.outputMeasurements, - inputInitialTrackParameters = "InitTrackParamsFromTruth", + inputInitialTrackParameters = "InitTrackParams", outputTrajectories = "trajectories") +algorithms.append(trk_find_alg) parts_from_fit = ParticlesFromTrackFit("parts_from_fit", inputTrajectories = "trajectories", - outputParticles = "ReconstructedParticlesInitFromTruth", + outputParticles = "ReconstructedParticles", outputTrackParameters = "outputTrackParameters") +algorithms.append(parts_from_fit) -#trk_find_alg1 = TrackFindingAlgorithm("trk_find_alg1", -# inputSourceLinks = sourcelinker.outputSourceLinks, -# inputMeasurements = sourcelinker.outputMeasurements, -# inputInitialTrackParameters= "InitTrackParamsFromClusters", -# outputTrajectories="trajectories1") - -#parts_from_fit1 = ParticlesFromTrackFit("parts_from_fit1", -# inputTrajectories="trajectories1", -# outputParticles="ReconstructedParticlesInitFromClusters", -# outputTrackParameters="outputTrackParameters1") - -#trk_find_alg2 = TrackFindingAlgorithm("trk_find_alg2", -# inputSourceLinks = trk_hits_srclnkr.outputSourceLinks, -# inputMeasurements = trk_hits_srclnkr.outputMeasurements, -# inputInitialTrackParameters= "InitTrackParamsFromVtxClusters", -# outputTrajectories="trajectories2") -#parts_from_fit2 = ParticlesFromTrackFit("parts_from_fit2", -# inputTrajectories="trajectories2", -# outputParticles="ReconstructedParticles2", -# outputTrackParameters="outputTrackParameters2") - - -pmtdigi = PhotoMultiplierDigi("pmtdigi", +# DRICH +drich_digi = PhotoMultiplierDigi("drich_digi", inputHitCollection="DRICHHits", outputHitCollection="DRICHRawHits", quantumEfficiency=[(a*units.eV, b) for a, b in qe_data]) +algorithms.append(drich_digi) -pmtreco = PhotoMultiplierReco("pmtreco", - inputHitCollection=pmtdigi.outputHitCollection, +drich_reco = PhotoMultiplierReco("drich_reco", + inputHitCollection=drich_digi.outputHitCollection, outputHitCollection="DRICHRecHits") +algorithms.append(drich_reco) + +# FIXME +#drich_cluster = PhotoRingClusters("drich_cluster", +# inputHitCollection=pmtreco.outputHitCollection, +# #inputTrackCollection="ReconstructedParticles", +# outputClusterCollection="ForwardRICHClusters") + +# MRICH +mrich_digi = PhotoMultiplierDigi("mrich_digi", + inputHitCollection="MRICHHits", + outputHitCollection="MRICHRawHits", + quantumEfficiency=[(a*units.eV, b) for a, b in qe_data]) +algorithms.append(mrich_digi) + +mrich_reco = PhotoMultiplierReco("mrich_reco", + inputHitCollection=mrich_digi.outputHitCollection, + outputHitCollection="MRICHRecHits") +algorithms.append(mrich_reco) # FIXME -#richcluster = PhotoRingClusters("richcluster", +#mrich_cluster = PhotoRingClusters("drich_cluster", # inputHitCollection=pmtreco.outputHitCollection, # #inputTrackCollection="ReconstructedParticles", # outputClusterCollection="ForwardRICHClusters") # Output -podout.outputCommands = ["keep *", - "keep *Hits", +podout = PodioOutput("out", filename=output_rec) +podout.outputCommands = [ + "keep *", + "drop *Digi", + "keep *Reco*", + "keep *ClusterHits", "keep *Clusters", "keep *Layers", - "drop mcparticles" + "drop InitTrackParams", ] +algorithms.append(podout) ApplicationMgr( - TopAlg = [podin, copier, trkcopier, - dummy, - ecal_digi, ecal_reco, #simple_cluster, - 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, - img_barrel_digi, img_barrel_reco, img_barrel_cl, img_barrel_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, - sourcelinker, #trk_hits_srclnkr, - #clust_trk_init, - truth_trk_init, - #vtxcluster_trk_init, - trk_find_alg, parts_from_fit, - #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],