///////////////////////////////////////////////////////////////////////////////
#include "AliTRDcluster.h"
-#include "AliTRDrecPoint.h"
ClassImp(AliTRDcluster)
//___________________________________________________________________________
AliTRDcluster::AliTRDcluster()
:AliCluster()
+ ,fPadCol(0)
+ ,fPadRow(0)
+ ,fPadTime(0)
+ ,fLocalTimeBin(0)
+ ,fNPads(0)
+ ,fClusterMasking(0)
,fDetector(0)
- ,fTimeBin(0)
,fQ(0)
- ,fNPads(0)
,fCenter(0)
- ,fPad(0)
{
//
// Default constructor
}
-//_____________________________________________________________________________
-AliTRDcluster::AliTRDcluster(const AliTRDrecPoint &p)
- :AliCluster()
- ,fDetector(p.GetDetector())
- ,fTimeBin(p.GetLocalTimeBin())
- ,fQ(p.GetEnergy())
- ,fNPads(0)
- ,fCenter(0)
- ,fPad(0)
-{
+//___________________________________________________________________________
+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, UChar_t row, UChar_t time
+ , Char_t timebin, Float_t center, UShort_t volid)
+ :AliCluster(volid,pos[0],pos[1],pos[2],sig[0],sig[1],0.0,0x0)
+ ,fPadCol(col)
+ ,fPadRow(row)
+ ,fPadTime(time)
+ ,fLocalTimeBin(timebin)
+ ,fNPads(npads)
+ ,fClusterMasking(0)
+ ,fDetector(det)
+ ,fQ(q)
+ ,fCenter(center)
+{
//
- // Constructor from AliTRDrecPoint
+ // Constructor
//
- SetLabel(p.GetTrackIndex(0),0);
- SetLabel(p.GetTrackIndex(1),1);
- SetLabel(p.GetTrackIndex(2),2);
- SetY(p.GetY());
- SetZ(p.GetZ());
+ for (Int_t i = 0; i < 7; i++) {
+ fSignals[i] = signals[i];
+ }
- //fSigmaY2 = p.GetSigmaY2();
- //fSigmaZ2 = p.GetSigmaZ2();
- // Why is this ????
- SetSigmaY2(0.2);
- SetSigmaZ2(5.0);
+ if (tracks) {
+ AddTrackIndex(tracks);
+ }
}
//_____________________________________________________________________________
AliTRDcluster::AliTRDcluster(const AliTRDcluster &c)
- :AliCluster()
+ :AliCluster(c)
+ ,fPadCol(c.fPadCol)
+ ,fPadRow(c.fPadRow)
+ ,fPadTime(c.fPadTime)
+ ,fLocalTimeBin(c.fLocalTimeBin)
+ ,fNPads(c.fNPads)
+ ,fClusterMasking(c.fClusterMasking)
,fDetector(c.fDetector)
- ,fTimeBin(c.fTimeBin)
,fQ(c.fQ)
- ,fNPads(c.fNPads)
,fCenter(c.fCenter)
- ,fPad(c.fPad)
{
//
// Copy constructor
//
+ SetBit(1, c.IsInChamber());
SetLabel(c.GetLabel(0),0);
SetLabel(c.GetLabel(1),1);
SetLabel(c.GetLabel(2),2);
}
//_____________________________________________________________________________
-void AliTRDcluster::SetSignals(Short_t *signals)
+Float_t AliTRDcluster::GetSumS() const
{
//
- // Write signals in the cluster
+ // Returns the total charge from a not unfolded cluster
//
+ Float_t sum = 0.0;
for (Int_t i = 0; i < 7; i++) {
- fSignals[i] = signals[i];
+ sum += fSignals[i];
}
+ return sum;
+
}
//_____________________________________________________________________________
-Float_t AliTRDcluster::GetSumS() const
+void AliTRDcluster::SetPadMaskedPosition(UChar_t position)
{
//
- // Returns the total charge from a not unfolded cluster
+ // store the pad corruption position code
+ //
+ // Code: 1 = left cluster
+ // 2 = middle cluster;
+ // 4 = right cluster
//
+ for(Int_t ipos = 0; ipos < 3; ipos++)
+ if(TESTBIT(position, ipos))
+ SETBIT(fClusterMasking, ipos);
+}
- Float_t sum = 0.0;
- for (Int_t i = 0; i < 7; i++) {
- sum += fSignals[i];
- }
-
- return sum;
-
+//_____________________________________________________________________________
+void AliTRDcluster::SetPadMaskedStatus(UChar_t status)
+{
+ //
+ // store the status of the corrupted pad
+ //
+ // Code: 2 = noisy
+ // 4 = Bridged Left
+ // 8 = Bridged Right
+ // 32 = Not Connected
+ for(Int_t ipos = 0; ipos < 5; ipos++)
+ if(TESTBIT(status, ipos))
+ SETBIT(fClusterMasking, ipos + 3);
}