public:
+ enum { kInChamber = BIT(14)
+ , kShared = BIT(15)
+ };
+ enum { kMaskedLeft = BIT(0)
+ , kMaskedCenter= BIT(1)
+ , kMaskedRight = BIT(2)
+ };
+
AliTRDcluster();
AliTRDcluster(Int_t det, Float_t q, Float_t *pos, Float_t *sig
, Int_t *tracks, Char_t npads, Short_t *signals
- , UChar_t col, Char_t timebin
- , Float_t center, UShort_t volid);
+ , UChar_t col, UChar_t row, UChar_t time
+ , Char_t timebin, Float_t center, UShort_t volid);
AliTRDcluster(const AliTRDcluster &c);
+ virtual ~AliTRDcluster() {};
virtual void AddTrackIndex(Int_t *i);
- Int_t IsUsed() const { return (fQ < 0) ? 1 : 0; }
- void Use(Int_t = 0) { fQ = -fQ; }
-
- Int_t GetDetector() const { return fDetector; }
- Int_t GetLocalTimeBin() const { return fTimeBin; }
- Float_t GetQ() const { return fQ; }
- Int_t GetNPads() const { return fNPads; }
- Float_t GetCenter() const { return fCenter; }
- Int_t GetPad() const { return fPad; }
- Short_t *GetSignals() { return fSignals; }
+ Bool_t IsInChamber() const { return TestBit(kInChamber); }
+ Bool_t IsMasked() const { return fClusterMasking ? kTRUE : kFALSE; }
+ Bool_t IsShared() const { return TestBit(kShared); }
+ Bool_t IsUsed() const { return (fQ < 0) ? kTRUE : kFALSE; }
+
+ UChar_t GetPadMaskedPosition() const { return fClusterMasking & 7; }
+ UChar_t GetPadMaskedStatus() const { return fClusterMasking >> 3; }
+ Int_t GetDetector() const { return fDetector; }
+ Int_t GetLocalTimeBin() const { return fLocalTimeBin; }
+ Float_t GetQ() const { return fQ; }
+ Int_t GetNPads() const { return fNPads; }
+ Float_t GetCenter() const { return fCenter; }
+ Int_t GetPadCol() const { return fPadCol; }
+ Int_t GetPadRow() const { return fPadRow; }
+ Int_t GetPadTime() const { return fPadTime; }
+ Short_t *GetSignals() { return fSignals; }
Float_t GetSumS() const;
- protected:
-
- Int_t fDetector; // TRD detector number
- Char_t fTimeBin; // Time bin number within the detector
- Float_t fQ; // Amplitude
- Char_t fNPads; // Number of pads in cluster
- Float_t fCenter; // Center of the cluster relative to the pad
- UChar_t fPad; // Central pad number
- Short_t fSignals[7]; // Signals in the cluster
-
- ClassDef(AliTRDcluster,4) // Cluster for the TRD
-
+ void SetLocalTimeBin(Char_t t) { fLocalTimeBin = t; }
+ void SetInChamber(Bool_t in = kTRUE) { SetBit(kInChamber,in); }
+ void SetPadMaskedPosition(UChar_t position);
+ void SetPadMaskedStatus(UChar_t status);
+ void SetShared(Bool_t sh = kTRUE) { SetBit(kShared,sh); }
+ void Use(Int_t = 0) { fQ = -fQ; }
+
+ protected:
+ UChar_t fPadCol; // Central pad number in column direction
+ UChar_t fPadRow; // Central pad number in row direction
+ UChar_t fPadTime; // Uncalibrated time bin number
+ Char_t fLocalTimeBin; // T0-calibrated time bin number
+ UChar_t fNPads; // Number of pads in cluster
+ UChar_t fClusterMasking; // Bit field containing cluster status information;
+ Short_t fDetector; // TRD detector number
+ Short_t fSignals[7]; // Signals in the cluster
+ Float_t fQ; // Amplitude
+ Float_t fCenter; // Center of the cluster relative to the pad
+
+ ClassDef(AliTRDcluster, 6) // Cluster for the TRD
};
#endif