]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrackletMCM.cxx
Update From Debojit
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackletMCM.cxx
index e9597623a8a715f3ed2337a503f349eea3f112f3..f46a7a204525d506d4ecfda1bb8ed5fb56e2ec91 100644 (file)
@@ -32,42 +32,81 @@ AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord) :
   AliTRDtrackletBase(),
   fGeo(0x0),
   fHCId(-1),
-  fTrackletWord(trackletWord), 
-  fMCM(-1), 
-  fROB(-1), 
+  fTrackletWord(trackletWord),
+  fMCM(-1),
+  fROB(-1),
   fQ0(0),
   fQ1(0),
-  fLabel(-1)
-{ 
+  fNHits(0),
+  fNHits0(0),
+  fNHits1(0),
+  fSlope(0.),
+  fOffset(0.),
+  fError(0.),
+  fNClusters(0),
+  fResiduals(0x0),
+  fClsCharges(0x0)
+{
+  // constructor
+
     fGeo = new AliTRDgeometry();
+    fLabel[0] = -1;
+    fLabel[1] = -1;
+    fLabel[2] = -1;
 }
 
 AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord, Int_t hcid) :
   AliTRDtrackletBase(),
   fGeo(0x0),
   fHCId(hcid),
-  fTrackletWord(trackletWord), 
+  fTrackletWord(trackletWord),
   fMCM(-1),
   fROB(-1),
   fQ0(0),
   fQ1(0),
-  fLabel(-1)
-{ 
+  fNHits(0),
+  fNHits0(0),
+  fNHits1(0),
+  fSlope(0.),
+  fOffset(0.),
+  fError(0.),
+  fNClusters(0),
+  fResiduals(0x0),
+  fClsCharges(0x0)
+{
+  // constructor
+
     fGeo = new AliTRDgeometry();
+    fLabel[0] = -1;
+    fLabel[1] = -1;
+    fLabel[2] = -1;
 }
 
 AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord, Int_t hcid, Int_t rob, Int_t mcm) :
   AliTRDtrackletBase(),
   fGeo(0x0),
   fHCId(hcid),
-  fTrackletWord(trackletWord), 
+  fTrackletWord(trackletWord),
   fMCM(mcm),
   fROB(rob),
   fQ0(0),
   fQ1(0),
-  fLabel(-1)
-{ 
+  fNHits(0),
+  fNHits0(0),
+  fNHits1(0),
+  fSlope(0.),
+  fOffset(0.),
+  fError(0.),
+  fNClusters(0),
+  fResiduals(0x0),
+  fClsCharges(0x0)
+{
+  // constructor
+
     fGeo = new AliTRDgeometry();
+    fLabel[0] = -1;
+    fLabel[1] = -1;
+    fLabel[2] = -1;
 }
 
 AliTRDtrackletMCM::AliTRDtrackletMCM(const AliTRDtrackletMCM &rhs) :
@@ -79,13 +118,36 @@ AliTRDtrackletMCM::AliTRDtrackletMCM(const AliTRDtrackletMCM &rhs) :
   fROB(rhs.fROB),
   fQ0(rhs.fQ0),
   fQ1(rhs.fQ1),
-  fLabel(rhs.fLabel)
+  fNHits(rhs.fNHits),
+  fNHits0(rhs.fNHits0),
+  fNHits1(rhs.fNHits1),
+  fSlope(rhs.fSlope),
+  fOffset(rhs.fOffset),
+  fError(rhs.fError),
+  fNClusters(rhs.fNClusters),
+  fResiduals(0x0),
+  fClsCharges(0x0)
 {
+  // copy constructor
+
     fGeo = new AliTRDgeometry();
+    fResiduals = new Float_t[fNClusters];
+    fClsCharges = new Float_t[fNClusters];
+    for (Int_t iCls = 0; iCls < fNClusters; iCls++) {
+      fResiduals[iCls] = rhs.fResiduals[iCls];
+      fClsCharges[iCls] = rhs.fClsCharges[iCls];
+    }
+    fLabel[0] = rhs.fLabel[0];
+    fLabel[1] = rhs.fLabel[1];
+    fLabel[2] = rhs.fLabel[2];
 }
 
-AliTRDtrackletMCM::~AliTRDtrackletMCM() 
+AliTRDtrackletMCM::~AliTRDtrackletMCM()
 {
+  // destructor
+
+  delete [] fResiduals;
+  delete [] fClsCharges;
     delete fGeo;
 }
 
@@ -99,7 +161,7 @@ Int_t AliTRDtrackletMCM::GetYbin() const {
   }
 }
 
-Int_t AliTRDtrackletMCM::GetdY() const 
+Int_t AliTRDtrackletMCM::GetdY() const
 {
   // returns (signed) value of the deflection length
   if (fTrackletWord & (1 << 19)) {
@@ -109,3 +171,27 @@ Int_t AliTRDtrackletMCM::GetdY() const
     return ((fTrackletWord >> 13) & 0x7f);
   }
 }
+
+void AliTRDtrackletMCM::SetLabel(Int_t label[])
+{
+  // set the labels (up to 3)
+
+  fLabel[0] = label[0];
+  fLabel[1] = label[1];
+  fLabel[2] = label[2];
+}
+
+void AliTRDtrackletMCM::SetClusters(Float_t *res, Float_t *q, Int_t n)
+{
+  fNClusters = n;
+  delete [] fResiduals;
+  delete [] fClsCharges;
+
+  fResiduals = new Float_t[fNClusters];
+  fClsCharges = new Float_t[fNClusters];
+
+  for (Int_t iCls = 0; iCls < fNClusters; iCls++) {
+    fResiduals[iCls] = res[iCls];
+    fClsCharges[iCls] = q[iCls];
+  }
+}