CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/GeneratorInterface/ExternalDecays/interface/PhotosInterface.h

Go to the documentation of this file.
00001 #ifndef gen_ExternalDecays_PhotosInterface_h
00002 #define gen_ExternalDecays_PhotosInterface_h
00003 
00004 // #include "HepPDT/ParticleDataTable.hh"
00005 
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/Framework/interface/ESHandle.h"
00008 #include "FWCore/Framework/interface/EventSetup.h"
00009 
00010 #include "HepMC/SimpleVector.h"
00011 
00012 namespace HepMC 
00013 {
00014 class GenEvent;
00015 class GenVertex;
00016 }
00017 
00018 namespace gen {
00019 
00020    class PhotosInterface
00021    {
00022       public:
00023       
00024       // ctor & dtor
00025       PhotosInterface(); 
00026       PhotosInterface( const edm::ParameterSet& );
00027       ~PhotosInterface() {}
00028 
00029       void init();
00030       const std::vector<std::string>& specialSettings() { return fSpecialSettings; }
00031       HepMC::GenEvent* apply( HepMC::GenEvent* );
00032       // --> void configureOnlyFor( int );
00033       void avoidTauLeptonicDecays() { fAvoidTauLeptonicDecays=true; return; }
00034       
00035       private: 
00036             
00037       struct Scaling {
00038          HepMC::ThreeVector weights;
00039          int                flag;
00040          Scaling( HepMC::ThreeVector vec, int flg ) 
00041             : weights(HepMC::ThreeVector(1.,1.,1)), flag(1) { weights=vec; flag=flg; }
00042       };
00043 
00044       int                      fOnlyPDG;
00045       std::vector<std::string> fSpecialSettings; 
00046       bool                     fAvoidTauLeptonicDecays;  
00047       std::vector<Scaling>     fScaleFactors;
00048       std::vector<int>         fBarcodes;
00049       bool                     fIsInitialized;
00050       
00051       void attachParticles( HepMC::GenEvent*, HepMC::GenVertex*, int );
00052              
00053    };
00054 
00055 }
00056 
00057 #endif