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