class AliTRDcluster : public AliCluster {
friend class AliHLTTRDCluster;
+ friend class AliTRDtrackletOflHelper;
public:
enum ETRDclusterStatus {
,kLUT = BIT(18)
,kGAUS = BIT(19)
,kCOG = BIT(20)
+ ,kXcorr = BIT(21) // steer efficient vd corrections
};
enum ETRDclusterMask {
kMaskedLeft = 0
Bool_t IsUsed() const { return IsClusterUsed(); }
Bool_t IsFivePad() const { return TestBit(kFivePad); }
inline Bool_t IsRPhiMethod(ETRDclusterStatus m) const;
+ Bool_t HasXcorr() const { return TestBit(kXcorr); }
UChar_t GetPadMaskedPosition() const { return fClusterMasking & 7; }
UChar_t GetPadMaskedStatus() const { return fClusterMasking >> 3; }
void SetPadMaskedStatus(UChar_t status);
void SetSigmaY2(Float_t s2, Float_t dt, Float_t exb, Float_t x0, Float_t z=-1., Float_t tgp=0.);
inline void SetRPhiMethod(ETRDclusterStatus m);
+ void SetXcorr(Bool_t xc = kTRUE) { SetBit(kXcorr,xc); }
void Use(Int_t u = 1) { SetBit(AliCluster::kUsed, u ? kTRUE : kFALSE); }
Float_t fQ; // Amplitude
Float_t fCenter; // Center of the cluster relative to the pad
+ inline void Update(Short_t adc[7]);
+
private:
Float_t GetDYcog(const Double_t *const y1=0x0, const Double_t *const y2=0x0);
};
+//___________________________________________________
+inline void AliTRDcluster::Update(Short_t adc[7])
+{
+ memcpy(fSignals, adc, 7*sizeof(Short_t));
+ fQ = Float_t(adc[2]+adc[3]+adc[4]);
+ if(IsRPhiMethod(AliTRDcluster::kLUT)) GetDYlut();
+ else GetDYcog();
+}
+
//________________________________________________
inline Bool_t AliTRDcluster::IsRPhiMethod(ETRDclusterStatus m) const
{