CMS 3D CMS Logo

Generator.h
Go to the documentation of this file.
1 #ifndef SimG4Core_Generator_H
2 #define SimG4Core_Generator_H
3 
6 
9 
10 #include "HepMC/GenEvent.h"
11 #include "HepMC/GenParticle.h"
12 
13 #include <vector>
14 
15 class G4Event;
16 class G4PrimaryParticle;
17 class LumiMonitorFilter;
18 
19 class Generator
20 {
21 public:
22  Generator(const edm::ParameterSet & p);
23  virtual ~Generator();
24 
25  void setGenEvent( const HepMC::GenEvent* inpevt )
26  { evt_ = (HepMC::GenEvent*)inpevt; return ; }
27  void HepMC2G4(const HepMC::GenEvent * g,G4Event * e);
28  void nonBeamEvent2G4(const HepMC::GenEvent * g,G4Event * e);
29  virtual const HepMC::GenEvent* genEvent() const { return evt_; }
30  virtual const math::XYZTLorentzVector* genVertex() const { return vtx_; }
31  virtual const double eventWeight() const { return weight_; }
32 
33 private:
34 
35  bool particlePassesPrimaryCuts(const G4ThreeVector& p) const;
36  bool isExotic(HepMC::GenParticle* p) const;
38  void particleAssignDaughters(G4PrimaryParticle * p, HepMC::GenParticle * hp,
39  double length);
40  void setGenId(G4PrimaryParticle* p, int id) const
41  { p->SetUserInformation(new GenParticleInfo(id));}
42 
43 private:
44  bool fPCuts;
45  bool fPtransCut;
46  bool fEtaCuts;
47  bool fPhiCuts;
48  double theMinPhiCut;
49  double theMaxPhiCut;
50  double theMinEtaCut;
51  double theMaxEtaCut;
52  double theMinPCut;
53  double theMinPtCut2;
54  double theMaxPCut;
55  double theDecRCut2;
57  double theDecLenCut;
58  int verbose;
60  HepMC::GenEvent* evt_;
62  double weight_;
64  std::vector<int> pdgFilter;
66  bool fPDGFilter;
67 };
68 
69 #endif
double theDecRCut2
Definition: Generator.h:55
bool fPhiCuts
Definition: Generator.h:47
virtual const math::XYZTLorentzVector * genVertex() const
Definition: Generator.h:30
void setGenId(G4PrimaryParticle *p, int id) const
Definition: Generator.h:40
double theMinPtCut2
Definition: Generator.h:53
virtual const double eventWeight() const
Definition: Generator.h:31
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:29
double theEtaCutForHector
Definition: Generator.h:56
double Z_lmax
Definition: Generator.h:63
void HepMC2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:102
double theMaxPhiCut
Definition: Generator.h:49
Generator(const edm::ParameterSet &p)
Definition: Generator.cc:24
bool fPtransCut
Definition: Generator.h:45
double theDecLenCut
Definition: Generator.h:57
double theMinEtaCut
Definition: Generator.h:50
bool pdgFilterSel
Definition: Generator.h:65
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
void particleAssignDaughters(G4PrimaryParticle *p, HepMC::GenParticle *hp, double length)
Definition: Generator.cc:406
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double theMinPCut
Definition: Generator.h:52
LumiMonitorFilter * fLumiFilter
Definition: Generator.h:59
susybsm::HSCParticleRefProd hp
Definition: classes.h:27
bool fPDGFilter
Definition: Generator.h:66
double theMinPhiCut
Definition: Generator.h:48
double weight_
Definition: Generator.h:62
double theMaxEtaCut
Definition: Generator.h:51
void setGenEvent(const HepMC::GenEvent *inpevt)
Definition: Generator.h:25
double theMaxPCut
Definition: Generator.h:54
bool isExotic(HepMC::GenParticle *p) const
Definition: Generator.cc:516
math::XYZTLorentzVector * vtx_
Definition: Generator.h:61
HepMC::GenEvent * evt_
Definition: Generator.h:60
void nonBeamEvent2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:545
return(e1-e2)*(e1-e2)+dp *dp
double Z_lmin
Definition: Generator.h:63
int verbose
Definition: Generator.h:58
virtual ~Generator()
Definition: Generator.cc:97
bool particlePassesPrimaryCuts(const G4ThreeVector &p) const
Definition: Generator.cc:483
std::vector< int > pdgFilter
Definition: Generator.h:64
bool fEtaCuts
Definition: Generator.h:46
bool isExoticNonDetectable(HepMC::GenParticle *p) const
Definition: Generator.cc:530
double Z_hector
Definition: Generator.h:63
bool fPCuts
Definition: Generator.h:44