forked from iLCSoft/LCTuple
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathTrackBranches.h
More file actions
101 lines (81 loc) · 4.08 KB
/
TrackBranches.h
File metadata and controls
101 lines (81 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#ifndef TrackBranches_h
#define TrackBranches_h 1
#include "LCTupleConf.h"
#include "CollectionBranches.h"
class TTree ;
namespace EVENT{
class LCCollection ;
class LCCEvent ;
}
/** TrackBranches holds branches created from a Track collection
*
* @author F. Gaede, DESY
* @version $Id$
*/
class TrackBranches : public CollectionBranches {
public:
TrackBranches() {} ;
// Following function is used to access parameters set in a steering file
void writeTrkStatesParameters(bool param){ _writeTrkStatesParameters = param; };
void writeTrkHitsParameters(bool param){ _writeTrkHitsParameters = param; };
virtual void initBranches( TTree* tree, const std::string& prefix="" ) ;
virtual void fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt ) ;
virtual ~TrackBranches() {} ;
private:
bool _writeTrkStatesParameters {} ; /* Whether to write track states parameters */
bool _writeTrkHitsParameters {} ; /* Whether to write track hits parameters */
int _ntrk {} ; // number of tracks
int _trori[ LCT_TRACK_MAX ] {} ; // track index: ext<CollID>
int _trtyp[ LCT_TRACK_MAX ] {} ; // type
float _trch2[ LCT_TRACK_MAX ] {} ; // chi2
int _trndf[ LCT_TRACK_MAX ] {} ; // ndf
float _tredx[ LCT_TRACK_MAX ] {} ; // dEdx
float _trede[ LCT_TRACK_MAX ] {} ; // dEdxError(
float _trrih[ LCT_TRACK_MAX ] {} ; // RadiusOfInnermostHit
int _trnts[ LCT_TRACK_MAX ] {} ; // number of states
int _trthn[ LCT_TRACK_MAX ] {} ; // number of hits
int _trtvhn[ LCT_TRACK_MAX ] {} ; // number of vertex hits
int _trtihn[ LCT_TRACK_MAX ] {} ; // number of inner hits
int _trtohn[ LCT_TRACK_MAX ] {} ; // number of outer hits
int _trtnh[ LCT_TRACK_MAX ] {} ; // number of holes
int _trtout[ LCT_TRACK_MAX ] {} ; // number of outliers (#hit-ndf/2)
float _trome[ LCT_TRACK_MAX ] {} ; // omega at IP state
float _trtnl[ LCT_TRACK_MAX ] {} ; // tan lambda at IP state
float _trthe[ LCT_TRACK_MAX ] {} ; // theta at IP state
float _trdze[ LCT_TRACK_MAX ] {} ; // d0 at IP state
float _trzze[ LCT_TRACK_MAX ] {} ; // z0 at IP state
float _trphi[ LCT_TRACK_MAX ] {} ; // phi at IP state
//float _trcov[ LCT_TRACK_MAX ] [15] {} ; // covariance matrix at IP state (i.e. cov)
float _trk_sigmal0[ LCT_TRACK_MAX ] {} ; // sigma L0: cov[0][0]
float _trk_sigmal1[ LCT_TRACK_MAX ] {} ; // sigma L1: cov[1][1]
float _trk_sigmaphi[ LCT_TRACK_MAX ] {} ; // sigma phi: cov[2][2]
float _trk_sigmatheta[ LCT_TRACK_MAX ] {} ; // sigma theta: cov[3][3]
float _trk_sigmaqoverp[ LCT_TRACK_MAX ] {} ; // sigma qOverp: cov[4][4]
// track states parameters
int _ntrst {} ; // total number of track states
int _trfts[ LCT_TRACK_MAX ] {} ; // track state index: ext<CollIndex>()
int _trsip[ LCT_TRACK_MAX ] {} ; // track state index atIP
int _trsfh[ LCT_TRACK_MAX ] {} ; // track state index atFirstHit
int _trslh[ LCT_TRACK_MAX ] {} ; // track state index atLastHit
int _trsca[ LCT_TRACK_MAX ] {} ; // track state index atCalorimeter
int _tsloc[ LCT_TRACKSTATE_MAX ] {} ; // location
float _tsdze[ LCT_TRACKSTATE_MAX ] {} ; // D0
float _tsphi[ LCT_TRACKSTATE_MAX ] {} ; // phi
float _tsome[ LCT_TRACKSTATE_MAX ] {} ; // omega
float _tszze[ LCT_TRACKSTATE_MAX ] {} ; // Z0
float _tstnl[ LCT_TRACKSTATE_MAX ] {} ; // TanLambda
float _tsrpx[ LCT_TRACKSTATE_MAX ] {} ; // x
float _tsrpy[ LCT_TRACKSTATE_MAX ] {} ; // y
float _tsrpz[ LCT_TRACKSTATE_MAX ] {} ; // z
float _tscov[ LCT_TRACKSTATE_MAX ][15] {} ; // covariance matrix
// track hits parameters
int _trthi[ LCT_TRACK_MAX ][50] {} ; // track hit indices
int _trthd[ LCT_TRACK_MAX ][50] {} ; // track hit subdetector
int _trshn[ LCT_TRACK_MAX ][12] {} ; // track hit per subdetector
float _trthx[ LCT_TRACK_MAX ][50] {} ; // track hit x coord
float _trthy[ LCT_TRACK_MAX ][50] {} ; // track hit y coord
float _trthz[ LCT_TRACK_MAX ][50] {} ; // track hit z coord
// EVENT::TrackVec _tracks ;
// EVENT::TrackerHitVec _hits ;
} ;
#endif