Belle II Software  release-08-01-10
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>
18 namespace 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 
56  int m_taum_no;
57  int m_taup_no;
62  std::map<std::string, int> mode_decay_minus;
64  std::map<std::string, int> mode_decay_plus;
66  std::string m_tauminusdecaymode;
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);
190  int getRecursiveMotherCharge(const MCParticle* mc);
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
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.