4 void FillSimHistograms(
const evt::sim::VertexTrack& simTrack,
5 const std::vector<int>& vParticleETypes,
6 const std::vector<double>& vParticleMass,
7 const TVector3& boost_cms,
8 std::vector<TH2D*> vHist2D,
9 std::vector<double>& vParticleCounters,
10 const double& weight = 1)
12 const double px = simTrack.GetMomentum().GetX();
13 const double py = simTrack.GetMomentum().GetY();
14 const double pz = simTrack.GetMomentum().GetZ();
15 const double p = simTrack.GetMomentum().GetMag();
17 for (
int ip = 0; ip < int(vParticleETypes.size()); ip++)
19 if (simTrack.GetParticleId() == vParticleETypes[ip])
22 tv.SetPxPyPzE(px, py, pz, sqrt(p*p + vParticleMass[ip]*vParticleMass[ip]));
26 vHist2D[ip]->Fill(tv.Rapidity(), tv.Pt(), weight);
30 if (simTrack.GetParticleId() == ParticleConst::eDeuteron)
32 if (tv.Rapidity() < -0.4 && tv.Rapidity() > -1.2 && tv.Pt() < 0.8)
33 vParticleCounters[ip] = vParticleCounters[ip] + weight;
35 else if (simTrack.GetParticleId() == ParticleConst::eProton)
37 if(tv.Rapidity() < 0.2 && tv.Rapidity() > -0.6 && tv.Pt() < 1.0)
38 vParticleCounters[ip] = vParticleCounters[ip] + weight;
41 vParticleCounters[ip] = vParticleCounters[ip] + weight;
53 void FillRecHistograms(
const evt::sim::VertexTrack& simTrack,
54 const evt::rec::VertexTrack& recTrack,
55 const std::vector<int>& vParticleETypes,
56 const std::vector<double>& vParticleMass,
57 const TVector3& boost_cms,
58 std::vector<TH2D*> vHist2D,
59 std::vector<double>& vParticleCounters,
60 const double& weight = 1)
62 const double px = recTrack.GetMomentum().GetX();
63 const double py = recTrack.GetMomentum().GetY();
64 const double pz = recTrack.GetMomentum().GetZ();
65 const double p = recTrack.GetMomentum().GetMag();
67 for (
int ip = 0; ip < int(vParticleETypes.size()); ip++)
69 if (simTrack.GetParticleId() == vParticleETypes[ip])
72 tv.SetPxPyPzE(px, py, pz, sqrt(p*p + vParticleMass[ip]*vParticleMass[ip]));
76 vHist2D[ip]->Fill(tv.Rapidity(), tv.Pt(), weight);
80 if (simTrack.GetParticleId() == ParticleConst::eDeuteron)
82 if (tv.Rapidity() < -0.4 && tv.Rapidity() > -1.2 && tv.Pt() < 0.8)
83 vParticleCounters[ip] = vParticleCounters[ip] + weight;
86 else if (simTrack.GetParticleId() == ParticleConst::eProton)
88 if(tv.Rapidity() < 0.2 && tv.Rapidity() > -0.6 && tv.Pt() < 1.0)
89 vParticleCounters[ip] = vParticleCounters[ip] + weight;
93 vParticleCounters[ip] = vParticleCounters[ip] + weight;