X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=inline;f=TRD%2FAliTRDchamberTimeBin.h;h=706cf8a37701d22bfab1dcb871765dbd8221f807;hb=f56ee636ba5bf2733c55d76a77079c133940e328;hp=129006aba1473f8be26bc9305990b6de495e743d;hpb=3a039a317fad479f77a9bcc96c0170e6122bce67;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDchamberTimeBin.h b/TRD/AliTRDchamberTimeBin.h index 129006aba14..706cf8a3770 100644 --- a/TRD/AliTRDchamberTimeBin.h +++ b/TRD/AliTRDchamberTimeBin.h @@ -16,16 +16,18 @@ #include "TObject.h" #endif -#ifndef ALITRDCLUSTER_H -#include "AliTRDcluster.h" -#endif - +class AliTRDcluster; class AliTRDReconstructor; + class AliTRDchamberTimeBin : public TObject { public: + enum AliTRDchamberTimeBinStatus { + kT0 = BIT(14) // is the T0 time bin + ,kOwner = BIT(15) // is owner of the clusters + }; enum{ - kMaxClustersLayer = 150 + kMaxClustersLayer = 150 ,kMaxRows = 16 }; @@ -34,19 +36,20 @@ public: //AliTRDchamberTimeBin(const AliTRDpropagationLayer &layer); AliTRDchamberTimeBin(const AliTRDchamberTimeBin &layer); ~AliTRDchamberTimeBin(); - //AliTRDchamberTimeBin &operator=(const AliTRDpropagationLayer &myLayer); - operator Int_t() const { return fN; } - AliTRDchamberTimeBin &operator=(const AliTRDchamberTimeBin &myLayer); - AliTRDcluster *operator[](const Int_t i) const { - return ((i < fN) && (i >= 0)) ? fClusters[i] : 0x0; + operator Int_t() const { return fN; } + AliTRDchamberTimeBin& + operator=(const AliTRDchamberTimeBin &myLayer); + AliTRDcluster* operator[](const Int_t i) const { + return ((i < fN) && (i >= 0)) ? fClusters[i] : NULL; } + void Bootstrap(const AliTRDReconstructor *rec, Int_t det); void BuildIndices(Int_t iter = 0); - void BuildCond(AliTRDcluster *cl, Double_t *cond, UChar_t Layer, Double_t theta=0., Double_t phi=0.); - void Clear(const Option_t *opt = 0x0); - AliTRDcluster* GetCluster(Int_t index) const {return index < fN && index >= 0 ? fClusters[index] : 0x0;} - Int_t GetGlobalIndex(const Int_t index) const {return ((index < fN) && (index >= 0)) ? fIndex[index] : 0; } - void GetClusters(Double_t *cond, Int_t *index, Int_t& ncl, Int_t BufferSize = kMaxClustersLayer); + void BuildCond(AliTRDcluster * const cl, Double_t *cond, UChar_t Layer, Double_t theta=0., Double_t phi=0.); + void Clear(const Option_t *opt = NULL); + AliTRDcluster* GetCluster(Int_t index) const {return index < fN && index >= 0 ? fClusters[index] : NULL;} + Int_t GetGlobalIndex(Int_t index) const {return ((index < fN) && (index >= 0)) ? fIndex[index] : 0; } + void GetClusters(const Double_t * const cond, Int_t *index, Int_t& ncl, Int_t BufferSize = kMaxClustersLayer); AliTRDcluster* GetNearestCluster(Double_t *cond); Double_t GetX() const { return fX; } @@ -58,18 +61,19 @@ public: Int_t GetSector() const { return fSector; } void InsertCluster(AliTRDcluster *c, UInt_t index); - Bool_t IsT0() const {return TestBit(1);} - - void PrintClusters() const; - Int_t SearchNearestCluster(const Double_t y, const Double_t z, const Double_t Roady, const Double_t Roadz) const; + Bool_t IsT0() const {return TestBit(kT0);} + Bool_t IsOwner() const {return TestBit(kOwner);} + + void Print(Option_t *opt=NULL) const; + Int_t SearchNearestCluster(Double_t y, Double_t z, Double_t Roady, Double_t Roadz) const; void SetRange(Float_t z0, Float_t zLength); - void SetNRows(const Int_t nRows){ fNRows = nRows; } + void SetNRows(Int_t nRows){ fNRows = nRows; } void SetPlane(Int_t plane){ fPlane = plane; } - void SetReconstructor(const AliTRDReconstructor *rec) {fReconstructor = rec;} + void SetReconstructor(const AliTRDReconstructor *rec) {fkReconstructor = rec;} void SetStack(Int_t stack){ fStack = stack; } void SetSector(Int_t sector){ fSector = sector; } - void SetOwner(Bool_t own = kTRUE) {fOwner = own;} - void SetT0(Bool_t set=kTRUE) {SetBit(1, set);} + void SetOwner(Bool_t copy=kTRUE); + void SetT0(Bool_t set=kTRUE) {SetBit(kT0, set);} void SetX(Double_t x) {fX = x;} private: void Copy(TObject &o) const; @@ -78,26 +82,23 @@ private: Int_t FindNearestYCluster(Double_t y, UChar_t z) const; private: - const AliTRDReconstructor *fReconstructor; // - Bool_t fOwner; // owner of the clusters - Char_t fPlane; // Plane number - Char_t fStack; // stack number in supermodule - Char_t fSector; // Sector mumber - Char_t fNRows; // number of pad rows in the chamber - UChar_t fPositions[kMaxRows]; // starting index of clusters in pad row - Int_t fN; // number of clusters - AliTRDcluster *fClusters[kMaxClustersLayer]; //Array of pointers to clusters - UInt_t fIndex[kMaxClustersLayer]; //Array of cluster indexes - Double_t fX; // radial position of tb - + const AliTRDReconstructor *fkReconstructor; //! Global TRD reconstructor + Char_t fPlane; //! Plane number + Char_t fStack; //! Stack number in supermodule + Char_t fSector; //! Sector mumber + Char_t fNRows; //! Number of pad rows in the chamber + UChar_t fPositions[kMaxRows]; //! Starting index of clusters in pad row + Int_t fN; //! Number of clusters + AliTRDcluster *fClusters[kMaxClustersLayer];// Array of pointers to clusters + UInt_t fIndex[kMaxClustersLayer]; //! Array of cluster indexes + Double_t fX; //! Radial position of tb + // obsolete !! - Double_t fZ0; // starting position of the layer in Z direction - Double_t fZLength; // length of the layer in Z direction - - ClassDef(AliTRDchamberTimeBin, 2) // tracking propagation layer for one time bin in chamber + Double_t fZ0; // Starting position of the layer in Z direction + Double_t fZLength; // Length of the layer in Z direction + ClassDef(AliTRDchamberTimeBin, 2) // Tracking propagation layer for one time bin in chamber }; - #endif // ALITRDCHAMBERTIMEBIN_H