CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TauDecay_CMSSW Class Reference

#include <TauDecay_CMSSW.h>

Inheritance diagram for TauDecay_CMSSW:
TauDecay

Public Member Functions

bool AnalyzeTau (HepMC::GenParticle *Tau, unsigned int &MODE_ID, unsigned int &TauBitMask, bool dores=true, bool dopi0=true)
 
std::vector< unsigned int > Get_MotherIdx ()
 
std::vector< HepMC::GenParticle * > Get_TauDecayProducts ()
 
 TauDecay_CMSSW ()
 
 ~TauDecay_CMSSW ()
 
- Public Member Functions inherited from TauDecay
void ClassifyDecayMode (unsigned int &MODE_ID, unsigned int &TauBitMask)
 
bool hasResonance (unsigned int &TauBitMask, int pdgid)
 
bool isTauFinalStateParticle (int pdgid)
 
bool isTauParticleCounter (int pdgid)
 
bool isTauResonanceCounter (int pdgid)
 
unsigned int nPi0 (unsigned int &TauBitMask)
 
unsigned int nProng (unsigned int &TauBitMask)
 
void Reset ()
 
 TauDecay ()
 
 ~TauDecay ()
 

Private Member Functions

void AddPi0Info (HepMC::GenParticle *Particle, unsigned int midx)
 
void Analyze (HepMC::GenParticle *Particle, unsigned int midx, bool dores, bool dopi0)
 

Private Attributes

unsigned int MODE_ID
 
std::vector< unsigned int > MotherIdx
 
unsigned int TauBitMask
 
std::vector< HepMC::GenParticle * > TauDecayProducts
 

Additional Inherited Members

- Public Types inherited from TauDecay
enum  MODE {
  MODE_UNKNOWN =0, MODE_ELECTRON, MODE_MUON, MODE_PION,
  MODE_PIPI0, MODE_3PI, MODE_PI2PI0, MODE_KAON,
  MODE_K0PI, MODE_KPI0, MODE_3PIPI0, MODE_PI3PI0,
  MODE_3PI2PI0, MODE_5PI, MODE_5PIPI0, MODE_3PI3PI0,
  MODE_KPIK, MODE_K0BK0PI, MODE_KK0BPI0, MODE_K2PI0,
  MODE_KPIPI, MODE_PIK0PI0, MODE_ETAPIPI0, MODE_PIPI0GAM,
  MODE_KK0B, MODE_PI4PI0, MODE_3PIETA, MODE_PI2PI0ETA,
  MODE_PI2PI0OMEGA, MODE_3PIOMEGA, MODE_KOMEGA, MODE_K3PI0,
  MODE_K2PIPI0, MODE_KETA, MODE_K0PI2PI0, MODE_K03PI,
  MODE_2K0PIPI0, MODE_KPIKPI0, NMODEID
}
 
enum  TauDecayStructure {
  other =0, OneProng =1, ThreeProng =2, FiveProng =4,
  OnePi0 =8, TwoPi0 =32, ThreePi0 =64, Res_a1_pm =128,
  Res_a1_0 =256, Res_rho_pm =512, Res_rho_0 =1024, Res_eta =2048,
  Res_omega =4096, Res_Kstar_pm =8192, Res_Kstar_0 =16384, KS0_to_pipi =32768
}
 
- Static Public Member Functions inherited from TauDecay
static std::string DecayMode (unsigned int &MODE_ID)
 

Detailed Description

Definition at line 30 of file TauDecay_CMSSW.h.

Constructor & Destructor Documentation

TauDecay_CMSSW::TauDecay_CMSSW ( )

Definition at line 7 of file TauDecay_CMSSW.cc.

7  :
8  TauDecay()
9 {
10 
11 }
TauDecay()
Definition: TauDecay.cc:7
TauDecay_CMSSW::~TauDecay_CMSSW ( )

Definition at line 13 of file TauDecay_CMSSW.cc.

13  {
14 
15 }

Member Function Documentation

void TauDecay_CMSSW::AddPi0Info ( HepMC::GenParticle *  Particle,
unsigned int  midx 
)
private

Definition at line 61 of file TauDecay_CMSSW.cc.

References class-composition::children, MotherIdx, and TauDecayProducts.

Referenced by Get_MotherIdx().

61  {
62  if(Particle->status()==1){
63  TauDecayProducts.push_back(Particle);
64  MotherIdx.push_back(midx);
65  return;
66  }
67  HepMC::GenVertex::particle_iterator des;
68  for(des = Particle->end_vertex()->particles_begin(HepMC::children);
69  des!= Particle->end_vertex()->particles_end(HepMC::children);++des ) {
70  AddPi0Info((*des),midx);
71  }
72 }
std::vector< HepMC::GenParticle * > TauDecayProducts
std::vector< unsigned int > MotherIdx
void AddPi0Info(HepMC::GenParticle *Particle, unsigned int midx)
void TauDecay_CMSSW::Analyze ( HepMC::GenParticle *  Particle,
unsigned int  midx,
bool  dores,
bool  dopi0 
)
private

