X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSRecPoint.h;h=25db19aa907df5c3ea2a9c30b3dbfc6ffcb99b8c;hb=20f79d37d89dc1fa42a87fab4697de017cd08cf0;hp=4bfb17e5a34cc7e5671efbe197c1e1198ff2ef88;hpb=a504d56f57cfaa8dcd03358276b34e5d27ae3d29;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSRecPoint.h b/ITS/AliITSRecPoint.h index 4bfb17e5a34..25db19aa907 100644 --- a/ITS/AliITSRecPoint.h +++ b/ITS/AliITSRecPoint.h @@ -25,29 +25,24 @@ #include #include #include -#include +using std::ostream; +using std::istream; class AliITSRecPoint : public AliCluster { public: AliITSRecPoint(); - AliITSRecPoint(AliITSgeom* geom); - AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info); - AliITSRecPoint(Int_t module,AliITSgeom* geom,Int_t *lab, - Float_t *hit, Int_t *info); + AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info, Bool_t local = kFALSE); AliITSRecPoint(const AliITSRecPoint& pt); AliITSRecPoint& operator=(const AliITSRecPoint &source); virtual ~AliITSRecPoint() {}; // distructor - Bool_t IsSortable() const {return kTRUE;} // allows for sorting - Int_t *GetTracks(){return fTracks;}// Returns pointer to track array - Int_t GetNTracks() const {return 3;} // returns track array size + Bool_t IsSortable() const {return kTRUE;} // allows for sorting Float_t GetDetLocalX() const {return fXloc;} // gets fX Float_t GetDetLocalZ() const {return fZloc;} // gets fZ Float_t GetdEdX() const {return fdEdX;} // gets fdEdX - Float_t GetSigmaDetLocX2() const {return fSigmaY2;} // gets fSigmaX2 - void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX - void SetSigmaDetLocX2(Float_t sx2){fSigmaY2=sx2;} // sets fSigmaX2 + Float_t GetSigmaDetLocX2() const {return GetSigmaY2();} // gets fSigmaX2 + void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX Int_t Compare(const TObject *) const {return 0;} //to be defined void Print(ostream *os); // Reads in the content of this class in the format of Print @@ -55,22 +50,6 @@ class AliITSRecPoint : public AliCluster { virtual void Print(Option_t *option="") const {TObject::Print(option);} virtual Int_t Read(const char *name) {return TObject::Read(name);} - void SetITSgeom(AliITSgeom* geom) {fGeom=geom;} - - virtual void SetY(Float_t y ){fY=y; - AliError("For consistency, Use method SetYZ. Data members are only partially set\n");} - virtual void SetZ(Float_t z ){fZ=z; - AliError("For consistency, Use method SetYZ. Data members are only partially set\n");} - void SetYZ(Int_t module, Float_t y, Float_t z){ - fY=y;fZ=z; - if(fGeom)fGeom->TrackingV2ToDetL(module,y,z,fXloc,fZloc); - else AliError("Geometry not set. \n"); - } - void SetXZ(Int_t module, Float_t x, Float_t z){ - fXloc=x;fZloc=z; - if(fGeom)fGeom->DetLToTrackingV2(module,x,z,fY,fZ); - else AliError("Geometry not set. Nothing done!!!!!\n"); - } void Use(Int_t = 0) {fQ=-fQ;} void UnUse() {fQ=TMath::Abs(fQ);} void SetQ(Float_t q) {fQ=q;} @@ -82,7 +61,9 @@ class AliITSRecPoint : public AliCluster { void SetPhiR(Float_t y) { fChargeRatio=y; } void SetType(Int_t type){ fType=type;} void SetDeltaProbability(Float_t prob){fDeltaProb = prob;} - + void SetDriftTime(Float_t tim) {fDriftTime=tim;} + void SetDriftSide(Int_t sid) {fDriftSide=sid;} + Int_t IsUsed() const {return (fQ<0)?1:0;} Float_t GetQ() const {return TMath::Abs(fQ);} Int_t GetDetectorIndex() const { return 0x3FF&fIndex; } @@ -93,16 +74,22 @@ class AliITSRecPoint : public AliCluster { Float_t GetPhiR() const {return fChargeRatio;} Int_t GetPindex() const { return 0xFFF00000&fIndex; } //SSD clusters only Int_t GetNindex() const { return 0xFFC00&fIndex; } //SSD clusters only - Int_t GetType() const {return fType;} // type of the cluster + Int_t GetType() const {return fType;} // type of the cluster (for SPD the number of pixels in the cluster) Float_t GetDeltaProbability() const{return fDeltaProb;} //probability to belong to the delta ray - - // The following two methods deal with the misaligned x position - // of a cluster in the tracking coordidate system - virtual Float_t GetX() const {return fX;} - virtual void SetX(Float_t x) {fX=x;} + Float_t GetDriftTime() const{return fDriftTime;} + Int_t GetDriftSide() const {return fDriftSide;} + Int_t GetNpixels() const; // for SPD returns fType, i.e. the number of pixels in the cluster (-1 for SDD and SSD) + Int_t GetSPDclusterType() const; // for SPD returns cluster type according to conventional numbering (-1 for SDD and SSD) + Int_t GetSDDclusterType() const; + Int_t GetSSDclusterType() const; + static void DecodeSDDclusterType(Int_t cluType, Int_t &cluSizAn, Int_t& cluSizTb, Int_t &drSide); + Int_t GetClusterType() const { + if(fLayer<=1) return GetSPDclusterType(); + if(fLayer==2 || fLayer==3) return GetSDDclusterType(); + return GetSSDclusterType(); + } protected: - Float_t fX; // X coordinate in the misaligned tracking system Float_t fXloc ; //X of cluster (local coordinates) Float_t fZloc ; //Z of cluster (local coordinates) @@ -115,11 +102,11 @@ class AliITSRecPoint : public AliCluster { Short_t fNy; //number of digits in y direction Float_t fChargeRatio; //charge ratio Int_t fType; //quality factor of the cluster - Float_t fDeltaProb; // probability to be deleta electron + Float_t fDeltaProb; // probability to be delta electron + Float_t fDriftTime; // drift time in SDD + Char_t fDriftSide; // drift region in SDD (0=left=positive xlocal, 1=right) - AliITSgeom* fGeom; //!pointer to ITS geometry - - ClassDef(AliITSRecPoint,2) // AliITSRecPoint class + ClassDef(AliITSRecPoint,7) // AliITSRecPoint class }; // Input and output function for standard C++ input/output. ostream& operator<<(ostream &os,AliITSRecPoint &source);