]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDcluster.cxx
Retrieval of parameters from config file implemented
[u/mrichter/AliRoot.git] / TRD / AliTRDcluster.cxx
index bef947b92960f8019e07279c962a0d5408b53706..cb166156116d1ef96011fd96ab36e8154a8575eb 100644 (file)
 /////////////////////////////////////////////////////////////////////////////// 
 
 #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
@@ -47,48 +49,55 @@ AliTRDcluster::AliTRDcluster()
 
 }
 
-//_____________________________________________________________________________
-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);
@@ -184,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);
 }