Line data Source code
1 : #ifndef _ALINANOAODTRACKMAPPING_H_
2 : #define _ALINANOAODTRACKMAPPING_H_
3 :
4 : #include "TObject.h"
5 : #include "TFile.h"
6 : #include "AliLog.h"
7 : #include "TSystem.h"
8 : #include "TTree.h"
9 : #include "TDirectory.h"
10 :
11 0 : class AliNanoAODTrackMapping : public TObject
12 : {
13 : public:
14 : AliNanoAODTrackMapping();
15 : AliNanoAODTrackMapping(const char * mappingString);
16 0 : virtual ~AliNanoAODTrackMapping(){;}
17 :
18 : void Print(const Option_t * opt = "") const;
19 :
20 : static AliNanoAODTrackMapping * GetInstance(const char * vars = 0) {
21 0 : if(!fInstance) {
22 0 : if (vars) fInstance = new AliNanoAODTrackMapping(vars);
23 0 : else LoadInstance() ;
24 : }
25 :
26 0 : return fInstance;
27 0 : }
28 :
29 :
30 : const char * GetVarName(Int_t index) const;
31 : Int_t GetVarIndex(TString varName); // cannot be const (uses stl map)
32 :
33 : //TODO: implement custom variables
34 :
35 : // Getters
36 : // Internal
37 0 : Int_t GetSize() const { return fSize; }
38 : // Kin vars
39 0 : Int_t GetPt() const { return fPt; }
40 0 : Int_t GetPhi() const { return fPhi; }
41 0 : Int_t GetTheta() const { return fTheta; }
42 0 : Int_t GetChi2PerNDF() const { return fChi2PerNDF; }
43 0 : Int_t GetPosX() const { return fPosX; }
44 0 : Int_t GetPosY() const { return fPosY; }
45 0 : Int_t GetPosZ() const { return fPosZ; }
46 0 : Int_t GetPDCAX() const { return fPDCAX; }
47 0 : Int_t GetPDCAY() const { return fPDCAY; }
48 0 : Int_t GetPDCAZ() const { return fPDCAZ; }
49 0 : Int_t GetPosDCAx() const { return fPosDCAx; }
50 0 : Int_t GetPosDCAy() const { return fPosDCAy; }
51 0 : Int_t GetRAtAbsorberEnd() const { return fRAtAbsorberEnd; }
52 0 : Int_t GetTPCncls() const { return fTPCncls; }
53 0 : Int_t Getid() const { return fid; }
54 0 : Int_t GetTPCnclsF() const { return fTPCnclsF; }
55 0 : Int_t GetTPCNCrossedRows() const { return fTPCNCrossedRows; }
56 0 : Int_t GetTrackPhiOnEMCal() const { return fTrackPhiOnEMCal; }
57 0 : Int_t GetTrackEtaOnEMCal() const { return fTrackEtaOnEMCal; }
58 0 : Int_t GetTrackPtOnEMCal() const { return fTrackPtOnEMCal; }
59 0 : Int_t GetITSsignal() const { return fITSsignal; }
60 0 : Int_t GetTPCsignal() const { return fTPCsignal; }
61 0 : Int_t GetTPCsignalTuned() const { return fTPCsignalTuned; }
62 0 : Int_t GetTPCsignalN() const { return fTPCsignalN; }
63 0 : Int_t GetTPCmomentum() const { return fTPCmomentum; }
64 0 : Int_t GetTPCTgl() const { return fTPCTgl; }
65 0 : Int_t GetTOFsignal() const { return fTOFsignal; }
66 0 : Int_t GetintegratedLenght() const { return fintegratedLenght; }
67 0 : Int_t GetTOFsignalTuned() const { return fTOFsignalTuned; }
68 0 : Int_t GetHMPIDsignal() const { return fHMPIDsignal; }
69 0 : Int_t GetHMPIDoccupancy() const { return fHMPIDoccupancy; }
70 0 : Int_t GetTRDsignal() const { return fTRDsignal; }
71 0 : Int_t GetTRDChi2() const { return fTRDChi2; }
72 0 : Int_t GetTRDnSlices() const { return fTRDnSlices; }
73 0 : Int_t Getcovmat() const { return fcovmat; }
74 :
75 : // TODO: implement custom variables
76 :
77 :
78 : private:
79 :
80 : static void LoadInstance() ;
81 :
82 : Int_t fSize; // Number of variables actually allocated
83 : void SetSize (Int_t var) { fSize = var;}
84 : // FIXME: should this be static?
85 : Int_t fPt; // Mapping variable
86 : Int_t fPhi; // Mapping variable
87 : Int_t fTheta; // Mapping variable
88 : Int_t fChi2PerNDF; // Mapping variable
89 : Int_t fPosX; // Mapping variable
90 : Int_t fPosY; // Mapping variable
91 : Int_t fPosZ; // Mapping variable
92 : Int_t fPDCAX; // Mapping variable
93 : Int_t fPDCAY; // Mapping variable
94 : Int_t fPDCAZ; // Mapping variable
95 : Int_t fPosDCAx; // Mapping variable
96 : Int_t fPosDCAy; // Mapping variable
97 : Int_t fRAtAbsorberEnd; // Mapping variable
98 : Int_t fTPCncls; // Mapping variable
99 : Int_t fid; // Mapping variable
100 : Int_t fTPCnclsF; // Mapping variable
101 : Int_t fTPCNCrossedRows; // Mapping variable
102 : Int_t fTrackPhiOnEMCal; // Mapping variable
103 : Int_t fTrackEtaOnEMCal; // Mapping variable
104 : Int_t fTrackPtOnEMCal; // Mapping variable
105 : Int_t fITSsignal; // Mapping variable
106 : Int_t fTPCsignal; // Mapping variable
107 : Int_t fTPCsignalTuned; // Mapping variable
108 : Int_t fTPCsignalN; // Mapping variable
109 : Int_t fTPCmomentum; // Mapping variable
110 : Int_t fTPCTgl; // Mapping variable
111 : Int_t fTOFsignal; // Mapping variable
112 : Int_t fintegratedLenght;// Mapping variable
113 : Int_t fTOFsignalTuned; // Mapping variable
114 : Int_t fHMPIDsignal; // Mapping variable
115 : Int_t fHMPIDoccupancy; // Mapping variable
116 : Int_t fTRDsignal; // Mapping variable
117 : Int_t fTRDChi2; // Mapping variable
118 : Int_t fTRDnSlices; // Mapping variable
119 : Int_t fcovmat; // Mapping variable
120 :
121 : // Setters are private because we don't want the mapping to change once the class has been instantiated
122 : void SetPt (Int_t var) { fPt = var; }
123 : void SetPhi (Int_t var) { fPhi = var; }
124 : void SetTheta (Int_t var) { fTheta = var; }
125 : void SetChi2PerNDF (Int_t var) { fChi2PerNDF = var; }
126 : void SetPosX (Int_t var) { fPosX = var; }
127 : void SetPosY (Int_t var) { fPosY = var; }
128 : void SetPosZ (Int_t var) { fPosZ = var; }
129 : void SetPDCAX (Int_t var) { fPDCAX = var; }
130 : void SetPDCAY (Int_t var) { fPDCAY = var; }
131 : void SetPDCAZ (Int_t var) { fPDCAZ = var; }
132 : void SetPosDCAx (Int_t var) { fPosDCAx = var; }
133 : void SetPosDCAy (Int_t var) { fPosDCAy = var; }
134 : void SetRAtAbsorberEnd (Int_t var) { fRAtAbsorberEnd = var; }
135 : void SetTPCncls (Int_t var) { fTPCncls = var; }
136 : void Setid (Int_t var) { fid = var; }
137 : void SetTPCnclsF (Int_t var) { fTPCnclsF = var; }
138 : void SetTPCNCrossedRows (Int_t var) { fTPCNCrossedRows = var; }
139 : void SetTrackPhiOnEMCal (Int_t var) { fTrackPhiOnEMCal = var; }
140 : void SetTrackEtaOnEMCal (Int_t var) { fTrackEtaOnEMCal = var; }
141 : void SetTrackPtOnEMCal (Int_t var) { fTrackPtOnEMCal = var; }
142 : void SetITSsignal (Int_t var) { fITSsignal = var; }
143 : void SetTPCsignal (Int_t var) { fTPCsignal = var; }
144 : void SetTPCsignalTuned (Int_t var) { fTPCsignalTuned = var; }
145 : void SetTPCsignalN (Int_t var) { fTPCsignalN = var; }
146 : void SetTPCmomentum (Int_t var) { fTPCmomentum = var; }
147 : void SetTPCTgl (Int_t var) { fTPCTgl = var; }
148 : void SetTOFsignal (Int_t var) { fTOFsignal = var; }
149 : void SetintegratedLenght (Int_t var) { fintegratedLenght = var; }
150 : void SetTOFsignalTuned (Int_t var) { fTOFsignalTuned = var; }
151 : void SetHMPIDsignal (Int_t var) { fHMPIDsignal = var; }
152 : void SetHMPIDoccupancy (Int_t var) { fHMPIDoccupancy = var; }
153 : void SetTRDsignal (Int_t var) { fTRDsignal = var; }
154 : void SetTRDChi2 (Int_t var) { fTRDChi2 = var; }
155 : void SetTRDnSlices (Int_t var) { fTRDnSlices = var; }
156 : void Setcovmat (Int_t var) { fcovmat = var; }
157 :
158 : static AliNanoAODTrackMapping * fInstance; //instance, needed for the singleton implementation
159 : static TString fMappingString; // the string which this class was initialized with
160 : std::map<TString,int> fMapCstVar;// Map of indexes of custom variables: CACHE THIS TO CONST INTs IN YOUR TASK TO AVOID CONTINUOUS STRING COMPARISONS
161 170 : ClassDef(AliNanoAODTrackMapping, 1)
162 :
163 : };
164 :
165 : #endif /* _ALINANOAODTRACKMAPPING_H_ */
|