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/EDAnalyzer.h"
9 #include "FWCore/Framework/interface/Frameworkfwd.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/GenParticle.h"
22 #include "HepMC/GenVertex.h"
24 
26 #include <vector>
27 
28 // SimpleConfigurable replacement
30 
31 // Hector headers
32 #include "H_BeamLine.h"
33 #include "H_BeamParticle.h"
34 #include "H_RecRPObject.h"
35 #include <map>
36 #include <string>
37 
38 class TRandom3;
39 
40 class Hector {
41 public:
42  // Hector(const edm::ParameterSet & ps);
43  Hector(const edm::ParameterSet &ps, bool verbosity, bool FP420Transport, bool ZDCTransport);
44  // Hector();
45  virtual ~Hector();
46 
48  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;
67  // std::vector<unsigned int> part_list() const;
68 
69  // bool isCharged(const HepMC::GenParticle * p);
70 
72 
73  std::vector<LHCTransportLink> &getCorrespondenceMap() { return theCorrespondenceMap; }
74 
75  /*
76  private:
77  // edm::ParameterSet m_pBeamLine;
78  */
79 private:
80  // Defaults
81  double lengthfp420;
82  double lengthzdc;
83  double lengthd1;
84 
85  double etacut;
86  bool m_smearAng;
87  double m_sig_e;
88  bool m_smearE;
89  double m_sigmaSTX;
90  double m_sigmaSTY;
91 
92  float m_rpp420_f;
93  float m_rpp420_b;
94  float m_rppzdc;
95  float m_rppd1;
96 
98 
99  // Hector
100  H_BeamLine *m_beamlineFP4201;
101  H_BeamLine *m_beamlineFP4202;
102  H_BeamLine *m_beamlineZDC1;
103  H_BeamLine *m_beamlineZDC2;
104  H_BeamLine *m_beamlineD11;
105  H_BeamLine *m_beamlineD12;
106  //
107 
108  H_RecRPObject *m_rp420_f;
109  H_RecRPObject *m_rp420_b;
110 
111  std::map<unsigned int, H_BeamParticle *> m_beamPart;
112  std::map<unsigned int, int> m_direct;
113  std::map<unsigned int, bool> m_isStoppedfp420;
114  std::map<unsigned int, bool> m_isStoppedzdc;
115  std::map<unsigned int, bool> m_isStoppedd1;
116  std::map<unsigned int, double> m_xAtTrPoint;
117  std::map<unsigned int, double> m_yAtTrPoint;
118  std::map<unsigned int, double> m_TxAtTrPoint;
119  std::map<unsigned int, double> m_TyAtTrPoint;
120  std::map<unsigned int, double> m_eAtTrPoint;
121 
122  std::map<unsigned int, double> m_eta;
123  std::map<unsigned int, int> m_pdg;
124  std::map<unsigned int, double> m_pz;
125  std::map<unsigned int, bool> m_isCharged;
126 
129 
133 
134  std::vector<LHCTransportLink> theCorrespondenceMap;
135 };
136 #endif
HIPAlignmentAlgorithm_cfi.verbosity
verbosity
Definition: HIPAlignmentAlgorithm_cfi.py:7
Hector::addPartToHepMC
HepMC::GenEvent * addPartToHepMC(HepMC::GenEvent *event)
Definition: Hector.cc:503
Hector::m_verbosity
bool m_verbosity
Definition: Hector.h:130
Hector::m_TyAtTrPoint
std::map< unsigned int, double > m_TyAtTrPoint
Definition: Hector.h:119
Hector::m_isStoppedd1
std::map< unsigned int, bool > m_isStoppedd1
Definition: Hector.h:115
ESHandle.h
Hector::m_isStoppedfp420
std::map< unsigned int, bool > m_isStoppedfp420
Definition: Hector.h:113
Hector::theCorrespondenceMap
std::vector< LHCTransportLink > theCorrespondenceMap
Definition: Hector.h:134
Hector::m_xAtTrPoint
std::map< unsigned int, double > m_xAtTrPoint
Definition: Hector.h:116
Hector::~Hector
virtual ~Hector()
Definition: Hector.cc:133
Hector::m_sigmaSTX
double m_sigmaSTX
Definition: Hector.h:89
Hector::etacut
double etacut
Definition: Hector.h:85
Hector::m_FP420Transport
bool m_FP420Transport
Definition: Hector.h:131
Hector::m_beamlineZDC2
H_BeamLine * m_beamlineZDC2
Definition: Hector.h:103
Hector::beam1filename
string beam1filename
Definition: Hector.h:127
Hector::m_beamlineD12
H_BeamLine * m_beamlineD12
Definition: Hector.h:105
Hector::m_smearE
bool m_smearE
Definition: Hector.h:88
Hector::filterD1
void filterD1(TRandom3 *)
Definition: Hector.cc:402
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
Hector::lengthfp420
double lengthfp420
Definition: Hector.h:81
Hector::add
void add(const HepMC::GenEvent *ev, const edm::EventSetup &es)
Definition: Hector.cc:164
Hector::m_smearAng
bool m_smearAng
Definition: Hector.h:86
Hector::m_TxAtTrPoint
std::map< unsigned int, double > m_TxAtTrPoint
Definition: Hector.h:118
Hector::m_sigmaSTY
double m_sigmaSTY
Definition: Hector.h:90
Hector::m_yAtTrPoint
std::map< unsigned int, double > m_yAtTrPoint
Definition: Hector.h:117
Hector::getCorrespondenceMap
std::vector< LHCTransportLink > & getCorrespondenceMap()
Definition: Hector.h:73
Hector::m_pdg
std::map< unsigned int, int > m_pdg
Definition: Hector.h:123
edm::ESHandle< ParticleDataTable >
Hector::getDirect
int getDirect(unsigned int part_n) const
Definition: Hector.cc:489
Hector
Definition: Hector.h:40
HectorTransport_cfi.ZDCTransport
ZDCTransport
HepMC source to be processed.
Definition: HectorTransport_cfi.py:6
Hector::clear
void clear()
Definition: Hector.cc:152
Hector::m_direct
std::map< unsigned int, int > m_direct
Definition: Hector.h:112
edm::ParameterSet
Definition: ParameterSet.h:47
ParticleDataTable.h
Hector::clearApertureFlags
void clearApertureFlags()
Definition: Hector.cc:146
Hector::m_beamlineFP4202
H_BeamLine * m_beamlineFP4202
Definition: Hector.h:101
Hector::m_isCharged
std::map< unsigned int, bool > m_isCharged
Definition: Hector.h:125
edm::EventSetup
Definition: EventSetup.h:57
Hector::m_rppzdc
float m_rppzdc
Definition: Hector.h:94
Hector::m_rpp420_f
float m_rpp420_f
Definition: Hector.h:92
Hector::m_sig_e
double m_sig_e
Definition: Hector.h:87
Hector::lengthd1
double lengthd1
Definition: Hector.h:83
Hector::lengthzdc
double lengthzdc
Definition: Hector.h:82
Hector::m_ZDCTransport
bool m_ZDCTransport
Definition: Hector.h:132
HectorTransport_cfi.FP420Transport
FP420Transport
main flag to set transport for ZDC
Definition: HectorTransport_cfi.py:7
Hector::filterFP420
void filterFP420(TRandom3 *)
Definition: Hector.cc:227
Hector::m_rpp420_b
float m_rpp420_b
Definition: Hector.h:93
Hector::m_rp420_f
H_RecRPObject * m_rp420_f
Definition: Hector.h:108
Hector::m_beamPart
std::map< unsigned int, H_BeamParticle * > m_beamPart
Definition: Hector.h:111
Hector::print
void print() const
Definition: Hector.cc:497
Hector::m_eta
std::map< unsigned int, double > m_eta
Definition: Hector.h:122
Hector::m_eAtTrPoint
std::map< unsigned int, double > m_eAtTrPoint
Definition: Hector.h:120
Hector::m_isStoppedzdc
std::map< unsigned int, bool > m_isStoppedzdc
Definition: Hector.h:114
Hector::m_rp420_b
H_RecRPObject * m_rp420_b
Definition: Hector.h:109
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
EventSetup.h
Hector::m_beamlineZDC1
H_BeamLine * m_beamlineZDC1
Definition: Hector.h:102
Hector::pdt
edm::ESHandle< ParticleDataTable > pdt
Definition: Hector.h:97
Hector::m_beamlineD11
H_BeamLine * m_beamlineD11
Definition: Hector.h:104
Hector::filterZDC
void filterZDC(TRandom3 *)
Definition: Hector.cc:319
Hector::m_beamlineFP4201
H_BeamLine * m_beamlineFP4201
Definition: Hector.h:100
Hector::m_pz
std::map< unsigned int, double > m_pz
Definition: Hector.h:124
Hector::m_rppd1
float m_rppd1
Definition: Hector.h:95
ParameterSet.h
Hector::Hector
Hector(const edm::ParameterSet &ps, bool verbosity, bool FP420Transport, bool ZDCTransport)
Definition: Hector.cc:17
HepMCProduct.h
event
Definition: event.py:1
Hector::beam2filename
string beam2filename
Definition: Hector.h:128