CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/GeneratorInterface/ExternalDecays/interface/TauolaInterface.h

Go to the documentation of this file.
00001 #ifndef gen_ExternalDecays_TauolaInterface_h
00002 #define gen_ExternalDecays_TauolaInterface_h
00003 
00004 // #include "HepPDT/defs.h"
00005 // #include "HepPDT/TableBuilder.hh"
00006 #include "HepPDT/ParticleDataTable.hh"
00007 
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "FWCore/Framework/interface/ESHandle.h"
00010 #include "FWCore/Framework/interface/EventSetup.h"
00011 
00012 namespace HepMC 
00013 {
00014 class GenEvent;
00015 }
00016 
00017 namespace CLHEP
00018 {
00019 class HepRandomEngine;
00020 }
00021 
00022 namespace gen {
00023 
00024 /* for old tauola27 */
00025    class TauolaInterface
00026    {
00027       public:
00028       
00029       // ctor & dtor
00030       TauolaInterface( const edm::ParameterSet& );
00031       ~TauolaInterface();
00032       
00033       void enablePolarization()  { fPolarization = 1; return; }
00034       void disablePolarization() { fPolarization = 0; return; }
00035       void init( const edm::EventSetup& );
00036       const std::vector<int>& operatesOnParticles() { return fPDGs; }
00037       HepMC::GenEvent* decay( HepMC::GenEvent* );
00038       void statistics() ;
00039       
00040       private: 
00041       
00042       //            
00043       std::vector<int> fPDGs;
00044       int              fPolarization;
00045       
00046       edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00047       Pythia6Service*                          fPy6Service;
00048       bool                                     fIsInitialized;
00049       //CLHEP::HepRandomEngine*                  fRandomEngine;
00050       //CLHEP::RandFlat*                         fRandomGenerator;
00051        
00052    };
00053 /* */
00054 
00055 /* this is the code for new Tauola++ 
00056 
00057    extern "C" {
00058       void ranmar_( float *rvec, int *lenv );
00059       void rmarin_( int*, int*, int* );
00060    }
00061 
00062    class TauolaInterface
00063    {
00064       public:
00065       
00066       // ctor & dtor
00067       // TauolaInterface( const edm::ParameterSet& );
00068       static TauolaInterface* getInstance() ;
00069       ~TauolaInterface();
00070       
00071       void setPSet( const edm::ParameterSet& );
00072       void enablePolarization()  { fPolarization = true; return; }
00073       void disablePolarization() { fPolarization = false; return; }
00074       void init( const edm::EventSetup& );
00075       const std::vector<int>& operatesOnParticles() { return fPDGs; }
00076       HepMC::GenEvent* decay( HepMC::GenEvent* );
00077       void statistics() ;
00078       
00079       private: 
00080       
00081       friend void gen::ranmar_( float *rvec, int *lenv );
00082       
00083       // ctor
00084       TauolaInterface();
00085       
00086       // member function(s)
00087       float flat();
00088       
00089       //
00090       CLHEP::HepRandomEngine*                  fRandomEngine;            
00091       std::vector<int>                         fPDGs;
00092       bool                                     fPolarization;      
00093       edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00094       edm::ParameterSet*                       fPSet;
00095       bool                                     fIsInitialized;
00096       
00097       static TauolaInterface*                  fInstance;
00098        
00099    };
00100 
00101 */
00102 
00103 }
00104 
00105 #endif