9#include <tracking/modules/trackingPerformanceEvaluation/EffPlotsModule.h>
11#include <framework/datastore/RelationVector.h>
13#include <framework/geometry/BFieldManager.h>
15#include <framework/gearbox/Const.h>
17#include <tracking/dataobjects/MCParticleInfo.h>
18#include <tracking/dataobjects/RecoTrack.h>
19#include <tracking/dataobjects/V0ValidationVertex.h>
21#include <root/TObject.h>
37 setDescription(
"This module makes some plots related to V0 and saves them into a root file. For the efficiency plots: _noGeoAcc -> normalized to MCParticles; _withGeoAcc -> normalized to RecoTracks.");
40 std::string(
"EffPlots_output.root"));
41 addParam(
"V0sName",
m_V0sName,
"Name of V0 collection.", std::string(
"V0ValidationVertexs"));
44 "Belle2::Track collection name (input). Note that the V0s use "
45 "pointers indices into these arrays, so all hell may break loose "
46 "if you change this.", std::string(
""));
50 addParam(
"V0sType",
m_V0sType,
"Type of V0 to perform plots. Default is Lambda0, alternatively Ks", std::string(
"Lambda0"));
51 addParam(
"AllHistograms",
m_allHistograms,
"Create output for all histograms, not only efficiencies.",
bool(
false));
87 Double_t bins_pt_new[25 + 1] = {0., 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3., 3.2, 3.4};
89 Double_t bins_theta[10 + 1];
90 Double_t width_theta = TMath::Pi() / 10;
91 for (
unsigned int bin = 0; bin < 10 + 1; bin++)
92 bins_theta[bin] = bin * width_theta;
94 Double_t bins_phi[14 + 1];
95 Double_t width_phi = 2 * TMath::Pi() / 14;
96 for (
unsigned int bin = 0; bin < 14 + 1; bin++)
97 bins_phi[bin] = - TMath::Pi() + bin * width_phi;
99 Double_t bins_costheta[20 + 1];
100 Double_t width_cosTheta = 2. / 20;
101 for (
unsigned int bin1 = 0; bin1 < 20 + 1; bin1++)
102 bins_costheta[bin1] = - 1 + bin1 * width_cosTheta;
115 25, bins_pt_new,
"p_{t} (GeV/c)",
116 10, bins_theta,
"#theta",
148 10, bins_theta,
"#theta",
151 10, bins_theta,
"#theta",
155 10, bins_theta,
"#theta_{mother}",
171 25, bins_pt_new,
"p_{t} (GeV/c)",
172 10, bins_theta,
"#theta",
205 10, bins_theta,
"#theta",
209 10, bins_theta,
"#theta",
213 10, bins_theta,
"#theta_{mother}",
228 25, bins_pt_new,
"p_{t} (GeV/c)",
229 10, bins_theta,
"#theta",
247 10, bins_theta,
"#theta",
251 10, bins_theta,
"#theta",
517 B2DEBUG(29,
"+++++ 1. loop on MCParticles");
528 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
530 if (abs(MCPart_dau[0]->getPDG()) ==
Const::pion.getPDGCode() && abs(MCPart_dau[1]->getPDG()) ==
Const::proton.getPDGCode()) {
533 }
else if (abs(MCPart_dau[0]->getPDG()) ==
Const::proton.getPDGCode() && abs(MCPart_dau[1]->getPDG()) ==
Const::pion.getPDGCode()) {
536 }
else B2INFO(
"Lambda daughters != pi & p");
543 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
545 if (MCPart_dau[0]->getPDG() ==
Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() == -
Const::pion.getPDGCode()) {
548 }
else if (MCPart_dau[0]->getPDG() == -
Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() ==
Const::pion.getPDGCode()) {
551 }
else B2INFO(
"Ks daughters != pi+ & pi-");
558 const ROOT::Math::XYZVector& MC_vtx = mcParticle.getDecayVertex();
560 float MC_transDist =
sqrt(MC_vtx.X() * MC_vtx.X() + MC_vtx.Y() * MC_vtx.Y());
561 float MC_pt = mcParticle.getMomentum().Rho();
562 float MC_p = mcParticle.getMomentum().R();
563 float MC_phi = mcParticle.getMomentum().Phi();
564 float MC_theta = mcParticle.getMomentum().Theta();
565 float MC_costheta = cos(mcParticle.getMomentum().Theta());
624 if (MC_transDist < 1.) {
631 if (MC_theta > (120 * TMath::Pi() / 180.)) {
637 }
else if (MC_theta < (30. * TMath::Pi() / 180.)) {
661 if (MCRecoTracks_MCdau0.
size() > 0) {
674 mcParticle.getMomentum().R() /
685 if (MC_transDist < 1.) {
700 if (MCRecoTracks_MCdau1.
size() > 0) {
717 if (MC_theta > (120 * TMath::Pi() / 180.))
719 else if (MC_theta < (30. * TMath::Pi() / 180.))
726 if (MCRecoTracks_MCdau1.
size() > 0) {
739 mcParticle.getMomentum().R() /
750 if (MC_transDist < 1.) {
772 if (Track_dau0ToMCParticle) {
795 if (MC_transDist < 1.)
798 if (MC_theta > (120 * TMath::Pi() / 180.)) {
801 }
else if (MC_theta < (30 * TMath::Pi() / 180.)) {
810 if (Track_dau1ToMCParticle) {
833 if (MC_transDist < 1.)
836 if (MC_theta > (120 * TMath::Pi() / 180.)) {
839 }
else if (MC_theta < (30 * TMath::Pi() / 180.)) {
851 if (nMatchedDau != 2)
854 int pdgCode = mcParticle.getPDG();
855 B2DEBUG(29,
"MCParticle has PDG code " << pdgCode);
858 DataStore::getRelationsWithObj<V0ValidationVertex>(&mcParticle,
m_V0sName);
860 if (V0s_toMCParticle.
size() > 0) {
875 if (MC_theta > (120 * TMath::Pi() / 180.))
878 else if (MC_theta < (30 * TMath::Pi() / 180.))
892 double eff_dau0_noGA = track_dau0 / MC_dau0;
893 double effErr_dau0_noGA =
sqrt(eff_dau0_noGA * (1 - eff_dau0_noGA)) /
sqrt(MC_dau0);
894 double eff_dau0_withGA = track_dau0 / RecoTrack_dau0;
895 double effErr_dau0_withGA =
sqrt(eff_dau0_withGA * (1 - eff_dau0_withGA)) /
sqrt(RecoTrack_dau0);
900 double eff_dau1_noGA = track_dau1 / MC_dau1;
901 double effErr_dau1_noGA =
sqrt(eff_dau1_noGA * (1 - eff_dau1_noGA)) /
sqrt(MC_dau1);
902 double eff_dau1_withGA = track_dau1 / RecoTrack_dau1;
903 double effErr_dau1_withGA =
sqrt(eff_dau1_withGA * (1 - eff_dau1_withGA)) /
sqrt(RecoTrack_dau1);
908 double eff_Mother_noGA = track_Mother / MC_Mother;
909 double effErr_Mother_noGA =
sqrt(eff_Mother_noGA * (1 - eff_Mother_noGA)) /
sqrt(MC_Mother);
910 double eff_Mother_withGA = track_Mother / RecoTrack_Mother;
911 double effErr_Mother_withGA =
sqrt(eff_Mother_withGA * (1 - eff_Mother_withGA)) /
sqrt(RecoTrack_Mother);
917 B2INFO(
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
918 B2INFO(
"~ V0 Finding Performance Evaluation ~ SHORT SUMMARY ~");
920 B2INFO(
" + overall, normalized to MC particles (_noGeoAcc):");
922 B2INFO(
" efficiency dau0 = (" << eff_dau0_noGA * 100 <<
" +/- " << effErr_dau0_noGA * 100 <<
")% ");
923 B2INFO(
" efficiency dau1 = (" << eff_dau1_noGA * 100 <<
" +/- " << effErr_dau1_noGA * 100 <<
")% ");
924 B2INFO(
" efficiency Mother = (" << eff_Mother_noGA * 100 <<
" +/- " << effErr_Mother_noGA * 100 <<
")% ");
926 B2INFO(
" + overall, normalized to RecoTracks(_withGeoAcc):");
928 B2INFO(
" efficiency dau0 = (" << eff_dau0_withGA * 100 <<
" +/- " << effErr_dau0_withGA * 100 <<
")% ");
929 B2INFO(
" efficiency dau1 = (" << eff_dau1_withGA * 100 <<
" +/- " << effErr_dau1_withGA * 100 <<
")% ");
930 B2INFO(
" efficiency Mother = (" << eff_Mother_withGA * 100 <<
" +/- " << effErr_Mother_withGA * 100 <<
")% ");
931 B2INFO(
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
944 if (h_eff_dau0_d0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_d0");
948 if (h_eff_dau0_z0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_z0");
952 if (h_eff_dau0_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_RMother");
956 if (h_eff_dau0_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_thetaMother");
960 if (h_eff_dau0_phiMother_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_total");
964 if (h_eff_dau0_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_BW");
969 if (h_eff_dau0_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_barrel");
973 if (h_eff_dau0_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_FW");
977 if (h_eff_dau0_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_total");
981 if (h_eff_dau0_phi_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_BW");
985 if (h_eff_dau0_phi_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_barrel");
989 if (h_eff_dau0_phi_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_FW");
993 if (h2_effMap_dau0_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_dau0_pVScostheta");
998 if (h_eff_dau1_d0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_d0");
1002 if (h_eff_dau1_z0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_z0");
1006 if (h_eff_dau1_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_RMother");
1010 if (h_eff_dau1_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_thetaMother");
1014 if (h_eff_dau1_phiMother_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_total");
1018 if (h_eff_dau1_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_BW");
1022 if (h_eff_dau1_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_barrel");
1026 if (h_eff_dau1_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_FW");
1030 if (h_eff_dau1_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_total");
1034 if (h_eff_dau1_phi_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_BW");
1038 if (h_eff_dau1_phi_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_barrel");
1042 if (h_eff_dau1_phi_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_FW");
1046 if (h2_effMap_dau1_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_dau1_pVScostheta");
1051 if (h_eff_Mother_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_RMother");
1055 if (h_eff_Mother_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_theta");
1059 if (h_eff_Mother_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phi_total");
1063 if (h_eff_Mother_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_BW");
1067 if (h_eff_Mother_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_barrel");
1071 if (h_eff_Mother_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_FW");
1076 if (h2_effMap_Mother_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_Mother_pVScostheta");
1079 TH1F* h_eff_V0Finder_RMother_withGeoAcc =
V0FinderEff(h_eff_dau0_RMother, h_eff_dau1_RMother, h_eff_Mother_RMother,
1081 if (h_eff_V0Finder_RMother_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_RMother_withGeoAcc");
1083 TH1F* h_eff_V0Finder_theta_withGeoAcc =
V0FinderEff(h_eff_dau0_thetaMother, h_eff_dau1_thetaMother, h_eff_Mother_theta,
1085 if (h_eff_V0Finder_theta_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_theta_withGeoAcc");
1087 TH1F* h_eff_V0Finder_phi_total_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_total, h_eff_dau1_phiMother_total,
1088 h_eff_Mother_phi_total,
"h_eff_V0Finder_phi_total_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder",
m_histoList_Efficiencies);
1089 if (h_eff_V0Finder_phi_total_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phi_total_withGeoAcc");
1091 TH1F* h_eff_V0Finder_phiMother_BW_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_BW, h_eff_dau1_phiMother_BW,
1092 h_eff_Mother_phiMother_BW,
"h_eff_V0Finder_phi_BW_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder BW",
1094 if (h_eff_V0Finder_phiMother_BW_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_BW_withGeoAcc");
1096 TH1F* h_eff_V0Finder_phiMother_barrel_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_barrel, h_eff_dau1_phiMother_barrel,
1097 h_eff_Mother_phiMother_barrel,
"h_eff_V0Finder_phi_barrel_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder barrel",
1099 if (h_eff_V0Finder_phiMother_barrel_withGeoAcc->GetEntries() == 0)
1100 B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_barrel_withGeoAcc");
1102 TH1F* h_eff_V0Finder_phiMother_FW_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_FW, h_eff_dau1_phiMother_FW,
1103 h_eff_Mother_phiMother_FW,
"h_eff_V0Finder_phi_FW_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder FW",
1105 if (h_eff_V0Finder_phiMother_FW_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_FW_withGeoAcc");
1115 "geometrical acceptance VS #theta_{dau_{0}}, dau_{0}",
m_histoList_GA);
1116 if (h_dau0_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_theta");
1119 "geometrical acceptance VS #phi_{dau_{0}}, dau_{0}",
m_histoList_GA);
1120 if (h_dau0_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_phi");
1123 "geometrical acceptance VS p_{T,dau_{0}}, dau_{0}",
m_histoList_GA);
1124 if (h_dau0_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_pt");
1127 "geometrical acceptance VS #theta_{mother}, dau_{0}",
m_histoList_GA);
1128 if (h_dau0_geoAcc_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_thetaMother");
1131 "h_dau0_geoAcc_phiMother",
"geometrical acceptance VS #phi_{mother}, dau_{0}",
m_histoList_GA);
1132 if (h_dau0_geoAcc_phiMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_phiMother");
1135 "geometrical acceptance VS #p_{T,mother}, dau_{0}",
m_histoList_GA);
1136 if (h_dau0_geoAcc_ptMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_ptMother");
1141 if (h_dau1_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_theta");
1145 if (h_dau1_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_phi");
1149 if (h_dau1_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_pt");
1153 if (h_dau1_geoAcc_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_thetaMother");
1156 "h_dau1_geoAcc_phiMother",
"geometrical acceptance VS #phi_{mother}, p",
m_histoList_GA);
1157 if (h_dau1_geoAcc_phiMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_phiMother");
1161 if (h_dau1_geoAcc_ptMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_ptMother");
1165 "geometrical acceptance VS #theta_{mother}, mother",
m_histoList_GA);
1166 if (h_Mother_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_theta");
1169 "geometrical acceptance VS #phi_{mother}, mother",
m_histoList_GA);
1170 if (h_Mother_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_phi");
1173 "geometrical acceptance VS p_{T,mother}, mother",
m_histoList_GA);
1174 if (h_Mother_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_pt");
1178 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}",
m_histoList_GA);
1179 if (h2_dau0_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0_geoAcc2D");
1182 "geometrical acceptance p, p_{T,p} VS #theta_{p}",
m_histoList_GA);
1183 if (h2_dau1_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1_geoAcc2D");
1186 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1187 if (h2_Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_Mother_geoAcc2D");
1190 "geometrical acceptance dau_{0}, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1191 if (h2_dau0Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0Mother_geoAcc2D");
1194 "geometrical acceptance p, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1195 if (h2_dau1Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1Mother_geoAcc2D");
1199 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}, BP",
m_histoList_GA);
1200 if (h2_dau0_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0_geoAcc2D_BP");
1203 "geometrical acceptance p, p_{T,p} VS #theta_{p}, BP",
m_histoList_GA);
1204 if (h2_dau1_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1_geoAcc2D_BP");
1207 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}, BP",
m_histoList_GA);
1208 if (h2_Mother_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_Mother_geoAcc2D_BP");
1229 while ((obj = nextHMC()))
1230 obj->Write(
"", BIT(2), 0);
1234 while ((obj = nextHTC()))
1235 obj->Write(
"", BIT(2), 0);
1239 while ((obj = nextHT()))
1240 obj->Write(
"", BIT(2), 0);
1244 while ((obj = nextHCheck()))
1245 obj->Write(
"", BIT(2), 0);
1250 while ((obj = nextHEff()))
1251 obj->Write(
"", BIT(2), 0);
1256 while ((obj = nextHGA()))
1257 obj->Write(
"", BIT(2), 0);
1268 bool isK_S0 =
false;
1272 bool twoChargedProngs =
false;
1279 twoChargedProngs =
true;
1281 return (isK_S0 && twoChargedProngs);
1288 bool isLambda =
false;
1292 bool twoChargedProngs =
false;
1303 twoChargedProngs =
true;
1305 return (isLambda && twoChargedProngs);
1312 int nMatchedDau = 0;
1314 std::vector< MCParticle* > MCPart_dau = the_mcParticle.
getDaughters();
1317 bool second =
false;
1319 RelationVector<Track> Tracks_fromMCParticle_0 = DataStore::getRelationsWithObj<Track>(MCPart_dau[0]);
1320 if (Tracks_fromMCParticle_0.
size() > 0)
1323 RelationVector<Track> Tracks_fromMCParticle_1 = DataStore::getRelationsWithObj<Track>(MCPart_dau[1]);
1324 if (Tracks_fromMCParticle_1.
size() > 0)
int getPDGCode() const
PDG code.
static const ParticleType Lambda
Lambda particle.
static const ChargedStable pion
charged pion particle
static const ChargedStable proton
proton particle
static const ParticleType Kshort
K^0_S particle.
TH1F * m_h1_RecoTrack_dau0_phiMother_FW
histogram of RecoTrack daughter 0's mother's phi (forward region)
TH1F * m_h1_MC_dau1_Mother_cosAngle
histogram of MCParticle daughter 1's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau1_costheta
histogram of RecoTrack daughter 1's cos(theta)
TH1F * m_h1_V0_pz
histogram of V0 mother's pz
bool m_geometricalAccettance
true to create output for the geometrical acceptance
TH1F * m_h1_V0_phi
histogram of V0 mother's phi
TH3F * m_h3_track_dau1
histogram of Track daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau0_pz
histogram of RecoTrack daughter 0's pz
TH1F * m_h1_RecoTrack_dau0_phi_BW
histogram of RecoTrack daughter 0's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_theta
histogram of RecoTrack mother's theta
TH1F * m_h1_track_dau0_phi_barrel
histogram of Track daughter 0's phi (barrel region)
TH1F * m_h1_RecoTrack_dau1_p
histogram of RecoTrack daughter 1's p
std::string m_TFRColName
name of the TFR dataobjects collection
TH1F * m_h1_track_dau1_phi_barrel
histogram of Track daughter 1's phi (barrel region)
TH2F * m_h2_RecoTrack_Mother_pVScostheta
histogram of RecoTrack mother's p vs cos(theta)
TH1F * m_h1_track_dau0_ptMother
histogram of Track daughter 0's mother's pt
bool isK_Short(const MCParticle &the_mcParticle)
determine if the MCParticle is a K-short
TH1F * m_h1_MC_dau0_PDG
histogram of MCParticle daughter 0's PDG code
TH1F * m_h1_track_dau1_z0
histogram of Track daughter 1's z0
TH1F * m_h1_track_dau1_pt
histogram of Track daughter 1's pt
TH1F * m_h1_track_dau1_ptMother
histogram of Track daughter 1's mother's pt
TH1F * m_h1_MC_dau1_PDG
histogram of MCParticle daughter 1's PDG code
TH1F * m_h1_RecoTrack_dau0_phiMother_BW
histogram of RecoTrack daughter 0's mother's phi (backward region)
TH1F * m_h1_V0_pt
histogram of V0 mother's pt
TH1F * m_h1_track_dau0_RMother
histogram of Track daughter 0's RMother
TH2F * m_h2_V0_Mother_2D
histogram of V0 mother's pt vs theta
TH1F * m_h1_track_dau1_pz
histogram of Track daughter 1's pz
TH1F * m_h1_track_dau0_phiMother_barrel
histogram of Track daughter 0's mother's phi (barrel region)
TH1F * m_h1_track_dau0_costheta
histogram of Track daughter 0's cos(theta)
TH2F * m_h2_track_dau1_2DMother
histogram of Track daughter 1's mother's pt vs theta
TH1F * m_h1_MC_dau0_z0
histogram of MCParticle daughter 0's z0
TH1F * m_h1_RecoTrack_dau1_z0
histogram of RecoTrack daughter 1's z0
TH1F * m_h1_MC_dau1_ptMother
histogram of MCParticle daughter 1's mother's pt
void initialize() override
Initializer.
TH1F * m_h1_RecoTrack_dau1_phiMother_total
histogram of RecoTrack daughter 1's mother's phi
TH2F * m_h2_MC_dau1_2D_BP
histogram of MCParticle daughter 1's pt vs theta (beam pipe)
TH2F * m_h2_RecoTrack_Mother_2D_BP
histogram of RecoTrack mother's pt vs theta (beam pipe)
TH2F * m_h2_MC_dau1_pVScostheta
histogram of MCParticle daughter 1's p vs cos(theta)
TH1F * m_h1_V0_phi_barrel
histogram of V0 mother's phi (barrel region)
TH3F * m_h3_RecoTrack_Mother
histogram of RecoTrack mother's pt vs theta vs phi
TH1F * m_h1_track_dau0_pz
histogram of Track daughter 0's pz
TH1F * m_h1_MC_dau1_phi_BW
histogram of MCParticle daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_Mother_cosAngle
histogram of RecoTrack daughter 1's and mother's cos(opening-angle)
TH2F * m_h2_track_dau0_2D
histogram of Track daughter 0's pt vs theta
TH2F * m_h2_MC_Mother_pVScostheta
histogram of MCParticle mother's p vs cos(theta)
TH1F * m_h1_V0_phi_FW
histogram of V0 mother's phi (forward region)
TH1F * m_h1_track_dau0_phiMother_total
histogram of Track daughter 0's mother's phi
TH1F * m_h1_track_dau1_phi
histogram of Track daughter 1's phi
TH1F * m_h1_V0_RMother
histogram of V0 mother's RMother
TH1F * m_h1_track_dau0_theta
histogram of Track daughter 0's theta
TH1F * m_h1_MC_dau0_thetaMother
histogram of MCParticle daughter 0's mother's theta
TH1F * m_h1_MC_Mother_pt
histogram of MCParticle mother's pt
void event() override
This method is called for each event.
TH1F * m_h1_RecoTrack_dau1_phi
histogram of RecoTrack daughter 1's phi
TH2F * m_h2_V0_Mother_2D_BP
histogram of V0 mother's pt vs theta (beam pipe)
TH3F * m_h3_RecoTrack_dau1
histogram of RecoTrack daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau1_phi_FW
histogram of RecoTrack daughter 1's phi (forward region)
TH1F * m_h1_RecoTrack_dau0_d0
list of histograms filled per RecoTracks found in the event
TH1F * m_h1_MC_Mother_phi
histogram of MCParticle mother's phi
TH1F * m_h1_V0_costheta
histogram of V0 mother's cos(theta)
TH1F * m_h1_MC_dau1_RMother
histogram of MCParticle daughter 1's RMother
TH1F * m_h1_track_dau1_Mother_cosAngle
histogram of Track daughter 1's and mother's cos(opening-angle)
TH1F * m_h1_MC_Mother_phi_FW
histogram of MCParticle mother's phi (forward region)
TH2F * m_h2_RecoTrack_dau1_pVScostheta
histogram of RecoTrack daughter 1's p vs cos(theta)
TH1F * m_h1_MC_dau0_phi
histogram of MCParticle daughter 0's phi
bool m_allHistograms
true to create all histograms
void endRun() override
This method is called if the current run ends.
TH2F * m_h2_track_dau0_pVScostheta
histogram of Track daughter 0's p vs cos(theta)
TH2F * m_h2_RecoTrack_dau0_2D_BP
histogram of RecoTrack daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau1_phi_BW
histogram of RecoTrack daughter 1's phi (backward region)
TH1F * m_h1_MC_dau1_thetaMother
histogram of MCParticle daughter 1's mother's theta
TH1F * m_h1_RecoTrack_dau0_phiMother_total
histogram of RecoTrack daughter 0's mother's phi
TH1F * m_h1_RecoTrack_Mother_phi_barrel
histogram of RecoTrack mother's phi (barrel region)
TH1F * m_h1_MC_dau0_pt
histogram of MCParticle daughter 0's pt
TH1F * m_h1_RecoTrack_dau0_ptMother
histogram of RecoTrack daughter 0's mother's pt
TH1F * m_h1_RecoTrack_dau0_phi_FW
histogram of RecoTrack daughter 0's phi (forward region)
void terminate() override
This method is called at the end of the event processing.
TH1F * m_h1_MC_dau0_costheta
histogram of MCParticle daughter 0's cos(theta)
TList * m_histoList_check
list of histograms of MCParticle mother and daughters
TH1F * m_h1_MC_dau1_theta
histogram of MCParticle daughter 1's theta
TH1F * m_h1_track_dau1_p
histogram of Track daughter 1's p
TH1F * m_h1_MC_Mother_PDG
histogram of MCParticle mother's PDG code
TH1F * m_h1_MC_dau0_Mother_cosAngle
histogram of MCParticle daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau0_theta
histogram of RecoTrack daughter 0's theta
std::string m_TrackColName
name of the Tracks dataobjects collection
TH3F * m_h3_MC_dau0
histogram of MCParticle daughter 0's pt vs theta vs phi
TH1F * m_h1_track_dau0_pt
histogram of Track daughter 0's pt
TH2F * m_h2_MC_Mother_2D_BP
histogram of MCParticle mother's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_p
histogram of MCParticle daughter 1's p
TH1F * m_h1_track_dau0_Mother_cosAngle
histogram of Track daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_track_dau0_z0
histogram of Track daughter 0's z0
TH1F * m_h1_MC_dau0_RMother
histogram of MCParticle daughter 0's RMother
TH1F * m_h1_V0_phi_BW
histogram of V0 mother's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_pz
histogram of RecoTrack daughter 1's pz
TList * m_histoList_Efficiencies
list of histograms of efficiencies
TH3F * m_h3_V0
histogram of V0 mother's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau1_ptMother
histogram of RecoTrack daughter 1's mother's pt
TH1F * m_h1_MC_dau1_pt
histogram of MCParticle daughter 1's pt
TH1F * m_h1_track_dau0_p
histogram of Track daughter 0's p
TH2F * m_h2_RecoTrack_Mother_2D
histogram of RecoTrack mother's pt vs theta
int nMatchedDaughters(const MCParticle &the_mcParticle)
get the number of matched daughters of the MCParticle
std::string m_V0sType
type (as a string) of the selected V0
TH1F * m_h1_MC_Mother_p
histogram of MCParticle mother's p
TH2F * m_h2_MC_dau1_2D
histogram of MCParticle daughter 1's pt vs theta
TH3F * m_h3_MC_dau1
histogram of MCParticle daughter 1's pt vs theta vs phi
TH2F * m_h2_track_dau1_pVScostheta
histogram of Track daughter 1's p vs cos(theta)
TH1F * m_h1_RecoTrack_Mother_pz
histogram of RecoTrack mother's pz
TH1F * m_h1_MC_Mother_phi_BW
histogram of MCParticle mother's phi (backward region)
TH1F * m_h1_V0_p
histogram of V0 mother's p
TH1F * m_h1_RecoTrack_dau0_thetaMother
histogram of RecoTrack daughter 0's mother's theta
std::string m_V0sName
name of the V0s dataobjects collection
TList * m_histoList_GA
list of histograms of geometric acceptance
TH1F * m_h1_MC_dau0_phi_BW
histogram of MCParticle daughter 0's phi (backward region)
TH1F * m_h1_RecoTrack_dau0_RMother
histogram of RecoTrack daughter 0's RMother
TH2F * m_h2_track_dau1_2D
histogram of Track daughter 1's pt vs theta
TH1F * m_h1_RecoTrack_Mother_phi_FW
histogram of RecoTrack mother's phi (forward region)
void beginRun() override
Called when entering a new run.
TH1F * m_h1_RecoTrack_Mother_costheta
histogram of RecoTrack mother's cos(theta)
TH1F * m_h1_RecoTrack_dau0_z0
histogram of RecoTrack daughter 0's z0
TH1F * m_h1_RecoTrack_Mother_RMother
histogram of RecoTrack mother's RMother
TH2F * m_h2_track_dau0_2D_BP
histogram of Track daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau0_theta
histogram of MCParticle daughter 0's theta
TH1F * m_h1_MC_dau1_phiMother_FW
histogram of MCParticle daughter 1's mother's phi (forward region)
TH2F * m_h2_RecoTrack_dau0_2DMother
histogram of RecoTrack daughter 0's mother's pt vs theta
TH1F * m_h1_RecoTrack_dau1_phi_barrel
histogram of RecoTrack daughter 1's phi (barrel region)
TH1F * m_h1_RecoTrack_dau1_theta
histogram of RecoTrack daughter 1's theta
TH2F * m_h2_RecoTrack_dau1_2D
histogram of RecoTrack daughter 1's pt vs theta
TH3F * m_h3_RecoTrack_dau0
histogram of RecoTrack daughter 0's pt vs theta vs phi
TH2F * m_h2_RecoTrack_dau0_2D
histogram of RecoTrack daughter 0's pt vs theta
MCParticle * m_MCDaughter0
daughter 0 of a decayed MCParticle
TH1F * m_h1_MC_dau0_phiMother_barrel
histogram of MCParticle daughter 0's mother's phi (barrel region)
std::string m_RecoTracksName
name of the RecoTracks dataobjects collection
TH1F * m_h1_MC_dau0_ptMother
histogram of MCParticle daughter 0's mother's pt
TH1F * m_h1_track_dau0_d0
list of histograms filled per Tracks/V0 found in the event
TH1F * m_h1_RecoTrack_dau0_phiMother_barrel
histogram of RecoTrack daughter 0's mother's phi (barrel region)
TH1F * m_h1_track_dau1_costheta
histogram of Track daughter 1's cos(theta)
TH2F * m_h2_RecoTrack_dau1_2D_BP
histogram of RecoTrack daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_phiMother_BW
histogram of MCParticle daughter 1's mother's phi (backward region)
TList * m_histoList_MCParticles
list of histograms for MCParticles
TH1F * m_h1_MC_dau1_d0
histogram of MCParticle daughter 1's d0
TH1F * m_h1_MC_dau1_phi_FW
histogram of MCParticle daughter 1's phi (forward region)
TH1F * m_h1_MC_dau1_phiMother_total
histogram of MCParticle daughter 1's mother's phi
TH2F * m_h2_MC_dau0_2DMother
histogram of MCParticle daughter 0's mother's pt vs theta
TH1F * m_h1_MC_dau0_phi_FW
histogram of MCParticle daughter 0's phi (forward region)
EffPlotsModule()
Constructor.
std::string m_MCParticlesName
user-defined parameters
TH1F * m_h1_track_dau0_phi_BW
histogram of Track daughter 0's phi (backward region)
TH1F * m_h1_MC_dau0_phiMother_BW
histogram of MCParticle daughter 0's mother's phi (backward region)
TH2F * m_h2_track_dau0_2DMother
histogram of Track daughter 0's mother's pt vs theta
TH1F * m_h1_MC_dau0_pz
histogram of MCParticle daughter 0's pz
TH1F * m_h1_track_dau0_phiMother_FW
histogram of Track daughter 0's mother's phi (forward region)
TH1F * m_h1_MC_Mother_phi_barrel
histogram of MCParticle mother's phi (barrel region)
bool isLambda0(const MCParticle &the_mcParticle)
determine if the MCParticle is a Lambda0
TH1F * m_h1_MC_dau1_costheta
histogram of MCParticle daughter 1's cos(theta)
TH2F * m_h2_RecoTrack_dau1_2DMother
histogram of RecoTrack daughter 1's mother's pt vs theta
TH1F * m_h1_track_dau1_theta
histogram of Track daughter 1's theta
TH3F * m_h3_MC_Mother
histogram of MCParticle mother's pt vs theta vs phi
TH1F * m_h1_MC_dau1_phi_barrel
histogram of MCParticle daughter 1's phi (barrel region)
TH1F * m_h1_RecoTrack_Mother_pt
histogram of RecoTrack mother's pt
TH1F * m_h1_RecoTrack_dau1_phiMother_FW
histogram of RecoTrack daughter 1's mother's phi (forward region)
TH3F * m_h3_track_dau0
histogram of Track daughter 0's pt vs theta vs phi
TH1F * m_h1_track_dau1_phi_FW
histogram of Track daughter 1's phi (forward region)
TH1F * m_h1_RecoTrack_dau1_phiMother_BW
histogram of RecoTrack daughter 1's mother's phi (backward region)
TH2F * m_h2_MC_dau0_pVScostheta
histogram of MCParticle daughter 0's p vs cos(theta)
TH1F * m_h1_RecoTrack_dau0_phi
histogram of RecoTrack daughter 0's phi
TH1F * m_h1_RecoTrack_dau0_costheta
histogram of RecoTrack daughter 0's cos(theta)
TH2F * m_h2_MC_dau0_2D
histogram of MCParticle daughter 0's pt vs theta
TH1F * m_h1_MC_dau0_p
histogram of MCParticle daughter 0's p
TH1F * m_h1_RecoTrack_dau1_d0
histogram of RecoTrack daughter 1's d0
TH2F * m_h2_MC_dau1_2DMother
histogram of MCParticle daughter 1's mother's pt vs theta
TH1F * m_h1_RecoTrack_dau1_thetaMother
histogram of RecoTrack daughter 1's mother's theta
TH1F * m_h1_MC_dau0_phiMother_FW
histogram of MCParticle daughter 0's mother's phi (forward region)
TH2F * m_h2_V0_Mother_pVScostheta
histogram of V0 mother's p vs cos(theta)
TH1F * m_h1_MC_Mother_RMother
histogram of MCParticle mother's RMother
TH1F * m_h1_track_dau1_phiMother_FW
histogram of Track daughter 1's mother's phi (forward region)
TH1F * m_h1_RecoTrack_Mother_phi_BW
histogram of RecoTrack mother's phi (backward region)
TH1F * m_h1_MC_Mother_pz
histogram of MCParticle mother's pz
TH1F * m_h1_track_dau0_thetaMother
histogram of Track daughter 0's mother's theta
TH1F * m_h1_MC_dau1_phiMother_barrel
histogram of MCParticle daughter 1's mother's phi (barrel region)
TH1F * m_h1_MC_dau1_z0
histogram of MCParticle daughter 1's z0
TH1F * m_h1_V0_theta
histogram of V0 mother's theta
TH1F * m_h1_RecoTrack_dau1_RMother
histogram of RecoTrack daughter 1's RMother
TH1F * m_h1_track_dau1_RMother
histogram of Track daughter 1's RMother
TList * m_histoList_RecoTracks
list of histograms for RecoTracks
TH1F * m_h1_MC_dau0_phiMother_total
histogram of MCParticle daughter 0's mother's phi
TH1F * m_h1_MC_Mother_costheta
histogram of MCParticle mother's cos(theta)
TH1F * m_h1_RecoTrack_Mother_phi
histogram of RecoTrack mother's phi
TH1F * m_h1_track_dau0_phi
histogram of Track daughter 0's phi
TH1F * m_h1_RecoTrack_dau1_pt
histogram of RecoTrack daughter 1's pt
TH1F * m_h1_track_dau1_phiMother_total
histogram of Track daughter 1's mother's phi
TH1F * m_h1_RecoTrack_dau0_p
histogram of RecoTrack daughter 0's p
TH1F * m_h1_RecoTrack_dau0_Mother_cosAngle
histogram of RecoTrack daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_track_dau0_phiMother_BW
histogram of Track daughter 0's mother's phi (backward region)
TH1F * m_h1_MC_dau0_d0
list of histograms filled per MCParticle found in the event
std::string m_MCRecoTracksName
name of the MCRecoTracks dataobjects collection
StoreArray< MCParticle > m_MCParticles
MCParticle StoreArray.
TH1F * m_h1_RecoTrack_dau0_pt
histogram of RecoTrack daughter 0's pt
~EffPlotsModule()
Destructor.
TH2F * m_h2_MC_dau0_2D_BP
histogram of MCParticle daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_track_dau1_phiMother_barrel
histogram of Track daughter 1's mother's phi (barrel region)
TH1F * m_h1_RecoTrack_dau0_phi_barrel
histogram of RecoTrack daughter 0's phi (barrel region)
TH1F * m_h1_MC_Mother_theta
histogram of MCParticle mother's theta
TH1F * m_h1_track_dau1_phiMother_BW
histogram of Track daughter 1's mother's phi (backward region)
TH2F * m_h2_RecoTrack_dau0_pVScostheta
histogram of RecoTrack daughter 0's p vs cos(theta)
MCParticle * m_MCDaughter1
daughter 1 of a decayed MCParticle
TList * m_histoList_Tracks
list of histograms for Tracks
TH1F * m_h1_RecoTrack_dau1_phiMother_barrel
histogram of RecoTrack daughter 1's mother's phi (barrel region)
TH2F * m_h2_track_dau1_2D_BP
histogram of Track daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_phi
histogram of MCParticle daughter 1's phi
TH2F * m_h2_MC_Mother_2D
histogram of MCParticle mother's pt vs theta
TH1F * m_h1_track_dau1_d0
histogram of Track daughter 1's d0
TH1F * m_h1_track_dau0_phi_FW
histogram of Track daughter 0's phi (forward region)
TH1F * m_h1_MC_dau0_phi_barrel
histogram of MCParticle daughter 0's phi (barrel region)
TH1F * m_h1_MC_dau1_pz
histogram of MCParticle daughter 1's pz
TH1F * m_h1_track_dau1_phi_BW
histogram of Track daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_p
histogram of RecoTrack mother's p
TH1F * m_h1_track_dau1_thetaMother
histogram of Track daughter 1's mother's theta
This struct is used by the TrackingPerformanceEvaluation Module to save information of reconstructed ...
double getPt()
Getter for transverse momentum.
double getPtheta()
Getter for theta of momentum vector.
double getZ0()
Getter for Z0.
double getPz()
Getter for z component of momentum.
double getPphi()
Getter for phi of momentum vector.
double getD0()
Getter for D0.
double getP()
Getter for magnitut of momentum.
A Class to store the Monte Carlo particle information.
std::vector< Belle2::MCParticle * > getDaughters() const
Get vector of all daughter particles, empty vector if none.
int getPDG() const
Return PDG code of particle.
ROOT::Math::XYZVector getMomentum() const
Return momentum.
void setDescription(const std::string &description)
Sets the description of the module.
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.
T * getRelated(const std::string &name="", const std::string &namedRelation="") const
Get the object to or from which this object has a relation.
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.
Accessor to arrays stored in the data store.
Class that bundles various TrackFitResults.
static const double T
[tesla]
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
static void getField(const double *pos, double *field)
return the magnetic field at a given position.
double sqrt(double a)
sqrt for double
Abstract base class for different kinds of events.