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