#ifndef AliStaObjects_H
#define AliStaObjects_H
#include <TLorentzVector.h>
class AliStaHeader
{
public:
AliStaHeader() : fRun(0), fOrbit(0), fPeriod(0), fBx(0), fL0(0), fL1(0), fL2(0),
fTrClassMask(0), fTrCluster(0), fOffTriggers(0), fFiredTriggers(),
fTcls(0), fV0And(0), fIsHT(0), fIsPileup(0), fIsPileup2(0), fIsPileup4(0), fIsPileup8(0),
fNSpdVertices(0), fNTpcVertices(0), fV0Cent(0), fV0(0), fCl1Cent(0), fCl1(0), fTrCent(0),
fTr(0), fCqual(-1), fPsi(0), fPsiRes(0), fNSelTr(0), fNSelPrimTr(0), fNSelPrimTr1(0),
fNSelPrimTr2(0), fNCells(0), fNCells0(0), fNCells01(0), fNCells03(0),
fNCells1(0), fNCells2(0), fNCells5(0), fNClus(0), fNClus1(0), fNClus2(0), fNClus5(0),
fMaxCellE(0), fMaxClusE(0), fMaxTrE(0), fNcSM0(0), fNcSM1(0), fNcSM2(0), fNcSM3(0),
fNcSM4(0), fNcSM5(0), fNcSM6(0),fNcSM7(0),fNcSM8(0),fNcSM9(0) {;}
virtual ~AliStaHeader() {;}
ULong64_t GetEventId() const {
return (((ULong64_t)fPeriod << 36) |
((ULong64_t)fOrbit << 12) |
(ULong64_t)fBx);
}
public:
Int_t fRun;
UInt_t fOrbit;
UInt_t fPeriod;
UShort_t fBx;
UInt_t fL0;
UInt_t fL1;
UShort_t fL2;
ULong64_t fTrClassMask;
UChar_t fTrCluster;
UInt_t fOffTriggers;
TString fFiredTriggers;
UInt_t fTcls;
Bool_t fV0And;
Bool_t fIsHT;
Bool_t fIsPileup;
Bool_t fIsPileup2;
Bool_t fIsPileup4;
Bool_t fIsPileup8;
UShort_t fNSpdVertices;
UShort_t fNTpcVertices;
Double32_t fV0Cent;
Double32_t fV0;
Double32_t fCl1Cent;
Double32_t fCl1;
Double32_t fTrCent;
Double32_t fTr;
Int_t fCqual;
Double32_t fPsi;
Double32_t fPsiRes;
UShort_t fNSelTr;
UShort_t fNSelPrimTr;
UShort_t fNSelPrimTr1;
UShort_t fNSelPrimTr2;
UShort_t fNCells;
UShort_t fNCells0;
UShort_t fNCells01;
UShort_t fNCells03;
UShort_t fNCells1;
UShort_t fNCells2;
UShort_t fNCells5;
UShort_t fNClus;
UShort_t fNClus1;
UShort_t fNClus2;
UShort_t fNClus5;
Double32_t fMaxCellE;
Double32_t fMaxClusE;
Double32_t fMaxTrE;
UShort_t fNcSM0;
UShort_t fNcSM1;
UShort_t fNcSM2;
UShort_t fNcSM3;
UShort_t fNcSM4;
UShort_t fNcSM5;
UShort_t fNcSM6;
UShort_t fNcSM7;
UShort_t fNcSM8;
UShort_t fNcSM9;
ClassDef(AliStaHeader,6)
};
class AliStaVertex
{
public:
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),
fChi2(0), fSt(0), fIs3D(0), fIsZ(0) {;}
virtual ~AliStaVertex() {;}
public:
Double_t fVx;
Double_t fVy;
Double_t fVz;
Double_t fVc;
Double_t fDisp;
Double_t fZres;
Double_t fChi2;
Bool_t fSt;
Bool_t fIs3D;
Bool_t fIsZ;
ClassDef(AliStaVertex,1)
};
class AliStaCluster : public TObject
{
public:
AliStaCluster() : TObject(),
fE(0), fR(0), fEta(0), fPhi(0), fN(0), fN1(0), fN3(0), fIdMax(-1), fSM(-1), fEmax(0), fE2max(0), fEcross(0),
fTmax(0), fDbc(-1), fDisp(-1), fM20(-1), fM02(-1), fEcc(-1), fSig(-1), fSigEtaEta(-1), fSigPhiPhi(-1),
fIsTrackM(0), fTrDz(0), fTrDr(-1), fTrEp(0), fTrDedx(0), fTrIso(0), fTrIso1(0), fTrIso2(0),
fTrIsoD1(0), fTrIso1D1(0), fTrIso2D1(0), fTrIsoD3(0), fTrIso1D3(0), fTrIso2D3(0),
fTrIsoD4(0), fTrIso1D4(0), fTrIso2D4(0), fTrIsoStrip(0), fCeIso(0), fCeIso1(0),
fCeIso3(0), fCeIso4(0), fCeIso3x3(0), fCeIso4x4(0), fCeIso5x5(0), fCeCore(0), fCeIso3x22(0),
fIsShared(0), fTrigId(-1), fTrigE(0), fMcLabel(-1), fEmbE(0) {;}
void GetMom(TLorentzVector& p, Double_t *vertex=0);
void GetMom(TLorentzVector& p, AliStaVertex *vertex);
public:
Double32_t fE;
Double32_t fR;
Double32_t fEta;
Double32_t fPhi;
UChar_t fN;
UChar_t fN1;
UChar_t fN3;
Short_t fIdMax;
Char_t fSM;
Double32_t fEmax;
Double32_t fE2max;
Double32_t fEcross;
Double32_t fTmax;
Double32_t fDbc;
Double32_t fDisp;
Double32_t fM20;
Double32_t fM02;
Double32_t fEcc;
Double32_t fSig;
Double32_t fSigEtaEta;
Double32_t fSigPhiPhi;
Bool_t fIsTrackM;
Double32_t fTrDz;
Double32_t fTrDr;
Double32_t fTrEp;
Double32_t fTrDedx;
Double32_t fTrIso;
Double32_t fTrIso1;
Double32_t fTrIso2;
Double32_t fTrIsoD1;
Double32_t fTrIso1D1;
Double32_t fTrIso2D1;
Double32_t fTrIsoD3;
Double32_t fTrIso1D3;
Double32_t fTrIso2D3;
Double32_t fTrIsoD4;
Double32_t fTrIso1D4;
Double32_t fTrIso2D4;
Double32_t fTrIsoStrip;
Double32_t fCeIso;
Double32_t fCeIso1;
Double32_t fCeIso3;
Double32_t fCeIso4;
Double32_t fCeIso3x3;
Double32_t fCeIso4x4;
Double32_t fCeIso5x5;
Double32_t fCeCore;
Double32_t fCeIso3x22;
Bool_t fIsShared;
Short_t fTrigId;
Double32_t fTrigE;
Short_t fMcLabel;
Double32_t fEmbE;
ClassDef(AliStaCluster,10)
};
class AliStaTrigger : public TObject
{
public:
AliStaTrigger() : TObject(), fE(0), fEta(0), fPhi(0), fIdMax(-1) {}
public:
Double32_t fE;
Double32_t fEta;
Double32_t fPhi;
Short_t fIdMax;
ClassDef(AliStaTrigger,2)
};
class AliStaPart : public TObject
{
public:
AliStaPart() : TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fPid(0), fMo(-1), fDet(-2),
fLab(-1), fNs(0) { memset(fDs,-1,sizeof(Short_t)*99); }
Int_t OnEmcal() const { return (fDet==8); }
Int_t IsSim() const { return (fDet!=-2); }
public:
Double32_t fPt;
Double32_t fEta;
Double32_t fPhi;
Double32_t fVR;
Double32_t fVEta;
Double32_t fVPhi;
Short_t fPid;
Short_t fMo;
Short_t fDet;
Short_t fLab;
Short_t fNs;
Short_t fDs[99];
ClassDef(AliStaPart,1)
};
#endif