 |
Belle II Software
release-05-02-19
|
11 #include <tracking/modules/trackingPerformanceEvaluation/EffPlotsModule.h>
13 #include <framework/datastore/StoreArray.h>
14 #include <framework/datastore/RelationVector.h>
16 #include <framework/geometry/BFieldManager.h>
18 #include <tracking/dataobjects/MCParticleInfo.h>
19 #include <tracking/dataobjects/RecoTrack.h>
20 #include <tracking/dataobjects/V0ValidationVertex.h>
22 #include <root/TObject.h>
24 #include <boost/foreach.hpp>
35 EffPlotsModule::EffPlotsModule() :
39 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.");
42 std::string(
"EffPlots_output.root"));
43 addParam(
"V0sName",
m_V0sName,
"Name of V0 collection.", std::string(
"V0ValidationVertexs"));
45 addParam(
"TrackColName", m_TrackColName,
46 "Belle2::Track collection name (input). Note that the V0s use "
47 "pointers indices into these arrays, so all hell may break loose "
48 "if you change this.", std::string(
""));
49 addParam(
"RecoTracksName", m_RecoTracksName,
"Name of RecoTrack collection.", std::string(
"RecoTracks"));
50 addParam(
"MCRecoTracksName", m_MCRecoTracksName,
"Name of MCRecoTrack collection.", std::string(
"MCRecoTracks"));
52 addParam(
"V0sType", m_V0sType,
"Type of V0 to perform plots. Default is Lambda0, alternatively Ks", std::string(
"Lambda0"));
53 addParam(
"AllHistograms", m_allHistograms,
"Create output for all histograms, not only efficiencies.",
bool(
false));
54 addParam(
"GeometricalAccettance", m_geometricalAccettance,
"Create output for geometrical accettance.",
bool(
false));
57 EffPlotsModule::~EffPlotsModule()
68 v0ValidationVertices.isRequired(
m_V0sName);
71 trackFitResults.isRequired();
91 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};
93 Double_t bins_theta[10 + 1];
94 Double_t width_theta = TMath::Pi() / 10;
95 for (
unsigned int bin = 0; bin < 10 + 1; bin++)
96 bins_theta[bin] = bin * width_theta;
98 Double_t bins_phi[14 + 1];
99 Double_t width_phi = 2 * TMath::Pi() / 14;
100 for (
unsigned int bin = 0; bin < 14 + 1; bin++)
101 bins_phi[bin] = - TMath::Pi() + bin * width_phi;
103 Double_t bins_costheta[20 + 1];
104 Double_t width_cosTheta = 2. / 20;
105 for (
unsigned int bin1 = 0; bin1 < 20 + 1; bin1++)
106 bins_costheta[bin1] = - 1 + bin1 * width_cosTheta;
119 25, bins_pt_new,
"p_{t} (GeV/c)",
120 10, bins_theta,
"#theta",
152 10, bins_theta,
"#theta",
155 10, bins_theta,
"#theta",
159 10, bins_theta,
"#theta_{mother}",
175 25, bins_pt_new,
"p_{t} (GeV/c)",
176 10, bins_theta,
"#theta",
209 10, bins_theta,
"#theta",
213 10, bins_theta,
"#theta",
217 10, bins_theta,
"#theta_{mother}",
232 25, bins_pt_new,
"p_{t} (GeV/c)",
233 10, bins_theta,
"#theta",
251 10, bins_theta,
"#theta",
255 10, bins_theta,
"#theta",
523 B2DEBUG(99,
"+++++ 1. loop on MCParticles");
524 BOOST_FOREACH(
MCParticle & mcParticle, mcParticles) {
534 std::vector< MCParticle* > MCPart_dau = mcParticle.
getDaughters();
536 if (abs(MCPart_dau[0]->getPDG()) == 211 && abs(MCPart_dau[1]->getPDG()) == 2212) {
539 }
else if (abs(MCPart_dau[0]->getPDG()) == 2212 && abs(MCPart_dau[1]->getPDG()) == 211) {
542 }
else B2INFO(
"Lambda daughters != pi & p");
549 std::vector< MCParticle* > MCPart_dau = mcParticle.
getDaughters();
551 if (MCPart_dau[0]->getPDG() == 211 && MCPart_dau[1]->getPDG() == -211) {
554 }
else if (MCPart_dau[0]->getPDG() == -211 && MCPart_dau[1]->getPDG() == 211) {
557 }
else B2INFO(
"Ks daughters != pi+ & pi-");
564 TVector3 MC_prodvtx = mcParticle.
getVertex();
566 TVector3 MC_FL = MC_vtx - MC_prodvtx;
568 float MC_transDist = sqrt(MC_vtx.X() * MC_vtx.X() + MC_vtx.Y() * MC_vtx.Y());
573 float MC_costheta = mcParticle.
getMomentum().CosTheta();
632 if (MC_transDist < 1.) {
639 if (MC_theta > (120 * TMath::Pi() / 180.)) {
645 }
else if (MC_theta < (30. * TMath::Pi() / 180.)) {
669 if (MCRecoTracks_MCdau0.
size() > 0) {
691 if (MC_transDist < 1.) {
705 if (MCRecoTracks_MCdau1.
size() > 0) {
722 if (MC_theta > (120 * TMath::Pi() / 180.))
724 else if (MC_theta < (30. * TMath::Pi() / 180.))
731 if (MCRecoTracks_MCdau1.
size() > 0) {
753 if (MC_transDist < 1.) {
774 if (Track_dau0ToMCParticle) {
797 if (MC_transDist < 1.)
800 if (MC_theta > (120 * TMath::Pi() / 180.)) {
803 }
else if (MC_theta < (30 * TMath::Pi() / 180.)) {
812 if (Track_dau1ToMCParticle) {
835 if (MC_transDist < 1.)
838 if (MC_theta > (120 * TMath::Pi() / 180.)) {
841 }
else if (MC_theta < (30 * TMath::Pi() / 180.)) {
853 if (nMatchedDau != 2)
856 int pdgCode = mcParticle.
getPDG();
857 B2DEBUG(99,
"MCParticle has PDG code " << pdgCode);
860 DataStore::getRelationsWithObj<V0ValidationVertex>(&mcParticle,
m_V0sName);
862 if (V0s_toMCParticle.
size() > 0) {
877 if (MC_theta > (120 * TMath::Pi() / 180.))
880 else if (MC_theta < (30 * TMath::Pi() / 180.))
894 double eff_dau0_noGA = track_dau0 / MC_dau0;
895 double effErr_dau0_noGA = sqrt(eff_dau0_noGA * (1 - eff_dau0_noGA)) / sqrt(MC_dau0);
896 double eff_dau0_withGA = track_dau0 / RecoTrack_dau0;
897 double effErr_dau0_withGA = sqrt(eff_dau0_withGA * (1 - eff_dau0_withGA)) / sqrt(RecoTrack_dau0);
902 double eff_dau1_noGA = track_dau1 / MC_dau1;
903 double effErr_dau1_noGA = sqrt(eff_dau1_noGA * (1 - eff_dau1_noGA)) / sqrt(MC_dau1);
904 double eff_dau1_withGA = track_dau1 / RecoTrack_dau1;
905 double effErr_dau1_withGA = sqrt(eff_dau1_withGA * (1 - eff_dau1_withGA)) / sqrt(RecoTrack_dau1);
910 double eff_Mother_noGA = track_Mother / MC_Mother;
911 double effErr_Mother_noGA = sqrt(eff_Mother_noGA * (1 - eff_Mother_noGA)) / sqrt(MC_Mother);
912 double eff_Mother_withGA = track_Mother / RecoTrack_Mother;
913 double effErr_Mother_withGA = sqrt(eff_Mother_withGA * (1 - eff_Mother_withGA)) / sqrt(RecoTrack_Mother);
919 B2INFO(
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
920 B2INFO(
"~ V0 Finding Performance Evaluation ~ SHORT SUMMARY ~");
922 B2INFO(
" + overall, normalized to MC particles (_noGeoAcc):");
924 B2INFO(
" efficiency dau0 = (" << eff_dau0_noGA * 100 <<
" +/- " << effErr_dau0_noGA * 100 <<
")% ");
925 B2INFO(
" efficiency dau1 = (" << eff_dau1_noGA * 100 <<
" +/- " << effErr_dau1_noGA * 100 <<
")% ");
926 B2INFO(
" efficiency Mother = (" << eff_Mother_noGA * 100 <<
" +/- " << effErr_Mother_noGA * 100 <<
")% ");
928 B2INFO(
" + overall, normalized to RecoTracks(_withGeoAcc):");
930 B2INFO(
" efficiency dau0 = (" << eff_dau0_withGA * 100 <<
" +/- " << effErr_dau0_withGA * 100 <<
")% ");
931 B2INFO(
" efficiency dau1 = (" << eff_dau1_withGA * 100 <<
" +/- " << effErr_dau1_withGA * 100 <<
")% ");
932 B2INFO(
" efficiency Mother = (" << eff_Mother_withGA * 100 <<
" +/- " << effErr_Mother_withGA * 100 <<
")% ");
933 B2INFO(
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
946 if (h_eff_dau0_d0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_d0");
950 if (h_eff_dau0_z0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_z0");
954 if (h_eff_dau0_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_RMother");
958 if (h_eff_dau0_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_thetaMother");
962 if (h_eff_dau0_phiMother_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_total");
966 if (h_eff_dau0_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_BW");
971 if (h_eff_dau0_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_barrel");
975 if (h_eff_dau0_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phiMother_FW");
979 if (h_eff_dau0_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_total");
983 if (h_eff_dau0_phi_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_BW");
987 if (h_eff_dau0_phi_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_barrel");
991 if (h_eff_dau0_phi_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau0_phi_FW");
995 if (h2_effMap_dau0_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_dau0_pVScostheta");
1000 if (h_eff_dau1_d0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_d0");
1004 if (h_eff_dau1_z0->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_z0");
1008 if (h_eff_dau1_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_RMother");
1012 if (h_eff_dau1_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_thetaMother");
1016 if (h_eff_dau1_phiMother_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_total");
1020 if (h_eff_dau1_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_BW");
1024 if (h_eff_dau1_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_barrel");
1028 if (h_eff_dau1_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phiMother_FW");
1032 if (h_eff_dau1_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_total");
1036 if (h_eff_dau1_phi_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_BW");
1040 if (h_eff_dau1_phi_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_barrel");
1044 if (h_eff_dau1_phi_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_dau1_phi_FW");
1048 if (h2_effMap_dau1_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_dau1_pVScostheta");
1053 if (h_eff_Mother_RMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_RMother");
1057 if (h_eff_Mother_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_theta");
1061 if (h_eff_Mother_phi_total->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phi_total");
1065 if (h_eff_Mother_phiMother_BW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_BW");
1069 if (h_eff_Mother_phiMother_barrel->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_barrel");
1073 if (h_eff_Mother_phiMother_FW->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_Mother_phiMother_FW");
1078 if (h2_effMap_Mother_pVScostheta->GetEntries() == 0) B2WARNING(
"Empty histogram h2_effMap_Mother_pVScostheta");
1081 TH1F* h_eff_V0Finder_RMother_withGeoAcc =
V0FinderEff(h_eff_dau0_RMother, h_eff_dau1_RMother, h_eff_Mother_RMother,
1083 if (h_eff_V0Finder_RMother_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_RMother_withGeoAcc");
1085 TH1F* h_eff_V0Finder_theta_withGeoAcc =
V0FinderEff(h_eff_dau0_thetaMother, h_eff_dau1_thetaMother, h_eff_Mother_theta,
1087 if (h_eff_V0Finder_theta_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_theta_withGeoAcc");
1089 TH1F* h_eff_V0Finder_phi_total_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_total, h_eff_dau1_phiMother_total,
1090 h_eff_Mother_phi_total,
"h_eff_V0Finder_phi_total_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder",
m_histoList_Efficiencies);
1091 if (h_eff_V0Finder_phi_total_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phi_total_withGeoAcc");
1093 TH1F* h_eff_V0Finder_phiMother_BW_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_BW, h_eff_dau1_phiMother_BW,
1094 h_eff_Mother_phiMother_BW,
"h_eff_V0Finder_phi_BW_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder BW",
1096 if (h_eff_V0Finder_phiMother_BW_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_BW_withGeoAcc");
1098 TH1F* h_eff_V0Finder_phiMother_barrel_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_barrel, h_eff_dau1_phiMother_barrel,
1099 h_eff_Mother_phiMother_barrel,
"h_eff_V0Finder_phi_barrel_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder barrel",
1101 if (h_eff_V0Finder_phiMother_barrel_withGeoAcc->GetEntries() == 0)
1102 B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_barrel_withGeoAcc");
1104 TH1F* h_eff_V0Finder_phiMother_FW_withGeoAcc =
V0FinderEff(h_eff_dau0_phiMother_FW, h_eff_dau1_phiMother_FW,
1105 h_eff_Mother_phiMother_FW,
"h_eff_V0Finder_phi_FW_withGeoAcc",
"efficiency VS #phi_{mother}, V0Finder FW",
1107 if (h_eff_V0Finder_phiMother_FW_withGeoAcc->GetEntries() == 0) B2WARNING(
"Empty histogram h_eff_V0Finder_phiMother_FW_withGeoAcc");
1117 "geometrical acceptance VS #theta_{dau_{0}}, dau_{0}",
m_histoList_GA);
1118 if (h_dau0_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_theta");
1121 "geometrical acceptance VS #phi_{dau_{0}}, dau_{0}",
m_histoList_GA);
1122 if (h_dau0_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_phi");
1125 "geometrical acceptance VS p_{T,dau_{0}}, dau_{0}",
m_histoList_GA);
1126 if (h_dau0_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_pt");
1129 "geometrical acceptance VS #theta_{mother}, dau_{0}",
m_histoList_GA);
1130 if (h_dau0_geoAcc_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_thetaMother");
1133 "h_dau0_geoAcc_phiMother",
"geometrical acceptance VS #phi_{mother}, dau_{0}",
m_histoList_GA);
1134 if (h_dau0_geoAcc_phiMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_phiMother");
1137 "geometrical acceptance VS #p_{T,mother}, dau_{0}",
m_histoList_GA);
1138 if (h_dau0_geoAcc_ptMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau0_geoAcc_ptMother");
1143 if (h_dau1_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_theta");
1147 if (h_dau1_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_phi");
1151 if (h_dau1_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_pt");
1155 if (h_dau1_geoAcc_thetaMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_thetaMother");
1158 "h_dau1_geoAcc_phiMother",
"geometrical acceptance VS #phi_{mother}, p",
m_histoList_GA);
1159 if (h_dau1_geoAcc_phiMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_phiMother");
1163 if (h_dau1_geoAcc_ptMother->GetEntries() == 0) B2WARNING(
"Empty histogram h_dau1_geoAcc_ptMother");
1167 "geometrical acceptance VS #theta_{mother}, mother",
m_histoList_GA);
1168 if (h_Mother_geoAcc_theta->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_theta");
1171 "geometrical acceptance VS #phi_{mother}, mother",
m_histoList_GA);
1172 if (h_Mother_geoAcc_phi->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_phi");
1175 "geometrical acceptance VS p_{T,mother}, mother",
m_histoList_GA);
1176 if (h_Mother_geoAcc_pt->GetEntries() == 0) B2WARNING(
"Empty histogram h_Mother_geoAcc_pt");
1180 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}",
m_histoList_GA);
1181 if (h2_dau0_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0_geoAcc2D");
1184 "geometrical acceptance p, p_{T,p} VS #theta_{p}",
m_histoList_GA);
1185 if (h2_dau1_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1_geoAcc2D");
1188 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1189 if (h2_Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_Mother_geoAcc2D");
1192 "geometrical acceptance dau_{0}, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1193 if (h2_dau0Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0Mother_geoAcc2D");
1196 "geometrical acceptance p, p_{T,mother} VS #theta_{mother}",
m_histoList_GA);
1197 if (h2_dau1Mother_geoAcc2D->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1Mother_geoAcc2D");
1201 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}, BP",
m_histoList_GA);
1202 if (h2_dau0_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau0_geoAcc2D_BP");
1205 "geometrical acceptance p, p_{T,p} VS #theta_{p}, BP",
m_histoList_GA);
1206 if (h2_dau1_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_dau1_geoAcc2D_BP");
1209 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}, BP",
m_histoList_GA);
1210 if (h2_Mother_geoAcc2D_BP->GetEntries() == 0) B2WARNING(
"Empty histogram h2_Mother_geoAcc2D_BP");
1231 while ((obj = nextHMC()))
1232 obj->Write(
"", BIT(2), 0);
1236 while ((obj = nextHTC()))
1237 obj->Write(
"", BIT(2), 0);
1241 while ((obj = nextHT()))
1242 obj->Write(
"", BIT(2), 0);
1246 while ((obj = nextHCheck()))
1247 obj->Write(
"", BIT(2), 0);
1252 while ((obj = nextHEff()))
1253 obj->Write(
"", BIT(2), 0);
1258 while ((obj = nextHGA()))
1259 obj->Write(
"", BIT(2), 0);
1270 bool isK_S0 =
false;
1271 if (abs(the_mcParticle.
getPDG()) == 310)
1274 bool twoChargedProngs =
false;
1279 twoChargedProngs =
true;
1281 return (isK_S0 && twoChargedProngs);
1288 bool isLambda =
false;
1289 if (abs(the_mcParticle.
getPDG()) == 3122)
1292 bool twoChargedProngs =
false;
1299 twoChargedProngs =
true;
1301 return (isLambda && twoChargedProngs);
1308 int nMatchedDau = 0;
1310 std::vector< MCParticle* > MCPart_dau = the_mcParticle.
getDaughters();
1313 bool second =
false;
1315 RelationVector<Track> Tracks_fromMCParticle_0 = DataStore::getRelationsWithObj<Track>(MCPart_dau[0]);
1316 if (Tracks_fromMCParticle_0.
size() > 0)
1319 RelationVector<Track> Tracks_fromMCParticle_1 = DataStore::getRelationsWithObj<Track>(MCPart_dau[1]);
1320 if (Tracks_fromMCParticle_1.
size() > 0)
size_t size() const
Get number of relations.
TH1F * m_h1_MC_dau1_phi_BW
histogram of MCParticle daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_RMother
histogram of RecoTrack mother's RMother
TH1F * m_h1_track_dau0_phiMother_FW
histogram of Track daughter 0's mother's phi (forward region)
TH2F * m_h2_track_dau1_pVScostheta
histogram of Track daughter 1's p vs cos(theta)
This struct is used by the TrackingPerformanceEvaluation Module to save information of reconstructed ...
TH1F * m_h1_RecoTrack_Mother_phi_barrel
histogram of RecoTrack mother's phi (barrel region)
TList * m_histoList_RecoTracks
list of histograms for RecoTracks
TH1F * m_h1_MC_dau0_d0
list of histograms filled per MCParticle found in the event
TH1F * m_h1_MC_dau1_pz
histogram of MCParticle daughter 1's pz
TH1F * m_h1_V0_RMother
histogram of V0 mother's RMother
TH1F * m_h1_MC_dau1_phi_FW
histogram of MCParticle daughter 1's phi (forward region)
TH1F * m_h1_MC_Mother_pt
histogram of MCParticle mother's pt
TH1F * m_h1_track_dau0_phi_BW
histogram of Track daughter 0's phi (backward region)
void setDescription(const std::string &description)
Sets the description of the module.
static void getField(const double *pos, double *field)
return the magnetic field at a given position.
TH1F * m_h1_MC_dau0_PDG
histogram of MCParticle daughter 0's PDG code
TH1F * m_h1_track_dau0_z0
histogram of Track daughter 0's z0
TH1F * m_h1_MC_dau0_theta
histogram of MCParticle daughter 0's theta
TH1F * m_h1_RecoTrack_Mother_phi_BW
histogram of RecoTrack mother's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_phi_barrel
histogram of RecoTrack daughter 1's phi (barrel region)
TH2F * m_h2_RecoTrack_Mother_2D
histogram of RecoTrack mother's pt vs theta
TH1F * m_h1_track_dau1_phiMother_FW
histogram of Track daughter 1's mother's phi (forward region)
TH1F * m_h1_track_dau0_costheta
histogram of Track daughter 0's cos(theta)
TH1F * m_h1_track_dau0_phi_FW
histogram of Track daughter 0's phi (forward region)
TH1F * m_h1_RecoTrack_dau1_theta
histogram of RecoTrack daughter 1's theta
MCParticle * mc_dau1
daughter 1 of a decayed MCParticle
TH1F * m_h1_RecoTrack_Mother_phi_FW
histogram of RecoTrack mother's phi (forward region)
TH1F * m_h1_MC_dau1_p
histogram of MCParticle daughter 1's p
TH2F * m_h2_track_dau0_2DMother
histogram of Track daughter 0's mother's pt vs theta
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
TH1F * m_h1_MC_dau1_phiMother_total
histogram of MCParticle daughter 1's mother's phi
TH1F * m_h1_MC_dau1_PDG
histogram of MCParticle daughter 1's PDG code
TH1F * m_h1_MC_dau0_phi
histogram of MCParticle daughter 0's phi
TH1F * m_h1_RecoTrack_dau0_d0
list of histograms filled per RecoTracks found in the event
TH1F * m_h1_track_dau1_ptMother
histogram of Track daughter 1's mother's pt
TH1F * m_h1_V0_costheta
histogram of V0 mother's cos(theta)
TH2F * m_h2_MC_dau1_2DMother
histogram of MCParticle daughter 1's mother's pt vs theta
TH2F * m_h2_RecoTrack_dau0_pVScostheta
histogram of RecoTrack daughter 0's p vs cos(theta)
TH1F * m_h1_V0_phi_FW
histogram of V0 mother's phi (forward region)
TH1F * m_h1_MC_Mother_phi
histogram of MCParticle mother's phi
TH1F * m_h1_RecoTrack_dau0_ptMother
histogram of RecoTrack daughter 0's mother's pt
TH1F * m_h1_track_dau1_p
histogram of Track daughter 1's p
TH2F * m_h2_RecoTrack_dau0_2DMother
histogram of RecoTrack daughter 0's mother's pt vs theta
TH1F * m_h1_MC_dau0_p
histogram of MCParticle daughter 0's p
TH1F * m_h1_RecoTrack_dau0_phi_BW
histogram of RecoTrack daughter 0's phi (backward region)
TH1F * m_h1_MC_dau1_RMother
histogram of MCParticle daughter 1's RMother
double getP()
Getter for magnitut of momentum.
double getPtheta()
Getter for theta of momentum vector.
TH1F * m_h1_track_dau1_costheta
histogram of Track daughter 1's cos(theta)
TH1F * m_h1_RecoTrack_dau1_phi
histogram of RecoTrack daughter 1's phi
TH1F * m_h1_track_dau1_RMother
histogram of Track daughter 1's RMother
TH1F * m_h1_track_dau0_phiMother_BW
histogram of Track daughter 0's mother's phi (backward region)
TH1F * m_h1_track_dau0_thetaMother
histogram of Track daughter 0's mother's theta
TH1F * m_h1_MC_dau0_phi_BW
histogram of MCParticle daughter 0's phi (backward region)
TH1F * m_h1_MC_dau1_phiMother_barrel
histogram of MCParticle daughter 1's mother's phi (barrel region)
TH1F * m_h1_track_dau1_Mother_cosAngle
histogram of Track daughter 1's and mother's cos(opening-angle)
bool m_geometricalAccettance
true to create output for the geometrical acceptance
TH2F * m_h2_track_dau1_2D_BP
histogram of Track daughter 1's pt vs theta (beam pipe)
bool isK_Short(const MCParticle &the_mcParticle)
determine if the MCParticle is a K-short
TH1F * m_h1_track_dau1_pz
histogram of Track daughter 1's pz
TH1F * m_h1_MC_dau0_Mother_cosAngle
histogram of MCParticle daughter 0's and mother's cos(opening-angle)
T * getRelated(const std::string &name="", const std::string &namedRelation="") const
Get the object to or from which this object has a relation.
TH1F * m_h1_MC_Mother_RMother
histogram of MCParticle mother's RMother
TH1F * m_h1_MC_Mother_pz
histogram of MCParticle mother's pz
std::string m_MCRecoTracksName
name of the MCRecoTracks dataobjects collection
TH1F * m_h1_RecoTrack_dau1_Mother_cosAngle
histogram of RecoTrack daughter 1's and mother's cos(opening-angle)
TH1F * m_h1_V0_pz
histogram of V0 mother's pz
TH1F * m_h1_track_dau1_phiMother_barrel
histogram of Track daughter 1's mother's phi (barrel region)
TH1F * m_h1_track_dau0_RMother
histogram of Track daughter 0's RMother
TList * m_histoList_GA
list of histograms of geometric acceptance
TH3F * m_h3_RecoTrack_dau1
histogram of RecoTrack daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau0_phi_FW
histogram of RecoTrack daughter 0's phi (forward region)
TH2F * m_h2_track_dau1_2DMother
histogram of Track daughter 1's mother's pt vs theta
TH1F * m_h1_V0_pt
histogram of V0 mother's pt
TH2F * m_h2_MC_dau1_2D
histogram of MCParticle daughter 1's pt vs theta
std::string m_MCParticlesName
user-defined parameters
TList * m_histoList_check
list of histograms of MCParticle mother and daughters
TH1F * m_h1_track_dau0_d0
list of histograms filled per Tracks/V0 found in the event
TH1F * m_h1_track_dau0_phiMother_barrel
histogram of Track daughter 0's mother's phi (barrel region)
TH2F * m_h2_RecoTrack_dau0_2D_BP
histogram of RecoTrack daughter 0's pt vs theta (beam pipe)
TH2F * m_h2_track_dau1_2D
histogram of Track daughter 1's pt vs theta
TH1F * m_h1_V0_phi_BW
histogram of V0 mother's phi (backward region)
TH1F * m_h1_track_dau0_theta
histogram of Track daughter 0's theta
double getZ0()
Getter for Z0.
TH1F * m_h1_track_dau1_phiMother_total
histogram of Track daughter 1's mother's phi
TH3F * m_h3_MC_Mother
histogram of MCParticle mother's pt vs theta vs phi
TH1F * m_h1_MC_dau1_phiMother_FW
histogram of MCParticle daughter 1's mother's phi (forward region)
TH2F * m_h2_RecoTrack_dau1_2D
histogram of RecoTrack daughter 1's pt vs theta
TH1F * m_h1_MC_dau1_costheta
histogram of MCParticle daughter 1's cos(theta)
TH1F * m_h1_RecoTrack_dau0_z0
histogram of RecoTrack daughter 0's z0
TH1F * m_h1_RecoTrack_dau0_theta
histogram of RecoTrack daughter 0's theta
TH1F * m_h1_RecoTrack_dau0_phi_barrel
histogram of RecoTrack daughter 0's phi (barrel region)
TH2F * m_h2_V0_Mother_2D_BP
histogram of V0 mother's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau0_phiMother_total
histogram of MCParticle daughter 0's mother's phi
TVector3 getDecayVertex() const
Return decay vertex.
TH1F * m_h1_MC_dau0_phiMother_FW
histogram of MCParticle daughter 0's mother's phi (forward region)
TH1F * m_h1_RecoTrack_dau1_phi_FW
histogram of RecoTrack daughter 1's phi (forward region)
TH1F * m_h1_RecoTrack_dau1_RMother
histogram of RecoTrack daughter 1's RMother
TH1F * m_h1_MC_Mother_phi_barrel
histogram of MCParticle mother's phi (barrel region)
TH1F * m_h1_track_dau0_ptMother
histogram of Track daughter 0's mother's pt
TH1F * m_h1_RecoTrack_Mother_pt
histogram of RecoTrack mother's pt
std::string m_TFRColName
name of the TFR dataobjects collection
static const double T
[tesla]
TH1F * m_h1_RecoTrack_dau1_phiMother_total
histogram of RecoTrack daughter 1's mother's phi
TH2F * m_h2_RecoTrack_Mother_pVScostheta
histogram of RecoTrack mother's p vs cos(theta)
TH2F * m_h2_MC_Mother_2D
histogram of MCParticle mother's pt vs theta
TH1F * m_h1_MC_dau1_z0
histogram of MCParticle daughter 1's z0
double getPt()
Getter for transverse momentum.
TH1F * m_h1_MC_dau0_ptMother
histogram of MCParticle daughter 0's mother's pt
Class for type safe access to objects that are referred to in relations.
TH1F * m_h1_MC_dau0_pt
histogram of MCParticle daughter 0's pt
TH3F * m_h3_RecoTrack_Mother
histogram of RecoTrack mother's pt vs theta vs phi
TH1F * m_h1_MC_dau0_phiMother_barrel
histogram of MCParticle daughter 0's mother's phi (barrel region)
TH2F * m_h2_MC_Mother_pVScostheta
histogram of MCParticle mother's p vs cos(theta)
TH1F * m_h1_MC_Mother_PDG
histogram of MCParticle mother's PDG code
TH3F * m_h3_track_dau1
histogram of Track daughter 1's pt vs theta vs phi
void initialize() override
Initialize the Module.
TH1F * m_h1_RecoTrack_dau0_phiMother_barrel
histogram of RecoTrack daughter 0's mother's phi (barrel region)
TH3F * m_h3_V0
histogram of V0 mother's pt vs theta vs phi
MCParticle * mc_dau0
daughter 0 of a decayed MCParticle
TH1F * m_h1_RecoTrack_dau0_phiMother_FW
histogram of RecoTrack daughter 0's mother's phi (forward region)
Abstract base class for different kinds of events.
TVector3 getVertex() const
Return production vertex position, shorthand for getProductionVertex().
TH1F * m_h1_track_dau0_p
histogram of Track daughter 0's p
double getPphi()
Getter for phi of momentum vector.
TH3F * m_h3_RecoTrack_dau0
histogram of RecoTrack daughter 0's pt vs theta vs phi
TH1F * m_h1_MC_dau1_pt
histogram of MCParticle daughter 1's pt
TH2F * m_h2_track_dau0_pVScostheta
histogram of Track daughter 0's p vs cos(theta)
TH1F * m_h1_MC_dau0_phiMother_BW
histogram of MCParticle daughter 0's mother's phi (backward region)
TH1F * m_h1_MC_dau1_phi
histogram of MCParticle daughter 1's phi
bool isLambda0(const MCParticle &the_mcParticle)
determine if the MCParticle is a Lambda0
int getPDG() const
Return PDG code of particle.
TH1F * m_h1_track_dau0_Mother_cosAngle
histogram of Track daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau1_pz
histogram of RecoTrack daughter 1's pz
TH1F * m_h1_V0_phi
histogram of V0 mother's phi
TList * m_histoList_Efficiencies
list of histograms of efficiencies
TH1F * m_h1_RecoTrack_Mother_phi
histogram of RecoTrack mother's phi
TH1F * m_h1_MC_dau0_pz
histogram of MCParticle daughter 0's pz
TH1F * m_h1_MC_Mother_p
histogram of MCParticle mother's p
TH1F * m_h1_MC_dau1_d0
histogram of MCParticle daughter 1's d0
TH1F * m_h1_MC_Mother_theta
histogram of MCParticle mother's theta
void beginRun() override
Called when entering a new run.
TH1F * m_h1_MC_dau0_phi_FW
histogram of MCParticle daughter 0's phi (forward region)
TH1F * m_h1_RecoTrack_dau0_phiMother_total
histogram of RecoTrack daughter 0's mother's phi
TH1F * m_h1_RecoTrack_dau0_pz
histogram of RecoTrack daughter 0's pz
TH1F * m_h1_MC_dau0_phi_barrel
histogram of MCParticle daughter 0's phi (barrel region)
TH1F * m_h1_track_dau1_phi_FW
histogram of Track daughter 1's phi (forward region)
TH1F * m_h1_track_dau1_phiMother_BW
histogram of Track daughter 1's mother's phi (backward region)
TH1F * m_h1_MC_dau1_theta
histogram of MCParticle daughter 1's theta
TH2F * m_h2_MC_Mother_2D_BP
histogram of MCParticle mother's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau0_phiMother_BW
histogram of RecoTrack daughter 0's mother's phi (backward region)
TH1F * m_h1_MC_dau0_z0
histogram of MCParticle daughter 0's z0
TH1F * m_h1_MC_Mother_phi_BW
histogram of MCParticle mother's phi (backward region)
TH2F * m_h2_MC_dau1_2D_BP
histogram of MCParticle daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau1_z0
histogram of RecoTrack daughter 1's z0
TH1F * m_h1_track_dau1_pt
histogram of Track daughter 1's pt
void event() override
This method is the core of the module.
TH2F * m_h2_RecoTrack_dau1_2D_BP
histogram of RecoTrack daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_V0_theta
histogram of V0 mother's theta
TH1F * m_h1_MC_Mother_phi_FW
histogram of MCParticle mother's phi (forward region)
TH1F * m_h1_MC_dau1_phi_barrel
histogram of MCParticle daughter 1's phi (barrel region)
TH1F * m_h1_track_dau1_phi_BW
histogram of Track daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_phiMother_BW
histogram of RecoTrack daughter 1's mother's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_costheta
histogram of RecoTrack mother's cos(theta)
TH1F * m_h1_MC_dau1_thetaMother
histogram of MCParticle daughter 1's mother's theta
std::vector< Belle2::MCParticle * > getDaughters() const
Get vector of all daughter particles, empty vector if none.
TH1F * m_h1_track_dau0_phi
histogram of Track daughter 0's phi
TH2F * m_h2_track_dau0_2D
histogram of Track daughter 0's pt vs theta
TH1F * m_h1_RecoTrack_dau1_phi_BW
histogram of RecoTrack daughter 1's phi (backward region)
TH1F * m_h1_V0_p
histogram of V0 mother's p
TH2F * m_h2_MC_dau1_pVScostheta
histogram of MCParticle daughter 1's p vs cos(theta)
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
TH1F * m_h1_RecoTrack_dau1_d0
histogram of RecoTrack daughter 1's d0
TH1F * m_h1_MC_dau1_phiMother_BW
histogram of MCParticle daughter 1's mother's phi (backward region)
TH2F * m_h2_RecoTrack_dau0_2D
histogram of RecoTrack daughter 0's pt vs theta
TH1F * m_h1_RecoTrack_Mother_p
histogram of RecoTrack mother's p
TList * m_histoList_MCParticles
list of histograms for MCParticles
TH2F * m_h2_MC_dau0_2D
histogram of MCParticle daughter 0's pt vs theta
TH1F * m_h1_track_dau0_phi_barrel
histogram of Track daughter 0's phi (barrel region)
TH1F * m_h1_MC_dau0_RMother
histogram of MCParticle daughter 0's RMother
void terminate() override
This method is called at the end of the event processing.
TH1F * m_h1_RecoTrack_dau1_phiMother_FW
histogram of RecoTrack daughter 1's mother's phi (forward region)
TVector3 getMomentum() const
Return momentum.
TH1F * m_h1_track_dau1_theta
histogram of Track daughter 1's theta
TH1F * m_h1_RecoTrack_dau1_costheta
histogram of RecoTrack daughter 1's cos(theta)
TH1F * m_h1_RecoTrack_dau0_costheta
histogram of RecoTrack daughter 0's cos(theta)
TH1F * m_h1_track_dau1_thetaMother
histogram of Track daughter 1's mother's theta
TH1F * m_h1_RecoTrack_dau0_p
histogram of RecoTrack daughter 0's p
TH1F * m_h1_RecoTrack_dau0_RMother
histogram of RecoTrack daughter 0's RMother
TH1F * m_h1_RecoTrack_dau1_phiMother_barrel
histogram of RecoTrack daughter 1's mother's phi (barrel region)
std::string m_TrackColName
name of the Tracks dataobjects collection
TList * m_histoList_Tracks
list of histograms for Tracks
TH2F * m_h2_RecoTrack_dau1_2DMother
histogram of RecoTrack daughter 1's mother's pt vs theta
TH1F * m_h1_RecoTrack_Mother_pz
histogram of RecoTrack mother's pz
Class that bundles various TrackFitResults.
A Class to store the Monte Carlo particle information.
bool m_allHistograms
true to create all histograms
TH1F * m_h1_track_dau0_pt
histogram of Track daughter 0's pt
TH2F * m_h2_RecoTrack_dau1_pVScostheta
histogram of RecoTrack daughter 1's p vs cos(theta)
int nMatchedDaughters(const MCParticle &the_mcParticle)
get the number of matched daughters of the MCParticle
TH1F * m_h1_track_dau1_phi
histogram of Track daughter 1's phi
TH2F * m_h2_track_dau0_2D_BP
histogram of Track daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau0_phi
histogram of RecoTrack daughter 0's phi
TH1F * m_h1_MC_dau0_costheta
histogram of MCParticle daughter 0's cos(theta)
double getPz()
Getter for z component of momentum.
double getD0()
Getter for D0.
TH2F * m_h2_RecoTrack_Mother_2D_BP
histogram of RecoTrack mother's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau1_p
histogram of RecoTrack daughter 1's p
TH1F * m_h1_MC_dau1_ptMother
histogram of MCParticle daughter 1's mother's pt
TH1F * m_h1_track_dau1_phi_barrel
histogram of Track daughter 1's phi (barrel region)
std::string m_V0sName
name of the V0s dataobjects collection
void endRun() override
This method is called if the current run ends.
TH2F * m_h2_MC_dau0_2DMother
histogram of MCParticle daughter 0's mother's pt vs theta
TH1F * m_h1_track_dau0_pz
histogram of Track daughter 0's pz
TH1F * m_h1_RecoTrack_Mother_theta
histogram of RecoTrack mother's theta
TH1F * m_h1_RecoTrack_dau0_thetaMother
histogram of RecoTrack daughter 0's mother's theta
TH1F * m_h1_RecoTrack_dau1_pt
histogram of RecoTrack daughter 1's pt
TH1F * m_h1_MC_Mother_costheta
histogram of MCParticle mother's cos(theta)
TH1F * m_h1_V0_phi_barrel
histogram of V0 mother's phi (barrel region)
TH1F * m_h1_MC_dau1_Mother_cosAngle
histogram of MCParticle daughter 1's and mother's cos(opening-angle)
TH3F * m_h3_MC_dau0
histogram of MCParticle daughter 0's pt vs theta vs phi
TH1F * m_h1_MC_dau0_thetaMother
histogram of MCParticle daughter 0's mother's theta
TH2F * m_h2_MC_dau0_2D_BP
histogram of MCParticle daughter 0's pt vs theta (beam pipe)
TH2F * m_h2_V0_Mother_2D
histogram of V0 mother's pt vs theta
TH3F * m_h3_track_dau0
histogram of Track daughter 0's pt vs theta vs phi
std::string m_V0sType
type (as a string) of the selected V0
TH2F * m_h2_V0_Mother_pVScostheta
histogram of V0 mother's p vs cos(theta)
TH1F * m_h1_RecoTrack_dau1_thetaMother
histogram of RecoTrack daughter 1's mother's theta
TH3F * m_h3_MC_dau1
histogram of MCParticle daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau1_ptMother
histogram of RecoTrack daughter 1's mother's pt
TH1F * m_h1_track_dau1_d0
histogram of Track daughter 1's d0
TH1F * m_h1_RecoTrack_dau0_Mother_cosAngle
histogram of RecoTrack daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau0_pt
histogram of RecoTrack daughter 0's pt
TH2F * m_h2_MC_dau0_pVScostheta
histogram of MCParticle daughter 0's p vs cos(theta)
TH1F * m_h1_track_dau1_z0
histogram of Track daughter 1's z0
TH1F * m_h1_track_dau0_phiMother_total
histogram of Track daughter 0's mother's phi