]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDcluster.cxx
possibility to test a single subdetector
[u/mrichter/AliRoot.git] / TRD / AliTRDcluster.cxx
index 279733c6fd7fea2d1a3dcd4cdaf8adc4ad3cd054..cb166156116d1ef96011fd96ab36e8154a8575eb 100644 (file)
@@ -29,12 +29,15 @@ 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
@@ -46,20 +49,55 @@ AliTRDcluster::AliTRDcluster()
 
 }
 
+//___________________________________________________________________________
+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
+  //
+
+  for (Int_t i = 0; i < 7; i++) {
+    fSignals[i] = signals[i];
+  }
+
+  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);
@@ -155,30 +193,47 @@ void AliTRDcluster::AddTrackIndex(Int_t *track)
 }          
 
 //_____________________________________________________________________________
-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);
 }