CMS 3D CMS Logo

Pythia6Gun.h
Go to the documentation of this file.
1 #ifndef gen_Pythia6Gun_h
2 #define gen_Pythia6Gun_h
3 
10 #include <string>
11 #include <vector>
12 
13 //#include "HepPDT/defs.h"
14 //#include "HepPDT/TableBuilder.hh"
15 //#include "HepPDT/ParticleDataTable.hh"
16 
17 #include "HepMC/GenEvent.h"
18 
19 // #include "FWCore/Framework/interface/ESHandle.h"
21 
24 
25 #include "HepPID/ParticleIDTranslations.hh"
26 
27 namespace CLHEP {
28  class HepRandomEngine;
29 }
30 
31 namespace edm {
32  class EventSetup;
33  class LuminosityBlock;
34 }
35 
36 namespace gen
37 {
38 
39 // class Pythia6Service;
40 
41  class Pythia6Gun : public edm::EDProducer
42  {
43 
44  public:
45 
46  Pythia6Gun( const edm::ParameterSet& );
47  ~Pythia6Gun() override;
48  void beginJob() override;
49  void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override;
50  void beginRun( edm::Run const&, edm::EventSetup const& ) override;
51  void endRun( edm::Run const&, edm::EventSetup const& ) override;
52  void produce( edm::Event&, const edm::EventSetup& ) override;
53 
54  protected:
55 
56  void attachPy6DecaysToGenEvent();
57  void loadEvent( edm::Event& );
58  virtual void generateEvent(CLHEP::HepRandomEngine*) = 0;
59  HepMC::GenParticle* addAntiParticle( int&, int&, double&, double&, double& );
60 
62 
63  // gun particle(s) characteristics
64  //
65  std::vector<int> fPartIDs ;
66  double fMinPhi ;
67  double fMaxPhi ;
68 
69  // the event format itself
70  //
71  HepMC::GenEvent* fEvt;
72 
73  // HepMC/HepPDT related things
74  // (for particle/event construction)
75  //
76  // edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
77 
81 
82  };
83 
84 } // end namespace
85 
86 #endif
HepMC::GenEvent * fEvt
Definition: Pythia6Gun.h:71
bool fHepMCVerbosity
Definition: Pythia6Gun.h:78
int fPylistVerbosity
Definition: Pythia6Gun.h:79
void beginJob()
Definition: Breakpoints.cc:15
double fMinPhi
Definition: Pythia6Gun.h:66
int fMaxEventsToPrint
Definition: Pythia6Gun.h:80
double fMaxPhi
Definition: Pythia6Gun.h:67
HLT enums.
Pythia6Service * fPy6Service
Definition: Pythia6Gun.h:61
std::vector< int > fPartIDs
Definition: Pythia6Gun.h:65
Definition: Run.h:43