PhotosppInterface

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#ifndef gen_PhotosInterface_PhotosppInterface_h
#define gen_PhotosInterface_PhotosppInterface_h

// #include "HepPDT/ParticleDataTable.hh"

#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"

#include "HepMC/SimpleVector.h"
#include "GeneratorInterface/PhotosInterface/interface/PhotosInterfaceBase.h"

namespace HepMC {
  class GenEvent;
  class GenVertex;
}  // namespace HepMC

namespace HepMC3 {
  class GenEvent;
}  // namespace HepMC3

namespace gen {
  class PhotosppInterface : public PhotosInterfaceBase {
  public:
    // ctor & dtor
    PhotosppInterface(const edm::ParameterSet& pset);
    ~PhotosppInterface() override {}

    void init() override;
    const std::vector<std::string>& specialSettings() override { return fSpecialSettings; }
    HepMC::GenEvent* apply(HepMC::GenEvent*) override;
    HepMC3::GenEvent* apply(HepMC3::GenEvent*) override;
    void configureOnlyFor(int) override;
    void avoidTauLeptonicDecays() override {
      fAvoidTauLeptonicDecays = true;
      return;
    }
    bool isTauLeptonicDecay(HepMC::GenVertex*);
    void setRandomEngine(CLHEP::HepRandomEngine* decayRandomEngine) override;
    static double flat();
    void statistics() override;

  private:
    int fOnlyPDG;
    bool fAvoidTauLeptonicDecays;
    bool fIsInitialized;
    edm::ParameterSet* fPSet;

    static CLHEP::HepRandomEngine* fRandomEngine;
  };
}  // namespace gen

#endif