]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDpadPlane.cxx
- add protection against invalid sector/stack information in on-line track matching
[u/mrichter/AliRoot.git] / TRD / AliTRDpadPlane.cxx
index 2851dd3a817fc6d28c53f6261aa1b517fc55fcf9..c9350e844303ce0266daa3bdabce98771f2ed9b4 100644 (file)
 #include <TMath.h>
 
 #include "AliTRDpadPlane.h"
-#include "AliTRDgeometry.h"
 
 ClassImp(AliTRDpadPlane)
 
 //_____________________________________________________________________________
 AliTRDpadPlane::AliTRDpadPlane()
   :TObject()
-  ,fPla(0)
-  ,fCha(0)
+  ,fLayer(0)
+  ,fStack(0)
   ,fLength(0)
   ,fWidth(0)
   ,fLengthRim(0)
@@ -57,6 +56,7 @@ AliTRDpadPlane::AliTRDpadPlane()
   ,fPadRow(0)
   ,fPadCol(0)
   ,fPadRowSMOffset(0)
+  ,fAnodeWireOffset(0)
 {
   //
   // Default constructor
@@ -65,10 +65,10 @@ AliTRDpadPlane::AliTRDpadPlane()
 }
 
 //_____________________________________________________________________________
-AliTRDpadPlane::AliTRDpadPlane(Int_t plane, Int_t chamber)
+AliTRDpadPlane::AliTRDpadPlane(Int_t layer, Int_t stack)
   :TObject()
-  ,fPla(plane)
-  ,fCha(chamber)
+  ,fLayer(layer)
+  ,fStack(stack)
   ,fLength(0)
   ,fWidth(0)
   ,fLengthRim(0)
@@ -86,6 +86,7 @@ AliTRDpadPlane::AliTRDpadPlane(Int_t plane, Int_t chamber)
   ,fPadRow(0)
   ,fPadCol(0)
   ,fPadRowSMOffset(0)
+  ,fAnodeWireOffset(0)
 {
   //
   // Constructor
@@ -93,53 +94,6 @@ AliTRDpadPlane::AliTRDpadPlane(Int_t plane, Int_t chamber)
 
 }
 
-//_____________________________________________________________________________
-AliTRDpadPlane::AliTRDpadPlane(const AliTRDpadPlane &p)
-  :TObject(p)
-  ,fPla(p.fPla)
-  ,fCha(p.fCha)
-  ,fLength(p.fLength)
-  ,fWidth(p.fWidth)
-  ,fLengthRim(p.fLengthRim)
-  ,fWidthRim(p.fLengthRim)
-  ,fLengthOPad(p.fLengthOPad)
-  ,fWidthOPad(p.fWidthOPad)
-  ,fLengthIPad(p.fLengthIPad)
-  ,fWidthIPad(p.fWidthIPad)
-  ,fRowSpacing(p.fRowSpacing)
-  ,fColSpacing(p.fColSpacing)
-  ,fNrows(p.fNrows)
-  ,fNcols(p.fNcols)
-  ,fTiltingAngle(p.fTiltingAngle)
-  ,fTiltingTan(p.fTiltingTan)
-  ,fPadRow(0)
-  ,fPadCol(0)
-  ,fPadRowSMOffset(p.fPadRowSMOffset)
-{
-  //
-  // AliTRDpadPlane copy constructor
-  //
-
-  Int_t iBin = 0;
-
-  if (((AliTRDpadPlane &) p).fPadRow) {
-    delete [] ((AliTRDpadPlane &) p).fPadRow;
-  }
-  ((AliTRDpadPlane &) p).fPadRow = new Double_t[fNrows];
-  for (iBin = 0; iBin < fNrows; iBin++) {
-    ((AliTRDpadPlane &) p).fPadRow[iBin] = fPadRow[iBin];
-  }                                                                             
-
-  if (((AliTRDpadPlane &) p).fPadCol) {
-    delete [] ((AliTRDpadPlane &) p).fPadCol;
-  }
-  ((AliTRDpadPlane &) p).fPadCol = new Double_t[fNrows];
-  for (iBin = 0; iBin < fNrows; iBin++) {
-    ((AliTRDpadPlane &) p).fPadCol[iBin] = fPadCol[iBin];
-  }                                                                             
-
-}
-
 //_____________________________________________________________________________
 AliTRDpadPlane::~AliTRDpadPlane()
 {
@@ -159,21 +113,6 @@ AliTRDpadPlane::~AliTRDpadPlane()
 
 }
 
