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();
50 
51  //
52  static CLHEP::HepRandomEngine* fRandomEngine;
53  std::vector<int> fPDGs;
58 
59  int fMDTAU;
61  std::vector<int> fLeptonModes;
62  std::vector<int> fHadronModes;
63  std::vector<double> fScaledLeptonBrRatios;
64  std::vector<double> fScaledHadronBrRatios;
65 
66  };
67 
68 }
69 
70 #endif
TauolappInterface(const edm::ParameterSet &)
edm::ParameterSet * fPSet
std::vector< double > fScaledHadronBrRatios
void rmarin_(int *, int *, int *)
double v[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 *)
std::vector< double > fScaledLeptonBrRatios
static CLHEP::HepRandomEngine * fRandomEngine
std::vector< int > fHadronModes
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
const std::vector< int > & operatesOnParticles()
void setRandomEngine(CLHEP::HepRandomEngine *v)