Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-21 01:39:49

0001 #ifndef gen_PhotosInterface_PhotosppInterface_h
0002 #define gen_PhotosInterface_PhotosppInterface_h
0003 
0004 // #include "HepPDT/ParticleDataTable.hh"
0005 
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/Framework/interface/EventSetup.h"
0009 
0010 #include "HepMC/SimpleVector.h"
0011 #include "GeneratorInterface/PhotosInterface/interface/PhotosInterfaceBase.h"
0012 
0013 namespace HepMC {
0014   class GenEvent;
0015   class GenVertex;
0016 }  // namespace HepMC
0017 
0018 namespace HepMC3 {
0019   class GenEvent;
0020 }  // namespace HepMC3
0021 
0022 namespace gen {
0023   class PhotosppInterface : public PhotosInterfaceBase {
0024   public:
0025     // ctor & dtor
0026     PhotosppInterface(const edm::ParameterSet& pset);
0027     ~PhotosppInterface() override {}
0028 
0029     void init() override;
0030     const std::vector<std::string>& specialSettings() override { return fSpecialSettings; }
0031     HepMC::GenEvent* apply(HepMC::GenEvent*) override;
0032     HepMC3::GenEvent* apply(HepMC3::GenEvent*) override;
0033     void configureOnlyFor(int) override;
0034     void avoidTauLeptonicDecays() override {
0035       fAvoidTauLeptonicDecays = true;
0036       return;
0037     }
0038     bool isTauLeptonicDecay(HepMC::GenVertex*);
0039     void setRandomEngine(CLHEP::HepRandomEngine* decayRandomEngine) override;
0040     static double flat();
0041     void statistics() override;
0042 
0043   private:
0044     int fOnlyPDG;
0045     bool fAvoidTauLeptonicDecays;
0046     bool fIsInitialized;
0047     edm::ParameterSet* fPSet;
0048 
0049     static CLHEP::HepRandomEngine* fRandomEngine;
0050   };
0051 }  // namespace gen
0052 
0053 #endif