Belle II Software light-2406-ragdoll
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 bool tauPair;
91 std::string m_file_minus;
93 std::string m_file_plus;
94
96 static constexpr int finalStatePDGs[5] = { 11, 13, 211, 321, 2212 };
97
99 static constexpr int Neutrinos[3] = { 12, 14, 16 };
100
102 static constexpr int OrderedList[46] = {
103 16, -16, 14, -14, 12, -12, // neutrinos
104 11, -11, 13, -13, -211, 211, -321, 321, -2212, 2212, // charged final state particles
105 111, 310, 130, 221, 223, 331, 333, //neutral mesons
106 -213, 213, 113, //rho
107 -323, 323, 313, -313, //Kstar
108 -20213, 20213, //a1
109 -9000211, 9000211, 9000111, -10211, 10211, 10111, //a0
110 -10213, 10213, //b1
111 20223, 9010221, //f1,f0
112 3122, -3122, //lambda
113 94144,//alpha
114 22//gamma
115 };
116
121
126
127 //
128 std::vector<int> vec_nut;
129 std::vector<int> vec_anut;
130 std::vector<int> vec_numu;
131 std::vector<int> vec_anumu;
132 std::vector<int> vec_nue;
133 std::vector<int> vec_anue;
134 std::vector<int> vec_em;
135 std::vector<int> vec_ep;
136 std::vector<int> vec_mum;
137 std::vector<int> vec_mup;
138 std::vector<int> vec_pim;
139 std::vector<int> vec_pip;
140 std::vector<int> vec_km;
141 std::vector<int> vec_kp;
142 std::vector<int> vec_apro;
143 std::vector<int> vec_pro;
144 std::vector<int> vec_pi0;
145 std::vector<int> vec_k0s;
146 std::vector<int> vec_k0l;
147 std::vector<int> vec_eta;
148 std::vector<int> vec_omega;
149 std::vector<int> vec_etapr;
150 std::vector<int> vec_phi;
151 std::vector<int> vec_rhom;
152 std::vector<int> vec_rhop;
153 std::vector<int> vec_rho0;
154 std::vector<int> vec_kstarm;
155 std::vector<int> vec_kstarp;
156 std::vector<int> vec_kstar0;
157 std::vector<int> vec_kstar0_br;
158 std::vector<int> vec_a1m;
159 std::vector<int> vec_a1p;
160 std::vector<int> vec_a00_980;
161 std::vector<int> vec_a0m_980;
162 std::vector<int> vec_a0p_980;
163 std::vector<int> vec_a00_1450;
164 std::vector<int> vec_a0m_1450;
165 std::vector<int> vec_a0p_1450;
166 std::vector<int> vec_b1m;
167 std::vector<int> vec_b1p;
168 std::vector<int> vec_f1;
169 std::vector<int> vec_f0;
170 std::vector<int> vec_lambda;
171 std::vector<int> vec_lmb_br;
172 std::vector<int> vec_alpha;
173 std::vector<int> vec_gam;
174 std::vector<int> vec_dau_tauminus;
175 std::vector<int> vec_dau_tauplus;
178 void AnalyzeTauPairEvent();
180 int TauolaBelle2DecayMode(const std::string& s, int chg);
184 void IdentifyTauPair();
186 int getProngOfDecay(const MCParticle& mc);
187
188 };
189
191}
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.
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.
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-.
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_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.
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