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/defs.h"
5 // #include "HepPDT/TableBuilder.hh"
6 #include "HepPDT/ParticleDataTable.hh"
7 
12 
13 namespace HepMC
14 {
15 class GenEvent;
16 }
17 
18 namespace CLHEP
19 {
20 class HepRandomEngine;
21 }
22 
23 namespace gen {
24  extern "C" {
25  void ranmar_( float *rvec, int *lenv );
26  void rmarin_( int*, int*, int* );
27  }
28 
30 
32  public:
33 
34  // ctor & dtor
37  static TauolappInterface* getInstance() ;
39 
40  void setPSet( const edm::ParameterSet& );
41  void Setup();
42  void enablePolarization() { fPolarization = true; return; }
43  void disablePolarization() { fPolarization = false; return; }
44  void init( const edm::EventSetup& );
45  const std::vector<int>& operatesOnParticles() { return fPDGs; }
46  HepMC::GenEvent* decay( HepMC::GenEvent* );
47  void statistics() ;
48 
49  private:
50 
51  friend void gen::ranmar_( float *rvec, int *lenv );
52  friend double gen::TauolappInterface_RandGetter();
53  // ctor
54  //TauolappInterface();
55 
56  // member function(s)
57  float flat();
58  void decodeMDTAU( int );
59  void selectDecayByMDTAU();
60  int selectLeptonic();
61  int selectHadronic();
62 
63 
64  //
65  CLHEP::HepRandomEngine* fRandomEngine;
70 
71  int fMDTAU;
73  std::vector<int> fLeptonModes;
74  std::vector<int> fHadronModes;
75  std::vector<double> fScaledLeptonBrRatios;
76  std::vector<double> fScaledHadronBrRatios;
77 
79 
80  };
81 
82 
83 /* */
84 
85 }
86 
87 #endif
edm::ParameterSet * fPSet
std::vector< double > fScaledHadronBrRatios
void rmarin_(int *, int *, int *)
static TauolappInterface * getInstance()
std::vector< int > fLeptonModes
double TauolappInterface_RandGetter()
static TauolappInterface * fInstance
void ranmar_(float *rvec, int *lenv)
CLHEP::HepRandomEngine * fRandomEngine
void init(const edm::EventSetup &)
HepMC::GenEvent * decay(HepMC::GenEvent *)
std::vector< double > fScaledLeptonBrRatios
std::vector< int > fHadronModes
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
const std::vector< int > & operatesOnParticles()
void setPSet(const edm::ParameterSet &)