Belle II Software development
TauDecayModeModule.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <framework/core/Module.h>
12#include <mdst/dataobjects/MCParticle.h>
13#include <framework/datastore/StoreArray.h>
14#include <framework/datastore/StoreObjPtr.h>
15#include <framework/dataobjects/EventMetaData.h>
16#include <string>
17#include <analysis/dataobjects/TauPairDecay.h>
18namespace Belle2 {
28 class TauDecayModeModule : public Module {
29
30 public:
31
36
38 virtual void initialize() override;
39
41 virtual void event() override;
42
43 protected:
44
45 std::string m_printmode;
47 private:
48
51
59 std::map<std::string, int> mode_decay_minus;
61 std::map<std::string, int> mode_decay_plus;
65 std::string m_tauplusdecaymode;
66
68 Int_t m_mmode;
70 Int_t m_pmode;
71
73 Int_t m_mprong;
75 Int_t m_pprong;
76
78 double m_megstar;
79
81 double m_pegstar;
82
84 bool tauPair;
94 std::string m_file_minus;
96 std::string m_file_plus;
97
99 static constexpr int finalStatePDGs[5] = { 11, 13, 211, 321, 2212 };
100
102 static constexpr int Neutrinos[3] = { 12, 14, 16 };
103
105 static constexpr int OrderedList[46] = {
106 16, -16, 14, -14, 12, -12, // neutrinos
107 11, -11, 13, -13, -211, 211, -321, 321, -2212, 2212, // charged final state particles
108 111, 310, 130, 221, 223, 331, 333, //neutral mesons
109 -213, 213, 113, //rho
110 -323, 323, 313, -313, //Kstar
111 -20213, 20213, //a1
112 -9000211, 9000211, 9000111, -10211, 10211, 10111, //a0
113 -10213, 10213, //b1
114 20223, 9010221, //f1,f0
115 3122, -3122, //lambda
116 94144,//alpha
117 22//gamma
118 };
119
124
129
130 //
131 std::vector<int> vec_nut;
132 std::vector<int> vec_anut;
133 std::vector<int> vec_numu;
134 std::vector<int> vec_anumu;
135 std::vector<int> vec_nue;
136 std::vector<int> vec_anue;
137 std::vector<int> vec_em;
138 std::vector<int> vec_ep;
139 std::vector<int> vec_mum;
140 std::vector<int> vec_mup;
141 std::vector<int> vec_pim;
142 std::vector<int> vec_pip;
143 std::vector<int> vec_km;
144 std::vector<int> vec_kp;
145 std::vector<int> vec_apro;
146 std::vector<int> vec_pro;
147 std::vector<int> vec_pi0;
148 std::vector<int> vec_k0s;
149 std::vector<int> vec_k0l;
150 std::vector<int> vec_eta;
151 std::vector<int> vec_omega;
152 std::vector<int> vec_etapr;
153 std::vector<int> vec_phi;
154 std::vector<int> vec_rhom;
155 std::vector<int> vec_rhop;
156 std::vector<int> vec_rho0;
157 std::vector<int> vec_kstarm;
158 std::vector<int> vec_kstarp;
159 std::vector<int> vec_kstar0;
160 std::vector<int> vec_kstar0_br;
161 std::vector<int> vec_a1m;
162 std::vector<int> vec_a1p;
163 std::vector<int> vec_a00_980;
164 std::vector<int> vec_a0m_980;
165 std::vector<int> vec_a0p_980;
166 std::vector<int> vec_a00_1450;
167 std::vector<int> vec_a0m_1450;
168 std::vector<int> vec_a0p_1450;
169 std::vector<int> vec_b1m;
170 std::vector<int> vec_b1p;
171 std::vector<int> vec_f1;
172 std::vector<int> vec_f0;
173 std::vector<int> vec_lambda;
174 std::vector<int> vec_lmb_br;
175 std::vector<int> vec_alpha;
176 std::vector<int> vec_gam;
177 std::vector<int> vec_radgam_taum;
178 std::vector<int> vec_radgam_taup;
179 std::vector<int> vec_dau_tauminus;
180 std::vector<int> vec_dau_tauplus;
183 void AnalyzeTauPairEvent();
185 int TauolaBelle2DecayMode(const std::string& s, int chg);
189 void IdentifyTauPair();
191 int getProngOfDecay(const MCParticle& mc);
193 double getEgstar(const std::vector<int>& vec_radgam, const MCParticle& mc);
194 };
195
197}
A Class to store the Monte Carlo particle information.
Definition: MCParticle.h:32
Base class for Modules.
Definition: Module.h:72
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:96
Module to classify tau decay events according to a mapping given by the user or with a default mappin...
std::vector< int > vec_numu
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_em
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_omega
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_k0s
Variable name of the vector where particles identified in the event are stored.
Int_t m_mprong
Prong of the decay channel of tau-.
std::vector< int > vec_b1p
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_f1
Variable name of the vector where particles identified in the event are stored.
int numOfTauPlus
Number of tau+ in the event.
Int_t m_pprong
Prong of the decay channel of tau+.
StoreObjPtr< EventMetaData > m_event_metadata
event number
void IdentifyTauPair()
Identifies if the event is a generated tau pair.
std::vector< int > vec_apro
Variable name of the vector where particles identified in the event are stored.
double getEgstar(const std::vector< int > &vec_radgam, const MCParticle &mc)
Energy of the radiative photon in tau rest frame.
std::vector< int > vec_pi0
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_alpha
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_radgam_taum
Variable name of the vector where particles identified in the event are stored.
StoreArray< MCParticle > MCParticles
StoreArray of MCParticles.
std::vector< int > vec_anue
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_nue
Variable name of the vector where particles identified in the event are stored.
virtual void initialize() override
Initializes the module.
std::vector< int > vec_a0p_980
Variable name of the vector where particles identified in the event are stored.
std::string m_file_plus
Alternative mapping for tau+.
std::vector< int > vec_a0m_1450
Variable name of the vector where particles identified in the event are stored.
virtual void event() override
Method is called for each event.
bool m_isEtaPizPizPizFromTauMinus
Flag for eta->pi0pi0pi0 decays from tau-.
double m_pegstar
Energy of radiative photon from tau+.
std::vector< int > vec_lmb_br
Variable name of the vector where particles identified in the event are stored.
Int_t m_mmode
ID of the decay channel of tau-.
void AnalyzeTauPairEvent()
Analyze a generated tau pair event.
bool m_isOmegaPimPipFromTauMinus
Flag for omega->pi-pi+ decays from tau-.
int getRecursiveMotherCharge(const MCParticle *mc)
Identifies particles coming from tau decays.
std::vector< int > vec_phi
Variable name of the vector where particles identified in the event are stored.
static constexpr int Neutrinos[3]
PDG codes of neutrinos in final state particles in generation: {nu_e, nu_mu, mu_tau}.
int m_taum_no
number of tau- unclassified events
std::string m_tauminusdecaymode
Variable name for the decay mode of the tau-.
std::vector< int > vec_a1p
Variable name of the vector where particles identified in the event are stored.
bool m_isOmegaPimPipFromTauPlus
Flag for omega->pi-pi+ decays from tau+.
bool tauPair
Boolean variable used to identify tau event.
int TauolaBelle2DecayMode(const std::string &s, int chg)
Classifies the decays of the event and assigns a decay mode.
int idOfTauMinus
Index of the generated tau-.
std::vector< int > vec_lambda
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_anut
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_f0
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_mum
Variable name of the vector where particles identified in the event are stored.
Int_t m_pmode
ID of the decay channel of tau+.
static constexpr int OrderedList[46]
PDG codes of ORDERED particles.
int numOfTauMinus
Number of tau- in the event.
std::vector< int > vec_nut
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_kstar0_br
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_radgam_taup
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_a00_1450
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_kstar0
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_a0m_980
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_a00_980
Variable name of the vector where particles identified in the event are stored.
int getProngOfDecay(const MCParticle &mc)
Identifies the number of charged final state particles in the decay.
std::vector< int > vec_a1m
Variable name of the vector where particles identified in the event are stored.
int idOfTauPlus
Index of the generated tau+.
StoreObjPtr< TauPairDecay > m_tauDecay
pointer to tau pair decay objects
std::vector< int > vec_rhop
Variable name of the vector where particles identified in the event are stored.
std::string m_printmode
Parameter passed by the user to indicated the informationt to be printed.
std::vector< int > vec_pro
Variable name of the vector where particles identified in the event are stored.
bool m_isEtaPizPizPizFromTauPlus
Flag for eta->pi0pi0pi0 decays from tau+.
std::string m_tauplusdecaymode
Variable name for the decay mode of the tau+.
std::vector< int > vec_pim
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_mup
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_pip
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_kstarp
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_kstarm
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_etapr
Variable name of the vector where particles identified in the event are stored.
double m_megstar
Energy of radiative photon from tau-.
std::vector< int > vec_ep
Variable name of the vector where particles identified in the event are stored.
TauDecayModeModule()
Constructor: Sets the description, the properties and the parameters of the module.
std::vector< int > vec_k0l
Variable name of the vector where particles identified in the event are stored.
static constexpr int finalStatePDGs[5]
PDG codes accepted as charged final state particles in generation: {e, mu, pi, K, p}.
std::vector< int > vec_eta
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_km
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_anumu
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_dau_tauplus
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_rhom
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_gam
Variable name of the vector where particles identified in the event are stored.
std::string m_file_minus
Alternative mapping for tau-.
int m_taup_no
number of tau+ unclassified events
std::vector< int > vec_dau_tauminus
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_kp
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_b1m
Variable name of the vector where particles identified in the event are stored.
std::vector< int > vec_rho0
Variable name of the vector where particles identified in the event are stored.
std::map< std::string, int > mode_decay_minus
Mapping for tau- decays.
std::map< std::string, int > mode_decay_plus
Mapping for tau+ decays.
std::vector< int > vec_a0p_1450
Variable name of the vector where particles identified in the event are stored.
Abstract base class for different kinds of events.