a973c90e0a6517e50560bb88c23963663a21dae5
[u/mrichter/AliRoot.git] / ITS / AliITSRecPoint.h
1 #ifndef ALIITSRECPOINT_H
2 #define ALIITSRECPOINT_H 
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7   $Id$
8 */
9
10 ////////////////////////////////////////////////////
11 //  Reconstructed space point class for set:ITS   //
12 ////////////////////////////////////////////////////
13
14 #include <TObject.h>
15 #include <Riostream.h>
16
17
18 class AliITSRecPoint : public TObject {
19  public:
20     AliITSRecPoint();
21     virtual ~AliITSRecPoint() {}; // distructor
22     Bool_t IsSortable() const {return kTRUE;} // allows for sorting
23     Int_t   GetLabel(Int_t i) const {return fTracks[i];} // get track label
24     Int_t  *GetTracks(){return fTracks;}// Returns pointer to track array
25     Int_t   GetNTracks(){return 3;} // returns track array size
26     Float_t GetX() const {return fX;} // gets fX
27     Float_t GetZ() const {return fZ;} // gets fZ
28     Float_t GetQ() const {return fQ;} // gets fQ
29     Float_t GetdEdX() const {return fdEdX;} // gets fdEdX
30     Float_t GetSigmaX2() const {return fSigmaX2;} // gets fSigmaX2
31     Float_t GetSigmaZ2() const {return fSigmaZ2;} // gets fSigmaZ2
32     void SetLabel(Int_t i, Int_t lab){fTracks[i]=lab;} // sets track label
33     void SetX(Float_t x){fX=x;} // sets fX
34     void SetZ(Float_t z){fZ=z;} // sets fZ
35     void SetQ(Float_t q){fQ=q;} // sets fQ
36     void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX
37     void SetSigmaX2(Float_t sx2){fSigmaX2=sx2;} // sets fSigmaX2
38     void SetSigmaZ2(Float_t sz2){fSigmaZ2=sz2;} // sets fSigmaZ2
39     void  Use() { //if fQ<0 cluster is already associated with a track
40         fQ=-fQ;}
41     Int_t IsUsed() const {return (fQ<0) ? 1 : 0;} // checks Use condision
42     Int_t Compare(const TObject *) const {return 0;} //to be defined
43     // Prints out the content of this class in ASCII format.
44     void Print(ostream *os); 
45     // Reads in the content of this class in the format of Print
46     void Read(istream *is);
47     virtual void Print(Option_t *option="") const {TObject::Print(option);}
48     virtual Int_t Read(const char *name) {return TObject::Read(name);}
49
50  public:
51     Int_t     fTracks[3]; //labels of overlapped tracks
52     Float_t   fX ;        //X of cluster
53     Float_t   fZ ;        //Z of cluster
54     Float_t   fQ ;        //Q of cluster (in ADC counts)
55     Float_t   fdEdX;      //dE/dX inside this cluster
56     Float_t   fSigmaX2;   //Sigma X square of cluster
57     Float_t   fSigmaZ2;   //Sigma Z square of cluster
58
59     ClassDef(AliITSRecPoint,1)  // AliITSRecPoint class
60 };
61 // Input and output function for standard C++ input/output.
62 ostream& operator<<(ostream &os,AliITSRecPoint &source);
63 istream& operator>>(istream &is,AliITSRecPoint &source);
64 #endif