-//_____________________________________________________________________________
-AliTRDpadPlane &AliTRDpadPlane::operator=(const AliTRDpadPlane &p)
-{
-  //
-  // Assignment operator
-  //
-
-  if (this != &p) {
-    ((AliTRDpadPlane &) p).Copy(*this);
-  }
-
-  return *this;
-
-}
-
 //_____________________________________________________________________________
 void AliTRDpadPlane::Copy(TObject &p) const
 {
@@ -183,28 +122,29 @@ void AliTRDpadPlane::Copy(TObject &p) const
 
   Int_t iBin = 0;
 
-  ((AliTRDpadPlane &) p).fPla            = fPla;
-  ((AliTRDpadPlane &) p).fCha            = fCha;
+  ((AliTRDpadPlane &) p).fLayer           = fLayer;
+  ((AliTRDpadPlane &) p).fStack           = fStack;
 
-  ((AliTRDpadPlane &) p).fLength         = fLength;
-  ((AliTRDpadPlane &) p).fWidth          = fWidth;
-  ((AliTRDpadPlane &) p).fLengthRim      = fLengthRim;
-  ((AliTRDpadPlane &) p).fWidthRim       = fWidthRim;
-  ((AliTRDpadPlane &) p).fLengthOPad     = fLengthOPad;
-  ((AliTRDpadPlane &) p).fWidthOPad      = fWidthOPad;
-  ((AliTRDpadPlane &) p).fLengthIPad     = fLengthIPad;
-  ((AliTRDpadPlane &) p).fWidthIPad      = fWidthIPad;
+  ((AliTRDpadPlane &) p).fLength          = fLength;
+  ((AliTRDpadPlane &) p).fWidth           = fWidth;
+  ((AliTRDpadPlane &) p).fLengthRim       = fLengthRim;
+  ((AliTRDpadPlane &) p).fWidthRim        = fWidthRim;
+  ((AliTRDpadPlane &) p).fLengthOPad      = fLengthOPad;
+  ((AliTRDpadPlane &) p).fWidthOPad       = fWidthOPad;
+  ((AliTRDpadPlane &) p).fLengthIPad      = fLengthIPad;
+  ((AliTRDpadPlane &) p).fWidthIPad       = fWidthIPad;
 
-  ((AliTRDpadPlane &) p).fRowSpacing     = fRowSpacing;
-  ((AliTRDpadPlane &) p).fColSpacing     = fColSpacing;
+  ((AliTRDpadPlane &) p).fRowSpacing      = fRowSpacing;
+  ((AliTRDpadPlane &) p).fColSpacing      = fColSpacing;
 
-  ((AliTRDpadPlane &) p).fNrows          = fNrows;
-  ((AliTRDpadPlane &) p).fNcols          = fNcols;
+  ((AliTRDpadPlane &) p).fNrows           = fNrows;
+  ((AliTRDpadPlane &) p).fNcols           = fNcols;
 
-  ((AliTRDpadPlane &) p).fTiltingAngle   = fTiltingAngle;
-  ((AliTRDpadPlane &) p).fTiltingTan     = fTiltingTan;
+  ((AliTRDpadPlane &) p).fTiltingAngle    = fTiltingAngle;
+  ((AliTRDpadPlane &) p).fTiltingTan      = fTiltingTan;
 
-  ((AliTRDpadPlane &) p).fPadRowSMOffset = fPadRowSMOffset;
+  ((AliTRDpadPlane &) p).fPadRowSMOffset  = fPadRowSMOffset;
+  ((AliTRDpadPlane &) p).fAnodeWireOffset = fAnodeWireOffset;
 
   if (((AliTRDpadPlane &) p).fPadRow) {
     delete [] ((AliTRDpadPlane &) p).fPadRow;
@@ -326,7 +266,7 @@ Int_t AliTRDpadPlane::GetPadRowNumberROC(Double_t z) const
 Int_t AliTRDpadPlane::GetPadColNumber(Double_t rphi) const
 {
   //
-  // Finds the pad column number for a given global rphi-position
+  // Finds the pad column number for a given rphi-position
   //
 
   Int_t col    = 0;
@@ -334,29 +274,29 @@ Int_t AliTRDpadPlane::GetPadColNumber(Double_t rphi) const
   Int_t nbelow = 0;
   Int_t middle = 0;
 
-  if ((rphi > GetCol0()  ) || 
-      (rphi < GetColEnd())) {
+  if ((rphi < GetCol0()  ) || 
+      (rphi > GetColEnd())) {
 
     col = -1;
 
   }
   else {
 
-    nabove = fNcols + 1;
+    nabove = fNcols;
     nbelow = 0;
     while (nabove - nbelow > 1) {
       middle = (nabove + nbelow) / 2;
-      if (rphi == fPadCol[middle-1]) {
+      if (rphi == fPadCol[middle]) {
         col    = middle;
       }
-      if (rphi  > fPadCol[middle-1]) {
-        nabove = middle;
+      if (rphi  > fPadCol[middle]) {
+        nbelow = middle;
       }
       else {
-        nbelow = middle;
+        nabove = middle;
       }
     }
-    col = nbelow - 1;
+    col = nbelow;
 
   }