QwGeant4
QweakSimUserVDC_WirePlaneEvent.hh
Go to the documentation of this file.
1 //=============================================================================
2 //
3 // ---------------------------
4 // | Doxygen File Information |
5 // ---------------------------
6 /**
7 
8  \file QweakSimUserVDC_WirePlaneEvent.hh
9 
10  $Revision: 1.3 $
11  $Date: 2006/01/06 21:33:13 $
12 
13  \author Klaus Hans Grimm
14 
15 */
16 //=============================================================================
17 //
18 //=============================================================================
19 //
20 // ---------------------------
21 // | Doxygen Class Information |
22 // ---------------------------
23 /**
24  \class QweakSimUserVDC_WirePlaneEvent
25 
26  \ingroup root
27 
28  \brief ROOT Subtree structure for VDC WirePlaneEvent
29 
30  Region3.ChamberFront.WirePlane.xyz
31 
32  Region3.ChamberBack.WirePlane.xyz
33 
34  */
35 
36 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
37 #ifndef QweakSimUserVDC_WirePlaneEvent_h
38 #define QweakSimUserVDC_WirePlaneEvent_h
39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
40 
41 // system includes
42 #include <vector>
43 
44 // root includes
45 #include "TObject.h"
46 #include "TString.h"
47 
48 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
49 class QweakSimUserVDC_WirePlaneEvent : public TObject
50 {
51 
52 private:
53 
54  std::vector <Int_t> PackageID; ///< Package number
55  std::vector <Int_t> TrackID; ///< ID of the track from which this hit was generated
56  std::vector <Float_t> GlobalTimeOfHit; ///< Global time when this hit was generated
57 
58  Int_t NbOfHits; ///< Number of hits in this plane
59  Int_t HasBeenHit; ///< Has this plane been hit? 0 = no, 5 = yes
60 
61  /// \name Position of the hit in local coordinates
62  /// The local coordinates are defined in the \ref local_coordinate_system.
63  //@{
64  std::vector <Float_t> LocalPositionX; ///< (cm)
65  std::vector <Float_t> LocalPositionY; ///< (cm)
66  std::vector <Float_t> LocalPositionZ; ///< (cm)
67  //@}
68 
69  /// \name Position of the hit in global coordinates
70  /// The global coordinates are defined in the \ref global_coordinate_system.
71  //@{
72  std::vector <Float_t> GlobalPositionX; ///< (cm)
73  std::vector <Float_t> GlobalPositionY; ///< (cm)
74  std::vector <Float_t> GlobalPositionZ; ///< (cm)
75  //@}
76 
77  /// \name Momentum at the hit in local coordinates
78  /// The local coordinates are defined in the \ref local_coordinate_system.
79  //@{
80  std::vector <Float_t> LocalMomentumX; ///< (MeV)
81  std::vector <Float_t> LocalMomentumY; ///< (MeV)
82  std::vector <Float_t> LocalMomentumZ; ///< (MeV)
83  //@}
84 
85  /// \name Momentum of the hit in global coordinates
86  /// The global coordinates are defined in the \ref global_coordinate_system.
87  //@{
88  std::vector <Float_t> GlobalMomentumX; ///< (MeV)
89  std::vector <Float_t> GlobalMomentumY; ///< (MeV)
90  std::vector <Float_t> GlobalMomentumZ; ///< (MeV)
91  std::vector <Float_t> GlobalThetaAngle;///< (degrees)
92  std::vector <Float_t> GlobalPhiAngle; ///< (degrees, but 90 degrees rotated to keep things interesting)
93  //@}
94 
95  /// \name Position in global coordinates of original vertex of the track from which this hit was generated
96  /// The global coordinates are defined in the \ref global_coordinate_system.
97  //@{
98  std::vector <Float_t> OriginVertexPositionX; ///< (cm)
99  std::vector <Float_t> OriginVertexPositionY; ///< (cm)
100  std::vector <Float_t> OriginVertexPositionZ; ///< (cm)
101  //@}
102 
103  /// \name Direction in global coordinates of original vertex of the track from which this hit was generated
104  /// The global coordinates are defined in the \ref global_coordinate_system.
105  //@{
106  std::vector <Float_t> OriginVertexMomentumDirectionX;
107  std::vector <Float_t> OriginVertexMomentumDirectionY;
108  std::vector <Float_t> OriginVertexMomentumDirectionZ;
109  std::vector <Float_t> OriginVertexThetaAngle; ///< (degrees)
110  std::vector <Float_t> OriginVertexPhiAngle; ///< (degrees)
111  //@}
112 
113  /// \name Total and kinetic energy at the original vertex of the track from which this hit was generated
114  //@{
115  std::vector <Float_t> OriginVertexTotalEnergy; ///< (MeV)
116  std::vector <Float_t> OriginVertexKineticEnergy; ///< (MeV)
117  //@}
118 
119  /// \name Particle name and type at the hit
120  //@{
121  std::vector <TString> ParticleName; ///< Name of the particle that caused this hit
122  std::vector <Int_t> ParticleType; ///< \ref Lund_type of the particle that caused this hit (until r4757 this used the \ref geant3_type of the particle)
123  //@}
124 
125  /// \name Total and kinetic energy of the track at the hit
126  //@{
127  std::vector <Float_t> TotalEnergy; ///< (MeV)
128  std::vector <Float_t> KineticEnergy; ///< (MeV)
129  //@}
130 
131 public:
132 
133  // Constructor
135  // Destructor
137 
138  void Initialize();
139  void Clear(const Option_t* = 0);
140 
141  void StoreNbOfHits(Int_t noh) { NbOfHits = noh; }
142  Int_t GetNbOfHits() const {return NbOfHits;}
143 
144  void StorePackageID(Int_t pid) { PackageID.push_back(pid); }
145  std::vector <Int_t> GetPackageID() const {return PackageID;}
146 
147  void StoreTrackID(Int_t tid) { TrackID.push_back(tid); }
148  std::vector <Int_t> GetTrackID() const {return TrackID;}
149 
150 
151  void StoreParticleName(TString pn) { ParticleName.push_back(pn); }
152  std::vector <TString> GetParticleName() const {return ParticleName;}
153 
154  void StoreParticleType(Int_t pt) { ParticleType.push_back(pt); }
155  std::vector <Int_t> GetParticleType() const {return ParticleType;}
156 
157 
158  void StoreGlobalTimeOfHit(Float_t gtime) { GlobalTimeOfHit.push_back(gtime); }
159  std::vector <Float_t> GetGlobalTimeOfHit() const {return GlobalTimeOfHit;}
160 
161  void StoreTotalEnergy(Float_t te) { TotalEnergy.push_back(te); }
162  std::vector <Float_t> GetTotalEnergy() const {return TotalEnergy;}
163 
164  void StoreKineticEnergy(Float_t ke) { KineticEnergy.push_back(ke); }
165  std::vector <Float_t> GetKineticEnergy() const {return KineticEnergy;}
166 
167  void StoreHasBeenHit(Int_t nu) { HasBeenHit = nu; }
168  Int_t GetHasBeenHit() const {return HasBeenHit;}
169 
170  //-----------------
171  void StoreLocalPositionX(Float_t lx) { LocalPositionX.push_back(lx); }
172  std::vector <Float_t> GetLocalPositionX() const {return LocalPositionX;}
173 
174  void StoreLocalPositionY(Float_t ly) { LocalPositionY.push_back(ly); }
175  std::vector <Float_t> GetLocalPositionY() const {return LocalPositionY;}
176 
177  void StoreLocalPositionZ(Float_t lz) { LocalPositionZ.push_back(lz); }
178  std::vector <Float_t> GetLocalPositionZ() const {return LocalPositionZ;}
179  //---
180  void StoreGlobalPositionX(Float_t lx) { GlobalPositionX.push_back(lx); }
181  std::vector <Float_t> GetGlobalPositionX() const {return GlobalPositionX;}
182 
183  void StoreGlobalPositionY(Float_t ly) { GlobalPositionY.push_back(ly); }
184  std::vector <Float_t> GetGlobalPositionY() const {return GlobalPositionY;}
185 
186  void StoreGlobalPositionZ(Float_t lz) { GlobalPositionZ.push_back(lz); }
187  std::vector <Float_t> GetGlobalPositionZ() const {return GlobalPositionZ;}
188 
189  //-----------------
190 
191  void StoreLocalMomentumX(Float_t lpx) { LocalMomentumX.push_back(lpx); }
192  std::vector <Float_t> GetLocalMomentumX() const {return LocalMomentumX;}
193 
194  void StoreLocalMomentumY(Float_t lpy) { LocalMomentumY.push_back(lpy); }
195  std::vector <Float_t> GetLocalMomentumY() const {return LocalMomentumY;}
196 
197  void StoreLocalMomentumZ(Float_t lpz) { LocalMomentumZ.push_back(lpz); }
198  std::vector <Float_t> GetLocalMomentumZ() const {return LocalMomentumZ;}
199  //---
200  void StoreGlobalMomentumX(Float_t gpx) { GlobalMomentumX.push_back(gpx); }
201  std::vector <Float_t> GetGlobalMomentumX() const {return GlobalMomentumX;}
202 
203  void StoreGlobalMomentumY(Float_t gpy) { GlobalMomentumY.push_back(gpy); }
204  std::vector <Float_t> GetGlobalMomentumY() const {return GlobalMomentumY;}
205 
206  void StoreGlobalMomentumZ(Float_t gpz) { GlobalMomentumZ.push_back(gpz); }
207  std::vector <Float_t> GetGlobalMomentumZ() const {return GlobalMomentumZ;}
208 
209 
210  void StoreGlobalThetaAngle(Float_t theta) { GlobalThetaAngle.push_back(theta); }
211  std::vector <Float_t> GetGlobalThetaAngle() const {return GlobalThetaAngle;}
212 
213  void StoreGlobalPhiAngle(Float_t phi) { GlobalPhiAngle.push_back(phi); }
214  std::vector <Float_t> GetGlobalPhiAngle() const {return GlobalPhiAngle;}
215 
216  //-----------------
217  void StoreOriginVertexPositionX(Float_t vx) { OriginVertexPositionX.push_back(vx); }
218  std::vector <Float_t> GetOriginVertexPositionX() const {return OriginVertexPositionX;}
219 
220  void StoreOriginVertexPositionY(Float_t vy) { OriginVertexPositionY.push_back(vy); }
221  std::vector <Float_t> GetOriginVertexPositionY() const {return OriginVertexPositionY;}
222 
223  void StoreOriginVertexPositionZ(Float_t vz) { OriginVertexPositionZ.push_back(vz); }
224  std::vector <Float_t> GetOriginVertexPositionZ() const {return OriginVertexPositionZ;}
225  //-----------------
228 
231 
234  //-----------------
235  void StoreOriginVertexThetaAngle(Float_t theta) { OriginVertexThetaAngle.push_back(theta); }
236  std::vector <Float_t> GetOriginVertexThetaAngle() const {return OriginVertexThetaAngle;}
237 
238  void StoreOriginVertexPhiAngle(Float_t phi) { OriginVertexPhiAngle.push_back(phi); }
239  std::vector <Float_t> GetOriginVertexPhiAngle() const {return OriginVertexPhiAngle;}
240  //-----------------
241  void StoreOriginVertexKineticEnergy(Float_t ekin) { OriginVertexKineticEnergy.push_back(ekin); }
242  std::vector <Float_t> GetOriginVertexKineticEnergy() const {return OriginVertexKineticEnergy;}
243 
244  void StoreOriginVertexTotalEnergy(Float_t etot) { OriginVertexTotalEnergy.push_back(etot); }
245  std::vector <Float_t> GetOriginVertexTotalEnergy() const {return OriginVertexTotalEnergy;}
246  //-----------------
247 
248  // define a new Class known to ROOT
250 
251 }; // end class QweakSimUserVDC_WirePlaneEvent
252 
253 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
254 
255 #endif
std::vector< Float_t > GetGlobalThetaAngle() const
std::vector< Int_t > GetPackageID() const
std::vector< Float_t > GetGlobalPositionZ() const
std::vector< Float_t > GetLocalPositionY() const
Int_t NbOfHits
Number of hits in this plane.
std::vector< Float_t > GlobalMomentumX
(MeV)
std::vector< Float_t > OriginVertexPhiAngle
(degrees)
std::vector< Int_t > PackageID
Package number.
std::vector< Float_t > OriginVertexKineticEnergy
(MeV)
std::vector< Float_t > GetGlobalMomentumZ() const
std::vector< Int_t > GetParticleType() const
std::vector< Float_t > OriginVertexPositionX
(cm)
std::vector< Float_t > GetLocalMomentumZ() const
std::vector< Float_t > OriginVertexTotalEnergy
(MeV)
std::vector< Int_t > ParticleType
Lund type of the particle that caused this hit (until r4757 this used the geant3 type of the particle...
std::vector< Float_t > OriginVertexThetaAngle
(degrees)
std::vector< Float_t > GetGlobalMomentumY() const
std::vector< Float_t > GlobalTimeOfHit
Global time when this hit was generated.
std::vector< Float_t > GetOriginVertexPositionZ() const
std::vector< Float_t > GetLocalMomentumX() const
std::vector< Float_t > GetOriginVertexPhiAngle() const
std::vector< Float_t > GetOriginVertexMomentumDirectionY() const
std::vector< Float_t > GetGlobalMomentumX() const
Int_t HasBeenHit
Has this plane been hit? 0 = no, 5 = yes.
std::vector< Float_t > LocalMomentumY
(MeV)
std::vector< Float_t > GetOriginVertexMomentumDirectionZ() const
std::vector< TString > ParticleName
Name of the particle that caused this hit.
std::vector< Float_t > GlobalPhiAngle
(degrees, but 90 degrees rotated to keep things interesting)
std::vector< Float_t > GetOriginVertexPositionY() const
std::vector< Float_t > GetOriginVertexTotalEnergy() const
std::vector< Float_t > LocalMomentumX
(MeV)
ROOT Subtree structure for VDC WirePlaneEvent.
std::vector< Float_t > OriginVertexPositionY
(cm)
std::vector< Float_t > GetKineticEnergy() const
std::vector< Float_t > GetLocalPositionX() const
std::vector< Float_t > GetLocalMomentumY() const
std::vector< Int_t > TrackID
ID of the track from which this hit was generated.
std::vector< Float_t > OriginVertexPositionZ
(cm)
std::vector< Float_t > GetGlobalPhiAngle() const
std::vector< Float_t > GetTotalEnergy() const
std::vector< Float_t > GlobalMomentumZ
(MeV)
std::vector< Float_t > GetLocalPositionZ() const
std::vector< Float_t > GetOriginVertexThetaAngle() const
std::vector< Float_t > LocalMomentumZ
(MeV)
std::vector< Float_t > GetOriginVertexPositionX() const
std::vector< Float_t > GlobalMomentumY
(MeV)
std::vector< Float_t > GetOriginVertexKineticEnergy() const
std::vector< Float_t > GetGlobalPositionX() const
std::vector< Float_t > GlobalThetaAngle
(degrees)
std::vector< Float_t > GetGlobalTimeOfHit() const
std::vector< Float_t > GetGlobalPositionY() const
std::vector< TString > GetParticleName() const
std::vector< Float_t > GetOriginVertexMomentumDirectionX() const