CMS 3D CMS Logo

Hector.h
Go to the documentation of this file.
1 #ifndef SimTransport_Hector_h
2 #define SimTransport_Hector_h
3 
4 // user include files
7 /*
8 #include "FWCore/Framework/interface/Frameworkfwd.h"
9 #include "FWCore/Framework/interface/EDAnalyzer.h"
10 
11 #include "FWCore/Framework/interface/Event.h"
12 #include "FWCore/Framework/interface/MakerMacros.h"
13 
14 #include "FWCore/ParameterSet/interface/ParameterSet.h"
15 #include "FWCore/Utilities/interface/InputTag.h"
16 */
17 // HepMC headers
19 
20 #include "HepMC/GenEvent.h"
21 #include "HepMC/GenVertex.h"
22 #include "HepMC/GenParticle.h"
24 
26 #include <vector>
27 
28 // SimpleConfigurable replacement
30 
31 //Hector headers
32 #include "H_BeamLine.h"
33 #include "H_RecRPObject.h"
34 #include "H_BeamParticle.h"
35 #include <string>
36 #include <map>
37 
38 class TRandom3;
39 
40 class Hector {
41 
42  public:
43  // Hector(const edm::ParameterSet & ps);
44  Hector(const edm::ParameterSet & ps, bool verbosity, bool FP420Transport,bool ZDCTransport);
45  // Hector();
46  virtual ~Hector();
47 
49  void clearApertureFlags();
51  void clear();
53  void add( const HepMC::GenEvent * ev , const edm::EventSetup & es);
55  void filterFP420(TRandom3*);
57  void filterZDC(TRandom3*);
59  void filterD1(TRandom3*);
60 
61  int getDirect( unsigned int part_n ) const;
62 
64  void print() const;
66  // std::vector<unsigned int> part_list() const;
67 
68  // bool isCharged(const HepMC::GenParticle * p);
69 
70  HepMC::GenEvent * addPartToHepMC( HepMC::GenEvent * event );
71 
72  std::vector<LHCTransportLink> & getCorrespondenceMap() { return theCorrespondenceMap; }
73 
74  /*
75  private:
76  // edm::ParameterSet m_pBeamLine;
77  */
78  private:
79 
80 
81  // Defaults
82  double lengthfp420 ;
83  double lengthzdc ;
84  double lengthd1 ;
85 
86  double etacut;
87  bool m_smearAng;
88  double m_sig_e;
89  bool m_smearE;
90  double m_sigmaSTX;
91  double m_sigmaSTY;
92 
93  float m_rpp420_f;
94  float m_rpp420_b;
95  float m_rppzdc;
96  float m_rppd1;
97 
99 
100  // Hector
101  H_BeamLine * m_beamlineFP4201;
102  H_BeamLine * m_beamlineFP4202;
103  H_BeamLine * m_beamlineZDC1;
104  H_BeamLine * m_beamlineZDC2;
105  H_BeamLine * m_beamlineD11;
106  H_BeamLine * m_beamlineD12;
107  //
108 
109  H_RecRPObject * m_rp420_f;
110  H_RecRPObject * m_rp420_b;
111 
112  std::map<unsigned int, H_BeamParticle*> m_beamPart;
113  std::map<unsigned int, int> m_direct;
114  std::map<unsigned int, bool> m_isStoppedfp420;
115  std::map<unsigned int, bool> m_isStoppedzdc;
116  std::map<unsigned int, bool> m_isStoppedd1;
117  std::map<unsigned int, double> m_xAtTrPoint;
118  std::map<unsigned int, double> m_yAtTrPoint;
119  std::map<unsigned int, double> m_TxAtTrPoint;
120  std::map<unsigned int, double> m_TyAtTrPoint;
121  std::map<unsigned int, double> m_eAtTrPoint;
122 
123  std::map<unsigned int, double> m_eta;
124  std::map<unsigned int, int> m_pdg;
125  std::map<unsigned int, double> m_pz;
126  std::map<unsigned int, bool> m_isCharged;
127 
130 
134 
135  std::vector<LHCTransportLink> theCorrespondenceMap;
136 };
137 #endif
std::map< unsigned int, int > m_direct
Definition: Hector.h:113
std::map< unsigned int, bool > m_isCharged
Definition: Hector.h:126
ZDCTransport
HepMC source to be processed.
int getDirect(unsigned int part_n) const
Definition: Hector.cc:462
float m_rpp420_f
Definition: Hector.h:93
bool m_ZDCTransport
Definition: Hector.h:133
std::map< unsigned int, double > m_eta
Definition: Hector.h:123
float m_rpp420_b
Definition: Hector.h:94
edm::ESHandle< ParticleDataTable > pdt
Definition: Hector.h:98
H_RecRPObject * m_rp420_f
Definition: Hector.h:109
std::map< unsigned int, bool > m_isStoppedzdc
Definition: Hector.h:115
bool m_verbosity
Definition: Hector.h:131
bool ev
double m_sig_e
Definition: Hector.h:88
H_BeamLine * m_beamlineZDC1
Definition: Hector.h:103
H_BeamLine * m_beamlineD11
Definition: Hector.h:105
std::map< unsigned int, bool > m_isStoppedd1
Definition: Hector.h:116
std::map< unsigned int, bool > m_isStoppedfp420
Definition: Hector.h:114
Definition: Hector.h:40
void clear()
Definition: Hector.cc:142
double m_sigmaSTX
Definition: Hector.h:90
Hector(const edm::ParameterSet &ps, bool verbosity, bool FP420Transport, bool ZDCTransport)
Definition: Hector.cc:17
FP420Transport
main flag to set transport for ZDC
std::map< unsigned int, double > m_eAtTrPoint
Definition: Hector.h:121
float m_rppd1
Definition: Hector.h:96
H_BeamLine * m_beamlineZDC2
Definition: Hector.h:104
void filterD1(TRandom3 *)
Definition: Hector.cc:386
std::map< unsigned int, double > m_pz
Definition: Hector.h:125
double lengthfp420
Definition: Hector.h:82
string beam2filename
Definition: Hector.h:129
std::map< unsigned int, double > m_TyAtTrPoint
Definition: Hector.h:120
void filterFP420(TRandom3 *)
Definition: Hector.cc:231
std::vector< LHCTransportLink > theCorrespondenceMap
Definition: Hector.h:135
double m_sigmaSTY
Definition: Hector.h:91
std::map< unsigned int, H_BeamParticle * > m_beamPart
Definition: Hector.h:112
void print() const
Definition: Hector.cc:470
virtual ~Hector()
Definition: Hector.cc:121
void filterZDC(TRandom3 *)
Definition: Hector.cc:315
H_BeamLine * m_beamlineFP4201
Definition: Hector.h:101
bool m_smearE
Definition: Hector.h:89
double etacut
Definition: Hector.h:86
string beam1filename
Definition: Hector.h:128
void add(const HepMC::GenEvent *ev, const edm::EventSetup &es)
Definition: Hector.cc:165
bool m_smearAng
Definition: Hector.h:87
std::vector< LHCTransportLink > & getCorrespondenceMap()
Definition: Hector.h:72
H_BeamLine * m_beamlineD12
Definition: Hector.h:106
H_BeamLine * m_beamlineFP4202
Definition: Hector.h:102
float m_rppzdc
Definition: Hector.h:95
HepMC::GenEvent * addPartToHepMC(HepMC::GenEvent *event)
Definition: Hector.cc:477
double lengthzdc
Definition: Hector.h:83
std::map< unsigned int, double > m_yAtTrPoint
Definition: Hector.h:118
std::map< unsigned int, int > m_pdg
Definition: Hector.h:124
std::map< unsigned int, double > m_TxAtTrPoint
Definition: Hector.h:119
std::map< unsigned int, double > m_xAtTrPoint
Definition: Hector.h:117
double lengthd1
Definition: Hector.h:84
H_RecRPObject * m_rp420_b
Definition: Hector.h:110
Definition: event.py:1
bool m_FP420Transport
Definition: Hector.h:132
void clearApertureFlags()
Definition: Hector.cc:136