#ifndef ALICOMPLEXCLUSTER_H
#define ALICOMPLEXCLUSTER_H
#include "TObject.h"
#include "TMath.h"
#include "AliTPCclusterMI.h"
class AliComplexCluster : public TObject {
public:
AliComplexCluster();
virtual ~AliComplexCluster() {;}
Bool_t IsSortable() const;
Int_t Compare(const TObject *o) const;
Int_t GetTrack(Int_t i)const {return fTracks[i];}
Float_t GetX()const {return fX;}
Float_t GetY()const {return fY;}
Float_t GetQ()const {return fQ;}
Float_t GetSigmaX2()const {return fSigmaX2;}
Float_t GetSigmaY2()const {return fSigmaY2;}
Float_t GetSigmaXY()const {return fSigmaXY;}
Float_t GetArea()const {return fArea;}
Float_t GetMax()const {return fMax;}
private:
Int_t fTracks[3];
Float_t fX ;
Float_t fY ;
Float_t fQ ;
Float_t fSigmaX2;
Float_t fSigmaY2;
Float_t fSigmaXY;
Float_t fArea;
Float_t fMax;
ClassDef(AliComplexCluster,1)
};
class AliTPCTrackerPoint {
public:
AliTPCTrackerPoint():
fTX(0),
fTZ(0),
fTY(0),
fTAngleZ(0),
fTAngleY(0),
fSigmaZ(0),
fSigmaY(0),
fErrZ(0),
fErrY(0),
fIsShared(0){}
virtual ~AliTPCTrackerPoint(){}
AliTPCTrackerPoint &operator=(const AliTPCTrackerPoint& o);
Float_t GetX() const {return (fTX*0.01);}
Float_t GetZ() const {return (fTZ*0.01);}
Float_t GetY() const {return (fTY*0.01);}
Float_t GetAngleZ() const {return (Float_t(fTAngleZ)*0.02);}
Float_t GetAngleY() const {return (Float_t(fTAngleY)*0.02);}
void SetX(Float_t x) { fTX = Short_t(TMath::Nint(x*100.));}
void SetY(Float_t y) { fTY = Short_t(TMath::Nint(y*100.));}
void SetZ(Float_t z) { fTZ = Short_t(TMath::Nint(z*100.));}
void SetAngleZ(Float_t anglez) {fTAngleZ = Char_t(TMath::Nint(anglez*50.));}
void SetAngleY(Float_t angley) {fTAngleY = Char_t(TMath::Nint(angley*50.));}
Float_t GetSigmaZ() const {return (fSigmaZ*0.02);}
Float_t GetSigmaY() const {return (fSigmaY*0.02);}
Float_t GetErrZ() const {return (fErrZ*0.005);}
Float_t GetErrY() const {return (fErrY*0.005);}
void SetErrZ(Float_t errz) {fErrZ = UChar_t(TMath::Nint(errz*200.));}
void SetErrY(Float_t erry) {fErrY = UChar_t(TMath::Nint(erry*200.));}
void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));}
void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));}
Char_t IsShared() const {return fIsShared;}
void SetShared(Char_t s) {fIsShared=s;}
private:
Short_t fTX;
Short_t fTZ;
Short_t fTY;
Char_t fTAngleZ;
Char_t fTAngleY;
UShort_t fSigmaZ;
UShort_t fSigmaY;
UShort_t fErrZ;
UShort_t fErrY;
Char_t fIsShared;
ClassDef(AliTPCTrackerPoint,2)
};
class AliTPCClusterPoint {
public:
AliTPCClusterPoint():
fCZ(0),
fCY(0),
fSigmaZ(0),
fSigmaY(0),
fQ(0),
fMax(0),
fCType(0){}
virtual ~AliTPCClusterPoint(){}
Float_t GetZ() const {return (fCZ*0.01);}
Float_t GetY() const {return (fCY*0.01);}
Float_t GetSigmaZ() const {return (fSigmaZ*0.02);}
Float_t GetSigmaY() const {return (fSigmaY*0.02);}
Int_t GetType() const {return fCType;}
Int_t GetMax() const {return fMax;}
Float_t GetQ() const {return fQ;}
void SetY(Float_t y){ fCY = Short_t(TMath::Nint(y*100.));}
void SetZ(Float_t z){ fCZ = Short_t(TMath::Nint(z*100.));}
void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));}
void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));}
void SetQ(Float_t q) {fQ = UShort_t(q);}
void SetMax(Float_t max) {fMax = UShort_t(max);}
void SetType(Char_t type) {fCType = type;}
private:
Short_t fCZ;
Short_t fCY;
UChar_t fSigmaZ;
UChar_t fSigmaY;
UShort_t fQ;
UShort_t fMax;
Char_t fCType;
ClassDef(AliTPCClusterPoint,1)
};
class AliTPCExactPoint : public TObject{
public:
AliTPCExactPoint():TObject(),
fEZ(0.),
fEY(0.),
fEX(0.),
fEAngleZ(0.),
fEAngleY(0.),
fEAmp(0.),
fEPrim(0.),
fTrackID(0),
fRow(0),
fSec(0){}
private:
Float_t fEZ;
Float_t fEY;
Float_t fEX;
Float_t fEAngleZ;
Float_t fEAngleY;
Float_t fEAmp;
Float_t fEPrim;
Int_t fTrackID;
Int_t fRow;
Int_t fSec;
ClassDef(AliTPCExactPoint,1)
};
class AliTPCTrackPoint: public TObject{
public:
AliTPCTrackPoint():TObject(),
fTPoint(),
fCPoint(){}
AliTPCTrackerPoint & GetTPoint(){return fTPoint;}
AliTPCclusterMI & GetCPoint(){return fCPoint;}
private:
AliTPCTrackerPoint fTPoint;
AliTPCclusterMI fCPoint;
ClassDef(AliTPCTrackPoint,1)
};
class AliTPCTrackPoint2: public AliTPCTrackPoint{
public:
AliTPCTrackPoint2():AliTPCTrackPoint(),
fGX(0.),
fGY(0.),
fGZ(0.),
fDY(0.),
fDZ(0.),
fDYU(0.),
fDYD(0),
fDZU(0.),
fDZD(0.),
fDDY(0),
fDDZ(0.),
fID(0),
fLab(0){}
private:
Float_t fGX;
Float_t fGY;
Float_t fGZ;
Float_t fDY;
Float_t fDZ;
Float_t fDYU;
Float_t fDYD;
Float_t fDZU;
Float_t fDZD;
Float_t fDDY;
Float_t fDDZ;
Int_t fID;
Int_t fLab;
ClassDef(AliTPCTrackPoint2,1)
};
#endif //ALICOMPLEXCLUSTER_H