CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EvtGenInterface.h
Go to the documentation of this file.
1 #ifndef gen_EvtGenInterface_h
2 #define gen_EvtGenInterface_h
3 
5 #include <memory>
6 
7 // user include files
10 
14 
15 namespace CLHEP {
16  class HepRandomEngine;
17  class RandFlat;
18 }
19 
20 namespace HepMC {
21  class GenParticle;
22  class GenEvent;
23 }
24 
25 class EvtGen;
26 class EvtId;
27 class EvtParticle;
28 
29 namespace gen {
30 
31  class Pythia6Service;
32 
34  public:
37 
38  void SetPhotosDecayRandomEngine(CLHEP::HepRandomEngine* decayRandomEngine);
39  void init();
40  const std::vector<int>& operatesOnParticles() { return m_PDGs; }
41  HepMC::GenEvent* decay( HepMC::GenEvent* evt);
42 
43  void addToHepMC(HepMC::GenParticle* partHep, EvtId idEvt, HepMC::GenEvent* theEvent, bool del_daug);
44  void go_through_daughters(EvtParticle* part);
45  void update_candlist( int theIndex, HepMC::GenParticle *thePart );
46 
47  private:
48  // from Pythia
49  // void call_pygive(const std::string& iParm );
50 
52  CLHEP::RandFlat* m_flat;
53  EvtGen *m_EvtGen;
54  std::vector<EvtId> forced_Evt; // EvtId's of particles with forced decay
55  std::vector<int> forced_Hep; // HepId's of particles with forced decay
56  int nforced; // number of particles with forced decay
57  int ntotal, npartial, nevent; // generic counters
58 
59  int nPythia;
60  bool usePythia;
61  // std::vector<std::string> pythia_params; // Pythia stuff
62 
63  // Adding parameters for polarization of spin-1/2 particles
64  std::vector<int> polarize_ids;
65  std::vector<double> polarize_pol;
66  std::map<int, float> polarizations;
67 
68  int nlist;
70  int index[10]; // list of candidates to be forced
71 
72  };
73 }
74 
75 #endif
CLHEP::HepRandomEngine * decayRandomEngine
void addToHepMC(HepMC::GenParticle *partHep, EvtId idEvt, HepMC::GenEvent *theEvent, bool del_daug)
void update_candlist(int theIndex, HepMC::GenParticle *thePart)
std::vector< int > polarize_ids
std::vector< EvtId > forced_Evt
void go_through_daughters(EvtParticle *part)
Pythia6Service * m_Py6Service
void SetPhotosDecayRandomEngine(CLHEP::HepRandomEngine *decayRandomEngine)
std::map< int, float > polarizations
HepMC::GenParticle * listp[10]
std::vector< double > polarize_pol
CLHEP::RandFlat * m_flat
EvtGenInterface(const edm::ParameterSet &)
part
Definition: HCALResponse.h:21
const std::vector< int > & operatesOnParticles()
std::vector< int > forced_Hep
HepMC::GenEvent * decay(HepMC::GenEvent *evt)