Newer
Older
input_tracking_hits = [
str(trk_b_reco.outputHitCollection),
str(trk_ec_reco.outputHitCollection),
str(vtx_b_reco.outputHitCollection),
str(mpgd_b_reco.outputHitCollection),
"trk_hit_col",
inputTrackingHits=input_tracking_hits,
trackingHits="trackingHits",
# Hit Source linker
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="InitTrackParams",
)
algorithms.append(truth_trk_init)
# Tracking algorithms
trk_find_alg = CKFTracking(
"trk_find_alg",
inputSourceLinks=sourcelinker.outputSourceLinks,
inputMeasurements=sourcelinker.outputMeasurements,
inputInitialTrackParameters=truth_trk_init.outputInitialTrackParameters,
outputTrajectories="trajectories",
chi2CutOff=[50.0],
)
parts_from_fit = ParticlesFromTrackFit(
"parts_from_fit",
inputTrajectories=trk_find_alg.outputTrajectories,
outputParticles="outputParticles",
outputTrackParameters="outputTrackParameters",
)
algorithms.append(parts_from_fit)
# trajs_from_fit = TrajectoryFromTrackFit("trajs_from_fit",
# inputTrajectories = trk_find_alg.outputTrajectories,
# outputTrajectoryParameters = "outputTrajectoryParameters")
# algorithms.append(trajs_from_fit)
parts_with_truth_pid = ParticlesWithTruthPID(
"parts_with_truth_pid",
inputMCParticles="MCParticles",
inputTrackParameters=parts_from_fit.outputTrackParameters,
outputParticles="ReconstructedChargedParticles",
outputAssociations="ReconstructedChargedParticlesAssoc",
algorithms.append(parts_with_truth_pid)
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
match_clusters = MatchClusters(
"match_clusters",
inputMCParticles="MCParticles",
inputParticles=parts_with_truth_pid.outputParticles,
inputParticlesAssoc=parts_with_truth_pid.outputAssociations,
inputClusters=[
str(ce_ecal_clmerger.outputClusters),
str(barrel_clus_merger.outputClusters),
str(ci_ecal_clmerger.outputClusters),
str(ce_hcal_clreco.outputClusterCollection),
str(cb_hcal_clreco.outputClusterCollection),
str(ci_hcal_clreco.outputClusterCollection),
],
inputClustersAssoc=[
str(ce_ecal_clmerger.outputAssociations),
str(barrel_clus_merger.outputAssociations),
str(ci_ecal_clmerger.outputAssociations),
str(ce_hcal_clreco.outputAssociations),
str(cb_hcal_clreco.outputAssociations),
str(ci_hcal_clreco.outputAssociations),
],
outputParticles="ReconstructedParticles",
outputParticlesAssoc="ReconstructedParticlesAssoc",
)
algorithms.append(match_clusters)
## Far Forward for now stored separately
fast_ff = FFSmearedParticles(
"fast_ff",
inputMCParticles="MCParticles",
outputParticles="ReconstructedFFParticles",
outputAssociations="ReconstructedFFParticlesAssoc",
enableZDC=True,
enableB0=True,
enableRP=True,
enableOMD=True,
ionBeamEnergy=ionBeamEnergy,
crossingAngle=-0.025,
)
algorithms.append(fast_ff)
drich_digi = PhotoMultiplierDigi(
"drich_digi",
inputHitCollection="DRICHHits",
outputHitCollection="DRICHRawHits",
quantumEfficiency=[(a * eV, b) for a, b in qe_data],
)
algorithms.append(drich_digi)
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=parts_with_truth_pid.outputParticles,
# outputClusterCollection="ForwardRICHClusters")
# PFRICH/MRICH
if has_pid_backward_pfrich:
pfrich_digi = PhotoMultiplierDigi(
"pfrich_digi",
inputHitCollection="PFRICHHits",
outputHitCollection="PFRICHRawHits",
quantumEfficiency=[(a * eV, b) for a, b in qe_data],
)
algorithms.append(pfrich_digi)
pfrich_reco = PhotoMultiplierReco(
"pfrich_reco",
inputHitCollection=pfrich_digi.outputHitCollection,
outputHitCollection="PFRICHRecHits",
)
algorithms.append(pfrich_reco)
else:
mrich_digi = PhotoMultiplierDigi(
"mrich_digi",
inputHitCollection="MRICHHits",
outputHitCollection="MRICHRawHits",
quantumEfficiency=[(a * eV, b) for a, b in qe_data],
)
mrich_reco = PhotoMultiplierReco(
"mrich_reco",
inputHitCollection=mrich_digi.outputHitCollection,
outputHitCollection="MRICHRecHits",
)
incl_kin_electron = InclusiveKinematicsElectron(
"incl_kin_electron",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsElectron",
)
algorithms.append(incl_kin_electron)
incl_kin_jb = InclusiveKinematicsJB(
"incl_kin_jb",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsJB",
incl_kin_da = InclusiveKinematicsDA(
"incl_kin_da",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsDA",
incl_kin_sigma = InclusiveKinematicsSigma(
"incl_kin_sigma",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicsSigma",
)
algorithms.append(incl_kin_sigma)
incl_kin_esigma = InclusiveKinematicseSigma(
"incl_kin_esigma",
inputMCParticles="MCParticles",
inputReconstructedParticles=parts_with_truth_pid.outputParticles,
inputParticleAssociations=parts_with_truth_pid.outputAssociations,
outputInclusiveKinematics="InclusiveKinematicseSigma",
)
algorithms.append(incl_kin_esigma)
# Output
podout = PodioOutput("out", filename=output_rec)
"keep *Clusters",
"drop *ProtoClusters",
"drop outputParticles",
"drop InitTrackParams",
]
+ ["drop " + c for c in sim_coll]
+ ["keep MCParticles"]
)
algorithms.append(podout)
ApplicationMgr(
TopAlg=algorithms,
EvtSel="NONE",
EvtMax=n_events,
ExtSvc=services,
OutputLevel=WARNING,
AuditAlgorithms=True,
HistogramPersistency="ROOT",