File indexing completed on 2025-01-21 01:39:49
0001 #ifndef gen_PhotosInterface_PhotosppInterface_h
0002 #define gen_PhotosInterface_PhotosppInterface_h
0003
0004
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 }
0017
0018 namespace HepMC3 {
0019 class GenEvent;
0020 }
0021
0022 namespace gen {
0023 class PhotosppInterface : public PhotosInterfaceBase {
0024 public:
0025
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 }
0052
0053 #endif