CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/GeneratorInterface/ExternalDecays/interface/ExternalDecayDriver.h

Go to the documentation of this file.
00001 #ifndef gen_ExternalDecayDriver_h
00002 #define gen_ExternalDecayDriver_h
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 #include "FWCore/Framework/interface/EventSetup.h"
00006 
00007 namespace HepMC
00008 {
00009 class GenEvent;
00010 }
00011 
00012 namespace gen {
00013 
00014 class TauolaInterface;
00015 class EvtGenInterface;
00016 class PhotosInterface;
00017 
00018    class ExternalDecayDriver 
00019    {
00020       public:
00021          
00022          // ctor & dtor
00023          ExternalDecayDriver( const edm::ParameterSet& );
00024          ~ExternalDecayDriver();
00025          
00026          void init( const edm::EventSetup& );
00027 
00028          const std::vector<int>&         operatesOnParticles() { return fPDGs; }
00029          const std::vector<std::string>& specialSettings()     { return fSpecialSettings; }
00030          
00031          HepMC::GenEvent* decay( HepMC::GenEvent* );
00032          
00033          void statistics() const;
00034       
00035       private:
00036          
00037          bool                     fIsInitialized;
00038          TauolaInterface*         fTauolaInterface;
00039          EvtGenInterface*         fEvtGenInterface;
00040          PhotosInterface*         fPhotosInterface;
00041          std::vector<int>         fPDGs;
00042          std::vector<std::string> fSpecialSettings;
00043          
00044    };
00045 
00046 }
00047 
00048 #endif