]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliStaObjects.h
Pi0 peak band adjusted to 2013 period
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliStaObjects.h
1 #ifndef AliStaObjects_H
2 #define AliStaObjects_H
3
4 // $Id$
5
6 #include <TLorentzVector.h>
7
8 class AliStaHeader
9 {
10  public:
11   AliStaHeader() : fRun(0), fOrbit(0), fPeriod(0), fBx(0), fL0(0), fL1(0), fL2(0),
12                    fTrClassMask(0), fTrCluster(0), fOffTriggers(0), fFiredTriggers(),
13                    fTcls(0), fV0And(0), fIsHT(0), fIsPileup(0), fIsPileup2(0), fIsPileup4(0), fIsPileup8(0), 
14                    fNSpdVertices(0), fNTpcVertices(0), fV0Cent(0), fV0(0), fCl1Cent(0), fCl1(0), fTrCent(0), 
15                    fTr(0), fCqual(-1), fPsi(0), fPsiRes(0), fNSelTr(0), fNSelPrimTr(0), fNSelPrimTr1(0),
16                    fNSelPrimTr2(0), fNCells(0), fNCells0(0), fNCells01(0), fNCells03(0), 
17                    fNCells1(0), fNCells2(0), fNCells5(0), fNClus(0), fNClus1(0), fNClus2(0), fNClus5(0), 
18                    fMaxCellE(0), fMaxClusE(0), fMaxTrE(0), fNcSM0(0), fNcSM1(0), fNcSM2(0), fNcSM3(0), 
19                    fNcSM4(0), fNcSM5(0), fNcSM6(0),fNcSM7(0),fNcSM8(0),fNcSM9(0) {;}
20   virtual ~AliStaHeader() {;}
21
22   ULong64_t     GetEventId() const {
23                   return (((ULong64_t)fPeriod << 36) |
24                           ((ULong64_t)fOrbit  << 12) |
25                           (ULong64_t)fBx); 
26                 }
27
28  public:
29   Int_t         fRun;            //         run number
30   UInt_t        fOrbit;          //         orbit number
31   UInt_t        fPeriod;         //         period number
32   UShort_t      fBx;             //         bunch crossing id
33   UInt_t        fL0;             //         l0 trigger bits
34   UInt_t        fL1;             //         l1 trigger bits
35   UShort_t      fL2;             //         l2 trigger bits
36   ULong64_t     fTrClassMask;    //         trigger class mask
37   UChar_t       fTrCluster;      //         trigger cluster mask
38   UInt_t        fOffTriggers;    //         fired offline triggers for this event
39   TString       fFiredTriggers;  //         string with fired triggers
40   UInt_t        fTcls;           //         custom trigger definition
41   Bool_t        fV0And;          //         if V0AND (from AliTriggerAnalysis)
42   Bool_t        fIsHT;           //         if EMCAL L0 (from AliTriggerAnalysis)
43   Bool_t        fIsPileup;       //         indicate pileup from IsPileupFromSPD with 0.8 minzdist
44   Bool_t        fIsPileup2;      //         indicate pileup from IsPileupFromSPD with 0.4 minzdist
45   Bool_t        fIsPileup4;      //         indicate pileup from IsPileupFromSPD with 0.2 minzdist
46   Bool_t        fIsPileup8;      //         indicate pileup from IsPileupFromSPD with 0.1 minzdist
47   UShort_t      fNSpdVertices;   //         number of pileup vertices (spd)
48   UShort_t      fNTpcVertices;   //         number of pileup vertices (tpc)
49   Double32_t    fV0Cent;         //[0,0,16] v0 cent
50   Double32_t    fV0;             //[0,0,16] v0 result used for cent 
51   Double32_t    fCl1Cent;        //[0,0,16] cl1 cent
52   Double32_t    fCl1;            //[0,0,16] cl1 result used for cent 
53   Double32_t    fTrCent;         //[0,0,16] tr cent
54   Double32_t    fTr;             //[0,0,16] tr result used for cent 
55   Int_t         fCqual;          //         centrality quality
56   Double32_t    fPsi;            //[0,0,16] event-plane angle
57   Double32_t    fPsiRes;         //[0,0,16] event-plane ange resolution
58   UShort_t      fNSelTr;         //         # selected tracks         
59   UShort_t      fNSelPrimTr;     //         # selected tracks (primary)
60   UShort_t      fNSelPrimTr1;    //         # selected tracks (primary) pt > 1 GeV/c
61   UShort_t      fNSelPrimTr2;    //         # selected tracks (primary) pt > 2 GeV/c
62   UShort_t      fNCells;         //         # cells
63   UShort_t      fNCells0;        //         # cells > 0.45 GeV
64   UShort_t      fNCells01;       //         # cells > 0.1  GeV
65   UShort_t      fNCells03;       //         # cells > 0.3  GeV
66   UShort_t      fNCells1;        //         # cells > 1    GeV
67   UShort_t      fNCells2;        //         # cells > 2    GeV
68   UShort_t      fNCells5;        //         # cells > 5    GeV
69   UShort_t      fNClus;          //         # clus
70   UShort_t      fNClus1;         //         # clus > 1 GeV
71   UShort_t      fNClus2;         //         # clus > 2 GeV
72   UShort_t      fNClus5;         //         # clus > 5 GeV
73   Double32_t    fMaxCellE;       //[0,0,16] maximum cell energy
74   Double32_t    fMaxClusE;       //[0,0,16] maximum clus energy
75   Double32_t    fMaxTrE;         //[0,0,16] maximum trigger energy
76   UShort_t      fNcSM0;          //         # cells > 0.1  GeV in SM 0
77   UShort_t      fNcSM1;          //         # cells > 0.1  GeV in SM 1
78   UShort_t      fNcSM2;          //         # cells > 0.1  GeV in SM 2
79   UShort_t      fNcSM3;          //         # cells > 0.1  GeV in SM 3
80   UShort_t      fNcSM4;          //         # cells > 0.1  GeV in SM 4
81   UShort_t      fNcSM5;          //         # cells > 0.1  GeV in SM 5
82   UShort_t      fNcSM6;          //         # cells > 0.1  GeV in SM 6
83   UShort_t      fNcSM7;          //         # cells > 0.1  GeV in SM 7
84   UShort_t      fNcSM8;          //         # cells > 0.1  GeV in SM 8
85   UShort_t      fNcSM9;          //         # cells > 0.1  GeV in SM 9
86
87   ClassDef(AliStaHeader,6) // Header class
88 };
89
90 class AliStaVertex
91 {
92  public:
93   AliStaVertex(Double_t x=0, Double_t y=0, Double_t z=0) : fVx(x), fVy(y), fVz(z), fVc(-1), fDisp(0), fZres(0),
94                                                            fChi2(0), fSt(0), fIs3D(0), fIsZ(0) {;}
95   virtual ~AliStaVertex() {;}
96
97  public:
98   Double_t      fVx;          //[0,0,16] vertex x
99   Double_t      fVy;          //[0,0,16] vertex y
100   Double_t      fVz;          //[0,0,16] vertex z
101   Double_t      fVc;          //[0,0,16] number of contributors to vertex
102   Double_t      fDisp;        //[0,0,16] dispersion
103   Double_t      fZres;        //[0,0,16] z-resolution
104   Double_t      fChi2;        //[0,0,16] chi2 of fit
105   Bool_t        fSt;          //         status bit
106   Bool_t        fIs3D;        //         is vertex from 3D
107   Bool_t        fIsZ;         //         is vertex from Z only
108
109   ClassDef(AliStaVertex,1) // Vertex class
110 };
111
112 class AliStaCluster : public TObject
113 {
114  public:
115   AliStaCluster() : TObject(), 
116                     fE(0), fR(0), fEta(0), fPhi(0), fN(0), fN1(0), fN3(0), fIdMax(-1), fSM(-1), fEmax(0), fE2max(0), fEcross(0),
117                     fTmax(0), fDbc(-1), fDisp(-1), fM20(-1), fM02(-1), fEcc(-1), fSig(-1), fSigEtaEta(-1), fSigPhiPhi(-1),
118                     fIsTrackM(0), fTrDz(0), fTrDr(-1), fTrEp(0), fTrDedx(0), fTrIso(0), fTrIso1(0), fTrIso2(0),  
119                     fTrIsoD1(0), fTrIso1D1(0), fTrIso2D1(0), fTrIsoD3(0), fTrIso1D3(0), fTrIso2D3(0),
120                     fTrIsoD4(0), fTrIso1D4(0), fTrIso2D4(0), fTrIsoStrip(0), fCeIso(0), fCeIso1(0), 
121                     fCeIso3(0), fCeIso4(0), fCeIso3x3(0), fCeIso4x4(0), fCeIso5x5(0), fCeCore(0), fCeIso3x22(0), 
122                     fIsShared(0), fTrigId(-1), fTrigE(0), fMcLabel(-1), fEmbE(0) {;}
123
124   void          GetMom(TLorentzVector& p, Double_t *vertex=0);
125   void          GetMom(TLorentzVector& p, AliStaVertex *vertex);
126
127  public:
128   Double32_t    fE;                //[0,0,16] energy
129   Double32_t    fR;                //[0,0,16] radius (cylinder)
130   Double32_t    fEta;              //[0,0,16] eta
131   Double32_t    fPhi;              //[0,0,16] phi
132   UChar_t       fN;                //         number of cells
133   UChar_t       fN1;               //         number of cells > 100 MeV
134   UChar_t       fN3;               //         number of cells > 300 MeV
135   Short_t       fIdMax;            //         id maximum cell
136   Char_t        fSM;               //         super module number (from maximum cell)
137   Double32_t    fEmax;             //[0,0,16] energy of maximum cell
138   Double32_t    fE2max;            //[0,0,16] energy of second maximum cell
139   Double32_t    fEcross;           //[0,0,16] energy of the 4 adjacent cells around the seed
140   Double32_t    fTmax;             //[0,0,16] time of maximum cell
141   Double32_t    fDbc;              //[0,0,16] distance to nearest bad channel
142   Double32_t    fDisp;             //[0,0,16] cluster dispersion, for shape analysis
143   Double32_t    fM20;              //[0,0,16] 2-nd moment along the main eigen axis
144   Double32_t    fM02;              //[0,0,16] 2-nd moment along the second eigen axis
145   Double32_t    fEcc;              //[0,0,16] eccentricity
146   Double32_t    fSig;              //[0,0,16] sigma
147   Double32_t    fSigEtaEta;        //[0,0,16] sigma eta-eta
148   Double32_t    fSigPhiPhi;        //[0,0,16] sigma phi-phi
149   Bool_t        fIsTrackM;         //         if true then track values are set
150   Double32_t    fTrDz;             //[0,0,16] dZ to nearest track
151   Double32_t    fTrDr;             //[0,0,16] dR to nearest track (in x,y)
152   Double32_t    fTrEp;             //[0,0,16] E/P to nearest track 
153   Double32_t    fTrDedx;           //[0,0,16] dE/dx (TPC signal) to nearest track 
154   Double32_t    fTrIso;            //[0,0,16] track isolation
155   Double32_t    fTrIso1;           //[0,0,16] track isolation (pt>1GeV/c)
156   Double32_t    fTrIso2;           //[0,0,16] track isolation (pt>2GeV/c)
157   Double32_t    fTrIsoD1;          //[0,0,16] track isolation, iso dist 0.25
158   Double32_t    fTrIso1D1;         //[0,0,16] track isolation (pt>1GeV/c), iso dist 0.1
159   Double32_t    fTrIso2D1;         //[0,0,16] track isolation (pt>2GeV/c), iso dist 0.1
160   Double32_t    fTrIsoD3;          //[0,0,16] track isolation, iso dist 0.3
161   Double32_t    fTrIso1D3;         //[0,0,16] track isolation (pt>1GeV/c), iso dist 0.3
162   Double32_t    fTrIso2D3;         //[0,0,16] track isolation (pt>2GeV/c), iso dist 0.3
163   Double32_t    fTrIsoD4;          //[0,0,16] track isolation, iso dist 0.4
164   Double32_t    fTrIso1D4;         //[0,0,16] track isolation (pt>1GeV/c), iso dist 0.4
165   Double32_t    fTrIso2D4;         //[0,0,16] track isolation (pt>2GeV/c), iso dist 0.4
166   Double32_t    fTrIsoStrip;       //[0,0,16] track isolation strip, dEtaXdPhi=0.015x0.3
167   Double32_t    fCeIso;            //[0,0,16] cell isolation in R=0.20
168   Double32_t    fCeIso1;           //[0,0,16] cell isolation in R=0.10
169   Double32_t    fCeIso3;           //[0,0,16] cell isolation in R=0.30
170   Double32_t    fCeIso4;           //[0,0,16] cell isolation in R=0.40
171   Double32_t    fCeIso3x3;         //[0,0,16] cell isolation in 3x3 cells
172   Double32_t    fCeIso4x4;         //[0,0,16] cell isolation in 4x4 cells
173   Double32_t    fCeIso5x5;         //[0,0,16] cell isolation in 5x5 cells
174   Double32_t    fCeCore;           //[0,0,16] cell content in R=0.05 
175   Double32_t    fCeIso3x22;        //[0,0,16] cell isolation in rectangular strip of dEtaXdPhi=0.042x0.308
176   Bool_t        fIsShared;         //         =true then extends across more than one super module
177   Short_t       fTrigId;           //         index of matched trigger tower
178   Double32_t    fTrigE;            //[0,0,16] energy (FEE) of matched trigger tower
179   Short_t       fMcLabel;          //         index of closest MC particle
180   Double32_t    fEmbE;             //[0,0,16] sum of energy of embedded (MC) cells in cluster
181
182   ClassDef(AliStaCluster,10) // Cluster class
183 };
184
185 class AliStaTrigger : public TObject
186 {
187  public:
188   AliStaTrigger() : TObject(), fE(0), fEta(0), fPhi(0), fIdMax(-1) {}
189
190  public:
191   Double32_t    fE;                //[0,0,16] energy
192   Double32_t    fEta;              //[0,0,16] eta
193   Double32_t    fPhi;              //[0,0,16] phi
194   Short_t       fIdMax;            //         id maximum cell
195
196   ClassDef(AliStaTrigger,2) // Trigger class
197 };
198
199 class AliStaPart : public TObject
200 {
201  public:
202   AliStaPart() : TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fPid(0), fMo(-1), fDet(-2), 
203                  fLab(-1), fNs(0) { memset(fDs,-1,sizeof(Short_t)*99); }
204
205   Int_t         OnEmcal() const { return (fDet==8);  }
206   Int_t         IsSim()   const { return (fDet!=-2); }
207     
208  public:
209   Double32_t    fPt;               //[0,0,16] pt
210   Double32_t    fEta;              //[0,0,16] eta
211   Double32_t    fPhi;              //[0,0,16] phi
212   Double32_t    fVR;               //[0,0,16] prod r (cylinder)
213   Double32_t    fVEta;             //[0,0,16] prod eta
214   Double32_t    fVPhi;             //[0,0,16] prod phi
215   Short_t       fPid;              //         pid
216   Short_t       fMo;               //         index of mother
217   Short_t       fDet;              //         detector in which particle left trace (8 for EMCAL, see AliTrackReference.h)
218     // the following must be filled before first usage
219   Short_t       fLab;              //!        label (index in array)
220   Short_t       fNs;               //!        number of daughters
221   Short_t       fDs[99];           //!        daughters
222
223   ClassDef(AliStaPart,1) // Particle class
224 };
225 #endif