CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TauolappInterface.h
Go to the documentation of this file.
1 #ifndef gen_TauolaInterface_TauolappInterface_h
2 #define gen_TauolaInterface_TauolappInterface_h
3 
4 #include "HepPDT/ParticleDataTable.hh"
5 
10 
11 namespace HepMC
12 {
13 class GenEvent;
14 }
15 
16 namespace CLHEP
17 {
18 class HepRandomEngine;
19 }
20 
21 namespace gen {
22  extern "C" {
23  void ranmar_( float *rvec, int *lenv );
24  void rmarin_( int*, int*, int* );
25  }
26 
28  public:
29 
30  // ctor & dtor
33 
34  void enablePolarization() { fPolarization = true; return; }
35  void disablePolarization() { fPolarization = false; return; }
36  void init( const edm::EventSetup& );
37  const std::vector<int>& operatesOnParticles() { return fPDGs; }
38  HepMC::GenEvent* decay( HepMC::GenEvent* );
39  void statistics() ;
40 
41  void setRandomEngine(CLHEP::HepRandomEngine* v) { fRandomEngine = v; }
42  static double flat();
43 
44  private:
45  // member function(s)
46  void decodeMDTAU( int );
47  void selectDecayByMDTAU();
48  int selectLeptonic();
49  int selectHadronic();
51  void setLifeTimeInDecays(HepMC::GenParticle* p,double vx, double vy, double vz, double vt);
52 
53  //
54  static CLHEP::HepRandomEngine* fRandomEngine;
55  std::vector<int> fPDGs;
60 
61  int fMDTAU;
63  std::vector<int> fLeptonModes;
64  std::vector<int> fHadronModes;
65  std::vector<double> fScaledLeptonBrRatios;
66  std::vector<double> fScaledHadronBrRatios;
67  double lifetime;
68  };
69 
70 }
71 
72 #endif
TauolappInterface(const edm::ParameterSet &)
edm::ParameterSet * fPSet
std::vector< double > fScaledHadronBrRatios
void rmarin_(int *, int *, int *)
double v[5][pyjets_maxn]
double p[5][pyjets_maxn]
std::vector< int > fPDGs
std::vector< int > fLeptonModes
void ranmar_(float *rvec, int *lenv)
void init(const edm::EventSetup &)
HepMC::GenEvent * decay(HepMC::GenEvent *)
bool isLastTauInChain(const HepMC::GenParticle *tau)
std::vector< double > fScaledLeptonBrRatios
static CLHEP::HepRandomEngine * fRandomEngine
void setLifeTimeInDecays(HepMC::GenParticle *p, double vx, double vy, double vz, double vt)
std::vector< int > fHadronModes
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
const std::vector< int > & operatesOnParticles()
void setRandomEngine(CLHEP::HepRandomEngine *v)