CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
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
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
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
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
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
bool m_FP420Transport
Definition: Hector.h:132
void clearApertureFlags()
Definition: Hector.cc:136