Definition at line 39 of file TauDecay_CMSSW.cc.

References funct::abs(), class-composition::children, gather_cfg::cout, TauDecay::isTauFinalStateParticle(), TauDecay::isTauParticleCounter(), TauDecay::isTauResonanceCounter(), MotherIdx, BPhysicsValidation_cfi::pdgid, and TauDecayProducts.

Referenced by AnalyzeTau(), and Get_MotherIdx().

39  {
40  unsigned int pdgid=abs(Particle->pdg_id());
41  isTauResonanceCounter(pdgid);
42  if(isTauFinalStateParticle(pdgid)){
43  if(!isTauParticleCounter(pdgid)) std::cout << "TauDecay_CMSSW::Analyze WARNING: Unknow Final State Particle in Tau Decay... " << pdgid << std::endl;
44  TauDecayProducts.push_back(Particle);
45  MotherIdx.push_back(midx);
46  return;
47  }
48  HepMC::GenVertex::particle_iterator des;
49  if(Particle->end_vertex()){
50  for(des = Particle->end_vertex()->particles_begin(HepMC::children);
51  des!= Particle->end_vertex()->particles_end(HepMC::children) && Particle->end_vertex()-> particles_out_size()>0;++des ) {
52  Analyze((*des),midx,dores,dopi0);
53  }
54  }
55  else {
56  std::cout << "Unstable particle that is undecayed in Tau decay tree. PDG ID: " << pdgid << std::endl;
57  }
58 }
std::vector< HepMC::GenParticle * > TauDecayProducts
bool isTauFinalStateParticle(int pdgid)
Definition: TauDecay.cc:36
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isTauResonanceCounter(int pdgid)
Definition: TauDecay.cc:75
void Analyze(HepMC::GenParticle *Particle, unsigned int midx, bool dores, bool dopi0)
std::vector< unsigned int > MotherIdx
bool isTauParticleCounter(int pdgid)
Definition: TauDecay.cc:55
bool TauDecay_CMSSW::AnalyzeTau ( HepMC::GenParticle *  Tau,
unsigned int &  MODE_ID,
unsigned int &  TauBitMask,
bool  dores = true,
bool  dopi0 = true 
)

Definition at line 17 of file TauDecay_CMSSW.cc.

References funct::abs(), Analyze(), class-composition::children, TauDecay::ClassifyDecayMode(), MotherIdx, TauDecay::Reset(), PdtPdgMini::tau_minus, and TauDecayProducts.

17  {
18  Reset();
19  MotherIdx.clear();
20  TauDecayProducts.clear();
21  if(abs(Tau->pdg_id())==PdtPdgMini::tau_minus){ // check that it is a tau
22  unsigned int Tauidx=TauDecayProducts.size();
23  HepMC::GenVertex::particle_iterator des;
24  if( Tau->end_vertex()){
25  for(des = Tau->end_vertex()->particles_begin(HepMC::children);
26  des!= Tau->end_vertex()->particles_end(HepMC::children);++des ) {
27  Analyze((*des),Tauidx,dores,dopi0);
28  }
30  return true;
31  }
32  }
33  return false;
34 }
void Reset()
Definition: TauDecay.cc:15
unsigned int TauBitMask
std::vector< HepMC::GenParticle * > TauDecayProducts
unsigned int MODE_ID
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void ClassifyDecayMode(unsigned int &MODE_ID, unsigned int &TauBitMask)
Definition: TauDecay.cc:89
Definition: Tau.py:1
void Analyze(HepMC::GenParticle *Particle, unsigned int midx, bool dores, bool dopi0)
std::vector< unsigned int > MotherIdx
std::vector<unsigned int> TauDecay_CMSSW::Get_MotherIdx ( )
inline

Definition at line 39 of file TauDecay_CMSSW.h.

References AddPi0Info(), Analyze(), GenParticle::GenParticle, and MotherIdx.

39 {return MotherIdx;}
std::vector< unsigned int > MotherIdx
std::vector<HepMC::GenParticle*> TauDecay_CMSSW::Get_TauDecayProducts ( )
inline

Definition at line 38 of file TauDecay_CMSSW.h.

References TauDecayProducts.

38 {return TauDecayProducts;}
std::vector< HepMC::GenParticle * > TauDecayProducts

Member Data Documentation

unsigned int TauDecay_CMSSW::MODE_ID
private

Definition at line 48 of file TauDecay_CMSSW.h.

std::vector<unsigned int> TauDecay_CMSSW::MotherIdx
private

Definition at line 47 of file TauDecay_CMSSW.h.

Referenced by AddPi0Info(), Analyze(), AnalyzeTau(), and Get_MotherIdx().

unsigned int TauDecay_CMSSW::TauBitMask
private

Definition at line 48 of file TauDecay_CMSSW.h.

std::vector<HepMC::GenParticle*> TauDecay_CMSSW::TauDecayProducts
private

Definition at line 46 of file TauDecay_CMSSW.h.

Referenced by AddPi0Info(), Analyze(), AnalyzeTau(), and Get_TauDecayProducts().