ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_HitCollection_p3.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRTHITCOLLECTION_P3_H
6#define TRTHITCOLLECTION_P3_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 See http://cern.ch/beddall/TRThitCompression/
12*/
13
14#include <vector>
15#include <string>
16
18{
19 public:
22
23 // private:
24
25 //
26 // 1 element per string (a string resides in one straw; there may be more than one string in a straw)
27 //
28
29 std::vector<unsigned short> m_nHits; // number of hits in the string (0,1,2 ... ,hundreds).
30 std::vector<unsigned short> m_strawId2b; // straw id | 24-bit
31 std::vector<unsigned char> m_strawId1b; // straw id | integer.
32 std::vector<unsigned char> m_startR; // hit start radius (0, 2 mm) [not always stored].
33 std::vector<unsigned char> m_startPhi; // hit start phi (-pi, pi).
34 std::vector<unsigned char> m_startZ; // hit start z (-365, +365 mm), and 1-bit startRflag.
35
36 //
37 // 1 element per hit, there are typically 1 or 2 hits per string, but can be hundreds!
38 //
39
40 std::vector<unsigned short> m_kinEne; // short float, kinematic energy of the particle causing the hit.
41 std::vector<unsigned short> m_steplength; // short float, g4 step length; endZ is derived from this.
42 std::vector<unsigned char> m_endR; // hit end radius (0, 2 mm) [Not always stored].
43 std::vector<unsigned char> m_endPhi; // hit end phi (-pi, pi).
44 std::vector<unsigned short> m_meanTime; // time to center of the hit, and 1-bit idZsign and 1-bit endRflag.
45 std::vector<float> m_meanTimeof; // t >= 75 ns overflow to a float.
46
47 //
48 // much less frequent
49 //
50
51 std::vector<float> m_hitEne; // energy deposited; *only stored for photons* (m_id=22)
52 std::vector<unsigned short> m_nId;
53 std::vector<unsigned int> m_barcode;
54 std::vector<unsigned short> m_nBC;
55 std::vector<int> m_id; // particle code.
56
57};
58
59// inlines
60
61inline
63
64#endif
std::vector< unsigned short > m_kinEne
std::vector< unsigned char > m_startPhi
std::vector< unsigned char > m_endR
std::vector< unsigned char > m_startR
std::vector< unsigned int > m_barcode
std::vector< unsigned short > m_meanTime
std::vector< unsigned char > m_endPhi
TRT_HitCollection_p3()
Default constructor.
std::vector< unsigned short > m_nBC
std::vector< int > m_id
std::vector< unsigned short > m_nId
std::vector< unsigned short > m_strawId2b
std::vector< float > m_meanTimeof
std::vector< unsigned short > m_steplength
std::vector< unsigned char > m_strawId1b
std::vector< unsigned char > m_startZ
std::vector< unsigned short > m_nHits
std::vector< float > m_hitEne