Belle II Software light-2411-aldebaran
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 {
31 class TauDecayModeModule : public Module {
32
33 public:
34
39
41 virtual void initialize() override;
42
44 virtual void event() override;
45
46 protected:
47
48 std::string m_printmode;
50 private:
51
54
62 std::map<std::string, int> mode_decay_minus;
64 std::map<std::string, int> mode_decay_plus;
68 std::string m_tauplusdecaymode;
69
71 Int_t m_mmode;
73 Int_t m_pmode;
74
76 Int_t m_mprong;
78 Int_t m_pprong;
79
81 double m_megstar;
82
84 double m_pegstar;
85
87 bool tauPair;
97 std::string m_file_minus;
99 std::string m_file_plus;
100
102 static constexpr int finalStatePDGs[5] = { 11, 13, 211, 321, 2212 };
103
105 static constexpr int Neutrinos[3] = { 12, 14, 16 };
106
108 static constexpr int OrderedList[46] = {
109 16, -16, 14, -14, 12, -12, // neutrinos
110 11, -11, 13, -13, -211, 211, -321, 321, -2212, 2212, // charged final state particles
111 111, 310, 130, 221, 223, 331, 333, //neutral mesons
112 -213, 213, 113, //rho
113 -323, 323, 313, -313, //Kstar
114 -20213, 20213, //a1
115 -9000211, 9000211, 9000111, -10211, 10211, 10111, //a0
116 -10213, 10213, //b1
117 20223, 9010221, //f1,f0
118 3122, -3122, //lambda
119 94144,//alpha
120 22//gamma
121 };
122
127
132
133 //
134 std::vector<int> vec_nut;
135 std::vector<int> vec_anut;
136 std::vector<int> vec_numu;
137 std::vector<int> vec_anumu;
138 std::vector<int> vec_nue;
139 std::vector<int> vec_anue;
140 std::vector<int> vec_em;
141 std::vector<int> vec_ep;
142 std::vector<int> vec_mum;
143 std::vector<int> vec_mup;
144 std::vector<int> vec_pim;
145 std::vector<int> vec_pip;
146 std::vector<int> vec_km;
147 std::vector<int> vec_kp;
148 std::vector<int> vec_apro;
149 std::vector<int> vec_pro;
150 std::vector<int> vec_pi0;
151 std::vector<int> vec_k0s;
152 std::vector<int> vec_k0l;
153 std::vector<int> vec_eta;
154 std::vector<int> vec_omega;
155 std::vector<int> vec_etapr;
156 std::vector<int> vec_phi;
157 std::vector<int> vec_rhom;
158 std::vector<int> vec_rhop;
159 std::vector<int> vec_rho0;
160 std::vector<int> vec_kstarm;
161 std::vector<int> vec_kstarp;
162 std::vector<int> vec_kstar0;
163 std::vector<int> vec_kstar0_br;
164 std::vector<int> vec_a1m;
165 std::vector<int> vec_a1p;
166 std::vector<int> vec_a00_980;
167 std::vector<int> vec_a0m_980;
168 std::vector<int> vec_a0p_980;
169 std::vector<int> vec_a00_1450;
170 std::vector<int> vec_a0m_1450;
171 std::vector<int> vec_a0p_1450;
172 std::vector<int> vec_b1m;
173 std::vector<int> vec_b1p;
174 std::vector<int> vec_f1;
175 std::vector<int> vec_f0;
176 std::vector<int> vec_lambda;
177 std::vector<int> vec_lmb_br;
178 std::vector<int> vec_alpha;
179 std::vector<int> vec_gam;
180 std::vector<int> vec_radgam_taum;
181 std::vector<int> vec_radgam_taup;
182 std::vector<int> vec_dau_tauminus;
183 std::vector<int> vec_dau_tauplus;
186 void AnalyzeTauPairEvent();
188 int TauolaBelle2DecayMode(const std::string& s, int chg);
192 void IdentifyTauPair();
194 int getProngOfDecay(const MCParticle& mc);
196 double getEgstar(const std::vector<int>& vec_radgam, const MCParticle& mc);
197 };
198
200}
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.
Definition: ClusterUtils.h:24