|
1 | | -testFile="root://eospublic.cern.ch//eos/experiment/fcc/ee/generation/DelphesEvents/winter2023/IDEA/p8_ee_Zbb_ecm91/events_066726720.root" |
| 1 | +testFile = 'https://fccsw.web.cern.ch/fccsw/analysis/' \ |
| 2 | + 'test-samples/edm4hep099/p8_ee_Zbb_ecm91_edm4hep.root' |
2 | 3 |
|
3 | 4 | #Mandatory: List of processes |
4 | 5 | processList = { |
@@ -31,56 +32,65 @@ class RDFanalysis(): |
31 | 32 | def analysers(df): |
32 | 33 | df2 = ( |
33 | 34 | df |
34 | | - .Alias("Particle1", "Particle#1.index") |
35 | | - |
36 | | - # get all the MC particles to check for Ks |
| 35 | + .Alias("Particle1", "_Particle_daughters.index") |
| 36 | + |
| 37 | + # get all the MC particles to check for Ks |
37 | 38 | .Define("MC_pdg", "FCCAnalyses::MCParticle::get_pdg(Particle)") |
38 | | - # get momenta & mass of all particles |
| 39 | + # get momenta & mass of all particles |
39 | 40 | .Define("MC_p4", "FCCAnalyses::MCParticle::get_tlv(Particle)") |
40 | 41 | .Define("MC_mass", "FCCAnalyses::MCParticle::get_mass(Particle)") |
41 | | - |
42 | | - # Ks -> pi+pi- |
43 | | - .Define("K0spipi_indices", "FCCAnalyses::MCParticle::get_indices_ExclusiveDecay(310, {211, -211}, true, true) (Particle, Particle1)") |
44 | | - # Lambda0 -> p+pi- |
45 | | - .Define("Lambda0ppi_indices", "FCCAnalyses::MCParticle::get_indices_ExclusiveDecay(3122, {2212, -211}, true, true) (Particle, Particle1)") |
46 | | - |
47 | | - # determime the primary (and secondary) tracks without using the MC-matching: |
48 | | - |
49 | | - # Select the tracks that are reconstructed as primaries |
50 | | - .Define("RecoedPrimaryTracks", "VertexFitterSimple::get_PrimaryTracks( EFlowTrack_1, true, 4.5, 20e-3, 300, 0., 0., 0.)") |
51 | | - |
52 | | - .Define("n_RecoedPrimaryTracks", "ReconstructedParticle2Track::getTK_n( RecoedPrimaryTracks )") |
53 | | - # the final primary vertex : |
54 | | - .Define("PrimaryVertexObject", "VertexFitterSimple::VertexFitter_Tk ( 1, RecoedPrimaryTracks, true, 4.5, 20e-3, 300) ") |
55 | | - .Define("PrimaryVertex", "VertexingUtils::get_VertexData( PrimaryVertexObject )") |
56 | | - |
57 | | - # the secondary tracks |
58 | | - .Define("SecondaryTracks", "VertexFitterSimple::get_NonPrimaryTracks( EFlowTrack_1, RecoedPrimaryTracks )") |
59 | | - .Define("n_SecondaryTracks", "ReconstructedParticle2Track::getTK_n( SecondaryTracks )" ) |
60 | | - |
61 | | - # which of the tracks are primary according to the reco algprithm |
62 | | - .Define("IsPrimary_based_on_reco", "VertexFitterSimple::IsPrimary_forTracks( EFlowTrack_1, RecoedPrimaryTracks )") |
| 42 | + |
| 43 | + # Ks -> pi+pi- |
| 44 | + .Define("K0spipi_indices", |
| 45 | + "FCCAnalyses::MCParticle::get_indices_ExclusiveDecay(310, {211, -211}, true, true) (Particle, Particle1)") |
| 46 | + # Lambda0 -> p+pi- |
| 47 | + .Define("Lambda0ppi_indices", |
| 48 | + "FCCAnalyses::MCParticle::get_indices_ExclusiveDecay(3122, {2212, -211}, true, true) (Particle, Particle1)") |
| 49 | + |
| 50 | + # determime the primary (and secondary) tracks without using the MC-matching: |
| 51 | + |
| 52 | + # Select the tracks that are reconstructed as primaries |
| 53 | + .Define("RecoedPrimaryTracks", |
| 54 | + "VertexFitterSimple::get_PrimaryTracks(_EFlowTrack_trackStates, true, 4.5, 20e-3, 300, 0., 0., 0.)") |
| 55 | + |
| 56 | + .Define("n_RecoedPrimaryTracks", |
| 57 | + "ReconstructedParticle2Track::getTK_n(RecoedPrimaryTracks)") |
| 58 | + # the final primary vertex: |
| 59 | + .Define("PrimaryVertexObject", |
| 60 | + "VertexFitterSimple::VertexFitter_Tk(1, RecoedPrimaryTracks, true, 4.5, 20e-3, 300)") |
| 61 | + .Define("PrimaryVertex", |
| 62 | + "VertexingUtils::get_VertexData(PrimaryVertexObject)") |
| 63 | + |
| 64 | + # the secondary tracks |
| 65 | + .Define("SecondaryTracks", |
| 66 | + "VertexFitterSimple::get_NonPrimaryTracks(_EFlowTrack_trackStates, RecoedPrimaryTracks)") |
| 67 | + .Define("n_SecondaryTracks", |
| 68 | + "ReconstructedParticle2Track::getTK_n(SecondaryTracks)") |
| 69 | + |
| 70 | + # which of the tracks are primary according to the reco algprithm |
| 71 | + .Define("IsPrimary_based_on_reco", |
| 72 | + "VertexFitterSimple::IsPrimary_forTracks(_EFlowTrack_trackStates, RecoedPrimaryTracks)") |
63 | 73 |
|
64 | 74 | # jet clustering |
65 | | - .Define("RP_px", "ReconstructedParticle::get_px(ReconstructedParticles)") |
66 | | - .Define("RP_py", "ReconstructedParticle::get_py(ReconstructedParticles)") |
67 | | - .Define("RP_pz", "ReconstructedParticle::get_pz(ReconstructedParticles)") |
68 | | - .Define("RP_m", "ReconstructedParticle::get_mass(ReconstructedParticles)") |
| 75 | + .Define("RP_px", "ReconstructedParticle::get_px(ReconstructedParticles)") |
| 76 | + .Define("RP_py", "ReconstructedParticle::get_py(ReconstructedParticles)") |
| 77 | + .Define("RP_pz", "ReconstructedParticle::get_pz(ReconstructedParticles)") |
| 78 | + .Define("RP_m", "ReconstructedParticle::get_mass(ReconstructedParticles)") |
69 | 79 | # build psedo-jets with the Reconstructed final particles |
70 | | - .Define("pseudo_jets", "JetClusteringUtils::set_pseudoJets_xyzm(RP_px, RP_py, RP_pz, RP_m)") |
| 80 | + .Define("pseudo_jets", "JetClusteringUtils::set_pseudoJets_xyzm(RP_px, RP_py, RP_pz, RP_m)") |
71 | 81 | # run jet clustering with all reco particles. ee_kt_algorithm, exclusive clustering, exactly 2 jets, E-scheme |
72 | 82 | .Define("FCCAnalysesJets_ee_kt", "JetClustering::clustering_ee_kt(2, 2, 1, 0)(pseudo_jets)") |
73 | 83 | # get the jets out of the structure |
74 | 84 | .Define("jets_ee_kt", "JetClusteringUtils::get_pseudoJets(FCCAnalysesJets_ee_kt)") |
75 | 85 | # get the jet constituents out of the structure |
76 | 86 | .Define("jetconstituents", "JetClusteringUtils::get_constituents(FCCAnalysesJets_ee_kt)") |
77 | 87 |
|
78 | | - |
79 | 88 | # find V0s |
80 | 89 | #.Define("V0_evt", "VertexFinderLCFIPlus::get_V0s(SecondaryTracks, PrimaryVertexObject, true)") |
81 | | - .Define("V0", "VertexFinderLCFIPlus::get_V0s_jet(ReconstructedParticles, EFlowTrack_1, IsPrimary_based_on_reco, jets_ee_kt, jetconstituents, PrimaryVertexObject)") |
| 90 | + .Define("V0", |
| 91 | + "VertexFinderLCFIPlus::get_V0s_jet(ReconstructedParticles, _EFlowTrack_trackStates, IsPrimary_based_on_reco, jets_ee_kt, jetconstituents, PrimaryVertexObject)") |
82 | 92 | .Define("V0_jet", "VertexingUtils::get_svInJets(V0.vtx, V0.nSV_jet)") |
83 | | - # get pdg vector out |
| 93 | + # get pdg vector out |
84 | 94 | #.Define("V0_pdg", "VertexingUtils::get_pdg_V0(V0)") |
85 | 95 | .Define("V0_pdg", "VertexingUtils::get_pdg_V0(V0.pdgAbs, V0.nSV_jet)") |
86 | 96 | # get invariant mass vector out |
@@ -119,11 +129,11 @@ def output(): |
119 | 129 | # Ks -> pi+pi- & Lambda0->p+pi- |
120 | 130 | "K0spipi_indices", |
121 | 131 | "Lambda0ppi_indices", |
122 | | - |
| 132 | + |
123 | 133 | # primary vertex and primary tracks w/o any MC-matching : |
124 | 134 | "IsPrimary_based_on_reco", |
125 | 135 | "PrimaryVertex", |
126 | | - |
| 136 | + |
127 | 137 | # V0 object |
128 | 138 | "V0", |
129 | 139 | "V0_jet", |
|
0 commit comments