#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)
,fPadRow(0)
,fPadCol(0)
,fPadRowSMOffset(0)
+ ,fAnodeWireOffset(0)
{
//
// Default constructor
}
//_____________________________________________________________________________
-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)
,fPadRow(0)
,fPadCol(0)
,fPadRowSMOffset(0)
+ ,fAnodeWireOffset(0)
{
//
// Constructor
//_____________________________________________________________________________
AliTRDpadPlane::AliTRDpadPlane(const AliTRDpadPlane &p)
:TObject(p)
- ,fPla(p.fPla)
- ,fCha(p.fCha)
+ ,fLayer(p.fLayer)
+ ,fStack(p.fStack)
,fLength(p.fLength)
,fWidth(p.fWidth)
,fLengthRim(p.fLengthRim)
,fPadRow(0)
,fPadCol(0)
,fPadRowSMOffset(p.fPadRowSMOffset)
+ ,fAnodeWireOffset(p.fAnodeWireOffset)
{
//
// AliTRDpadPlane copy constructor
Int_t iBin = 0;
- if (((AliTRDpadPlane &) p).fPadRow) {
- delete [] ((AliTRDpadPlane &) p).fPadRow;
- }
- ((AliTRDpadPlane &) p).fPadRow = new Double_t[fNrows];
+ fPadRow = new Double_t[fNrows];
for (iBin = 0; iBin < fNrows; iBin++) {
- ((AliTRDpadPlane &) p).fPadRow[iBin] = fPadRow[iBin];
+ fPadRow[iBin] = ((AliTRDpadPlane &) p).fPadRow[iBin];
}
- if (((AliTRDpadPlane &) p).fPadCol) {
- delete [] ((AliTRDpadPlane &) p).fPadCol;
- }
- ((AliTRDpadPlane &) p).fPadCol = new Double_t[fNrows];
+ fPadCol = new Double_t[fNrows];
for (iBin = 0; iBin < fNrows; iBin++) {
- ((AliTRDpadPlane &) p).fPadCol[iBin] = fPadCol[iBin];
+ fPadCol[iBin] = ((AliTRDpadPlane &) p).fPadCol[iBin];
}
}
// Assignment operator
//
- if (this != &p) {
- ((AliTRDpadPlane &) p).Copy(*this);
+ if (this == &p) {
+ return *this;
}
+ fLayer = p.fLayer;
+ fStack = p.fStack;
+ 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;
+ fAnodeWireOffset = p.fAnodeWireOffset;
+
+ Int_t iBin = 0;
+
+ if (fPadRow) {
+ delete [] fPadRow;
+ }
+ fPadRow = new Double_t[fNrows];
+ for (iBin = 0; iBin < fNrows; iBin++) {
+ fPadRow[iBin] = ((AliTRDpadPlane &) p).fPadRow[iBin];
+ }
+
+ if (fPadCol) {
+ delete [] fPadCol;
+ }
+ fPadCol = new Double_t[fNrows];
+ for (iBin = 0; iBin < fNrows; iBin++) {
+ fPadCol[iBin] = ((AliTRDpadPlane &) p).fPadCol[iBin];
+ }
+
return *this;
}
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;
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;
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;
}