ATLAS Offline Software
TRT_HitCollection_p5.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETSIMEVENTTPCNV_TRTHITCOLLECTION_P5_H
6 #define INDETSIMEVENTTPCNV_TRTHITCOLLECTION_P5_H
7 
8 /*
9  Author: Rob Duxfield <r.duxfield@sheffield.ac.uk> Spring 2008
10  _p3 Integer compression: <Andrew.Beddall@cern.ch> Spring 2009
11  _p4 HepMcParticleLink_p2 <Olivier.Arnaez@cern.ch> Fall 2015
12  _p5 HepMcParticleLink_p3
13  See http://cern.ch/beddall/TRThitCompression/
14 */
15 
16 #include <vector>
17 #include <string>
18 
20 {
21  public:
24 
25  //private:
26 
27  //
28  // 1 element per string (a string resides in one straw; there may be more than one string in a straw)
29  //
30 
31  std::vector<unsigned short> m_nHits; // number of hits in the string (0,1,2 ... ,hundreds).
32  std::vector<unsigned short> m_strawId2b; // straw id | 24-bit
33  std::vector<unsigned char> m_strawId1b; // straw id | integer.
34  std::vector<unsigned char> m_startR; // hit start radius (0, 2 mm) [not always stored].
35  std::vector<unsigned char> m_startPhi; // hit start phi (-pi, pi).
36  std::vector<unsigned char> m_startZ; // hit start z (-365, +365 mm), and 1-bit startRflag.
37 
38  //
39  // 1 element per hit, there are typically 1 or 2 hits per string, but can be hundreds!
40  //
41 
42  std::vector<unsigned short> m_kinEne; // short float, kinematic energy of the particle causing the hit.
43  std::vector<unsigned short> m_steplength; // short float, g4 step length; endZ is derived from this.
44  std::vector<unsigned char> m_endR; // hit end radius (0, 2 mm) [Not always stored].
45  std::vector<unsigned char> m_endPhi; // hit end phi (-pi, pi).
46  std::vector<unsigned short> m_meanTime; // time to center of the hit, and 1-bit idZsign and 1-bit endRflag.
47  std::vector<float> m_meanTimeof; // t >= 75 ns overflow to a float.
48 
49  //
50  // much less frequent
51  //
52 
53  std::vector<float> m_hitEne; // energy deposited; *only stored for photons* (m_id=22)
54  std::vector<unsigned short> m_nId;
55  std::vector<unsigned int> m_truthID;
56  std::vector<unsigned short> m_mcEvtIndex;
57  std::vector<char> m_truthSupp;
58  std::vector<unsigned short> m_nTruthID;
59  std::vector<int> m_id; // particle code.
60 
61 };
62 
63 // inlines
64 
65 inline
67 
68 #endif // INDETSIMEVENTTPCNV_TRTHITCOLLECTION_P5_H
TRT_HitCollection_p5::m_strawId2b
std::vector< unsigned short > m_strawId2b
Definition: TRT_HitCollection_p5.h:32
TRT_HitCollection_p5::m_mcEvtIndex
std::vector< unsigned short > m_mcEvtIndex
Definition: TRT_HitCollection_p5.h:56
TRT_HitCollection_p5::m_endR
std::vector< unsigned char > m_endR
Definition: TRT_HitCollection_p5.h:44
TRT_HitCollection_p5::m_startZ
std::vector< unsigned char > m_startZ
Definition: TRT_HitCollection_p5.h:36
TRT_HitCollection_p5::m_startPhi
std::vector< unsigned char > m_startPhi
Definition: TRT_HitCollection_p5.h:35
TRT_HitCollection_p5::m_strawId1b
std::vector< unsigned char > m_strawId1b
Definition: TRT_HitCollection_p5.h:33
TRT_HitCollection_p5::m_endPhi
std::vector< unsigned char > m_endPhi
Definition: TRT_HitCollection_p5.h:45
TRT_HitCollection_p5::m_meanTime
std::vector< unsigned short > m_meanTime
Definition: TRT_HitCollection_p5.h:46
TRT_HitCollection_p5::m_hitEne
std::vector< float > m_hitEne
Definition: TRT_HitCollection_p5.h:53
TRT_HitCollection_p5::m_truthSupp
std::vector< char > m_truthSupp
Definition: TRT_HitCollection_p5.h:57
TRT_HitCollection_p5
Definition: TRT_HitCollection_p5.h:20
TRT_HitCollection_p5::m_nTruthID
std::vector< unsigned short > m_nTruthID
Definition: TRT_HitCollection_p5.h:58
TRT_HitCollection_p5::m_truthID
std::vector< unsigned int > m_truthID
Definition: TRT_HitCollection_p5.h:55
TRT_HitCollection_p5::m_steplength
std::vector< unsigned short > m_steplength
Definition: TRT_HitCollection_p5.h:43
TRT_HitCollection_p5::m_nHits
std::vector< unsigned short > m_nHits
Definition: TRT_HitCollection_p5.h:31
TRT_HitCollection_p5::m_id
std::vector< int > m_id
Definition: TRT_HitCollection_p5.h:59
TRT_HitCollection_p5::m_meanTimeof
std::vector< float > m_meanTimeof
Definition: TRT_HitCollection_p5.h:47
TRT_HitCollection_p5::m_kinEne
std::vector< unsigned short > m_kinEne
Definition: TRT_HitCollection_p5.h:42
TRT_HitCollection_p5::TRT_HitCollection_p5
TRT_HitCollection_p5()
Default constructor.
Definition: TRT_HitCollection_p5.h:66
TRT_HitCollection_p5::m_startR
std::vector< unsigned char > m_startR
Definition: TRT_HitCollection_p5.h:34
TRT_HitCollection_p5::m_nId
std::vector< unsigned short > m_nId
Definition: TRT_HitCollection_p5.h:54