Belle II Software  release-08-01-10
TauDecayMarkerModule.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 <analysis/dataobjects/TauPairDecay.h>
13 #include <framework/datastore/StoreArray.h>
14 #include <framework/datastore/StoreObjPtr.h>
15 #include <mdst/dataobjects/MCParticle.h>
16 
17 namespace Belle2 {
32  class TauDecayMarkerModule : public Module {
33 
34  public:
35 
40 
42  virtual void initialize() override;
43 
45  virtual void event() override;
46 
47  private:
48 
54  bool tauPair;
64  const int finalStatePDGs[5] = { 11, 13, 211, 321, 2212 };
66  Int_t m_pmode;
68  Int_t m_mmode;
70  Int_t m_pprong;
72  Int_t m_mprong;
73 
75  void IdentifyTauPair();
77  int getDecayChannelOfTau(int s = 0);
79  int getNumDaughterOfTauExceptGamma(int s = 0, int id = 0, int sign = 0);
81  int getNumDaughterOfTau(int s = 0, int id = 0, int sign = 0);
83  int getProngOfDecay(const MCParticle& mc);
84 
85  protected:
88 
89  };
90 
92 }
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 identify generated tau pair decays, using MCParticle information.
Int_t m_mprong
Prong of the decay channel of negative tau.
const int finalStatePDGs[5]
PDG codes accepted as charged final state particles in generation: {e, mu, pi, K, p}.
int numOfTauPlus
Number of positive tau leptons in the event.
Int_t m_pprong
Prong of the decay channel of positive tau.
void IdentifyTauPair()
Identifies if the event is a generated tau pair.
virtual void initialize() override
Initializes the module.
virtual void event() override
Method is called for each event.
int getNumDaughterOfTau(int s=0, int id=0, int sign=0)
Count the number of daughers of the generated tau.
Int_t m_mmode
ID of the decay channel of negative tau.
int getNumDaughterOfTauExceptGamma(int s=0, int id=0, int sign=0)
Count the number of daughers of the generated tau except gammas.
bool tauPair
True if the generated event is a tau pair event.
int idOfTauMinus
Index of the generated negative tau.
Int_t m_pmode
ID of the decay channel of positive tau.
int numOfTauMinus
Number of negative tau leptons in the event.
int getProngOfDecay(const MCParticle &mc)
Get the prong of the generated tau decay.
int idOfTauPlus
Index of the generated positive tau.
StoreObjPtr< TauPairDecay > m_tauDecay
pointer to tau pair decay objects
int getDecayChannelOfTau(int s=0)
Gets the id of the decay channel.
bool m_printDecayInfo
If true, prints ID and prong of each tau lepton in the event.
StoreArray< MCParticle > m_MCParticles
StoreArray of MCParticles.
TauDecayMarkerModule()
Constructor: Sets the description, the properties and the parameters of the module.
Abstract base class for different kinds of events.