]>
Commit | Line | Data |
---|---|---|
d02977ee | 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 |