22 const auto& seed = path->front();
23 auto* seedRecoTrack = seed.getSeed();
24 auto* seedMCTrack = seedRecoTrack->getRelated<
RecoTrack>(
"MCRecoTracks");
28 seedMCParticle = seedMCTrack->getRelated<
MCParticle>();
32 seedRecoTrack = seedRecoTrack->getRelated<
RecoTrack>(
"EclSeedRecoTracks");
39 std::vector<MCParticle*> daughterMCParticles;
40 if (seedMCParticle->getNDaughters() > 0) {
41 daughterMCParticles = seedMCParticle->getDaughters();
43 while (daughterMCParticles.size() == 1) {
44 daughterMCParticles = daughterMCParticles.at(0)->getDaughters();
46 if (daughterMCParticles.size() > 1) {
47 daughters = daughterMCParticles.size();
51 while (seedMCParticle->getMother()) {
52 seedMCParticle = seedMCParticle->getMother();
58 mcTrackHits = seedMCTrack->getNumberOfCDCHits();
60 var<
named(
"mcTrackHits")>() = mcTrackHits;
62 var<
named(
"daughters")>() = daughters;
63 var<
named(
"PDG")>() = seedMCParticle->getPDG();
65 auto seedMom = seedMCParticle->getMomentum();
66 var<
named(
"seed_p_truth")>() = seedMom.R();
67 var<
named(
"seed_theta_truth")>() = seedMom.Theta() * 180. / M_PI;
68 var<
named(
"seed_pt_truth")>() = seedMom.Rho();
69 var<
named(
"seed_pz_truth")>() = seedMom.Z();
70 var<
named(
"seed_px_truth")>() = seedMom.X();
71 var<
named(
"seed_py_truth")>() = seedMom.Y();
A Class to store the Monte Carlo particle information.