#ifndef ALITRDCHAMBERTIMEBIN_H
#define ALITRDCHAMBERTIMEBIN_H
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class AliTRDcluster;
class AliTRDReconstructor;
class AliTRDchamberTimeBin : public TObject
{
public:
enum AliTRDchamberTimeBinStatus {
kT0 = BIT(14)
,kOwner = BIT(15)
};
enum{
kMaxClustersLayer = 150
,kMaxRows = 16
};
AliTRDchamberTimeBin(Int_t plane=-1, Int_t stack=-1, Int_t sector=-1, Double_t z0=-1., Double_t zLength=-1.);
AliTRDchamberTimeBin(const AliTRDchamberTimeBin &layer);
~AliTRDchamberTimeBin();
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 * 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; }
Double_t GetZ0() const { return fZ0; }
Double_t GetDZ0() const { return fZLength;}
Int_t GetNClusters() const { return fN; }
Int_t GetPlane() const { return fPlane; }
Int_t GetStack() const { return fStack; }
Int_t GetSector() const { return fSector; }
void InsertCluster(AliTRDcluster *c, UInt_t index);
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(Int_t nRows){ fNRows = nRows; }
void SetPlane(Int_t plane){ fPlane = plane; }
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 copy=kTRUE);
void SetT0(Bool_t set=kTRUE) {SetBit(kT0, set);}
void SetX(Double_t x) {fX = x;}
private:
void Copy(TObject &o) const;
Int_t Find(Float_t y) const;
Int_t FindYPosition(Double_t y, UChar_t z, Int_t nClusters) const;
Int_t FindNearestYCluster(Double_t y, UChar_t z) const;
private:
const AliTRDReconstructor *fkReconstructor;
Char_t fPlane;
Char_t fStack;
Char_t fSector;
Char_t fNRows;
UChar_t fPositions[kMaxRows];
Int_t fN;
AliTRDcluster *fClusters[kMaxClustersLayer];
UInt_t fIndex[kMaxClustersLayer];
Double_t fX;
Double_t fZ0;
Double_t fZLength;
ClassDef(AliTRDchamberTimeBin, 2)
};
#endif // ALITRDCHAMBERTIMEBIN_H
AliTRDchamberTimeBin.h:10 AliTRDchamberTimeBin.h:11 AliTRDchamberTimeBin.h:12 AliTRDchamberTimeBin.h:13 AliTRDchamberTimeBin.h:14 AliTRDchamberTimeBin.h:15 AliTRDchamberTimeBin.h:16 AliTRDchamberTimeBin.h:17 AliTRDchamberTimeBin.h:18 AliTRDchamberTimeBin.h:19 AliTRDchamberTimeBin.h:20 AliTRDchamberTimeBin.h:21 AliTRDchamberTimeBin.h:22 AliTRDchamberTimeBin.h:23 AliTRDchamberTimeBin.h:24 AliTRDchamberTimeBin.h:25 AliTRDchamberTimeBin.h:26 AliTRDchamberTimeBin.h:27 AliTRDchamberTimeBin.h:28 AliTRDchamberTimeBin.h:29 AliTRDchamberTimeBin.h:30 AliTRDchamberTimeBin.h:31 AliTRDchamberTimeBin.h:32 AliTRDchamberTimeBin.h:33 AliTRDchamberTimeBin.h:34 AliTRDchamberTimeBin.h:35 AliTRDchamberTimeBin.h:36 AliTRDchamberTimeBin.h:37 AliTRDchamberTimeBin.h:38 AliTRDchamberTimeBin.h:39 AliTRDchamberTimeBin.h:40 AliTRDchamberTimeBin.h:41 AliTRDchamberTimeBin.h:42 AliTRDchamberTimeBin.h:43 AliTRDchamberTimeBin.h:44 AliTRDchamberTimeBin.h:45 AliTRDchamberTimeBin.h:46 AliTRDchamberTimeBin.h:47 AliTRDchamberTimeBin.h:48 AliTRDchamberTimeBin.h:49 AliTRDchamberTimeBin.h:50 AliTRDchamberTimeBin.h:51 AliTRDchamberTimeBin.h:52 AliTRDchamberTimeBin.h:53 AliTRDchamberTimeBin.h:54 AliTRDchamberTimeBin.h:55 AliTRDchamberTimeBin.h:56 AliTRDchamberTimeBin.h:57 AliTRDchamberTimeBin.h:58 AliTRDchamberTimeBin.h:59 AliTRDchamberTimeBin.h:60 AliTRDchamberTimeBin.h:61 AliTRDchamberTimeBin.h:62 AliTRDchamberTimeBin.h:63 AliTRDchamberTimeBin.h:64 AliTRDchamberTimeBin.h:65 AliTRDchamberTimeBin.h:66 AliTRDchamberTimeBin.h:67 AliTRDchamberTimeBin.h:68 AliTRDchamberTimeBin.h:69 AliTRDchamberTimeBin.h:70 AliTRDchamberTimeBin.h:71 AliTRDchamberTimeBin.h:72 AliTRDchamberTimeBin.h:73 AliTRDchamberTimeBin.h:74 AliTRDchamberTimeBin.h:75 AliTRDchamberTimeBin.h:76 AliTRDchamberTimeBin.h:77 AliTRDchamberTimeBin.h:78 AliTRDchamberTimeBin.h:79 AliTRDchamberTimeBin.h:80 AliTRDchamberTimeBin.h:81 AliTRDchamberTimeBin.h:82 AliTRDchamberTimeBin.h:83 AliTRDchamberTimeBin.h:84 AliTRDchamberTimeBin.h:85 AliTRDchamberTimeBin.h:86 AliTRDchamberTimeBin.h:87 AliTRDchamberTimeBin.h:88 AliTRDchamberTimeBin.h:89 AliTRDchamberTimeBin.h:90 AliTRDchamberTimeBin.h:91 AliTRDchamberTimeBin.h:92 AliTRDchamberTimeBin.h:93 AliTRDchamberTimeBin.h:94 AliTRDchamberTimeBin.h:95 AliTRDchamberTimeBin.h:96 AliTRDchamberTimeBin.h:97 AliTRDchamberTimeBin.h:98 AliTRDchamberTimeBin.h:99 AliTRDchamberTimeBin.h:100 AliTRDchamberTimeBin.h:101 AliTRDchamberTimeBin.h:102 AliTRDchamberTimeBin.h:103 AliTRDchamberTimeBin.h:104