X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDtrackingSector.cxx;h=5852d6ff5ca3beaa22d8188cc11d969de4838e89;hb=7b61cd9c9d60f8fde660333037130db4e7f7e74e;hp=aecfbc53bb13eb0ffbeced0a1990cfd9c65e2086;hpb=a1c3aded06c34d2c26325f957769b09969d046a4;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDtrackingSector.cxx b/TRD/AliTRDtrackingSector.cxx index aecfbc53bb1..5852d6ff5ca 100644 --- a/TRD/AliTRDtrackingSector.cxx +++ b/TRD/AliTRDtrackingSector.cxx @@ -13,30 +13,13 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.6 2001/05/28 17:07:58 hristov -Last minute changes; ExB correction in AliTRDclusterizerV1; taking into account of material in G10 TEC frames and material between TEC planes (C.Blume,S.Sedykh) +/* $Id$ */ -Revision 1.5 2000/12/08 16:07:02 cblume -Update of the tracking by Sergei - -Revision 1.4 2000/10/16 01:16:53 cblume -Changed timebin 0 to be the one closest to the readout - -Revision 1.3 2000/10/15 23:40:01 cblume -Remove AliTRDconst - -Revision 1.2 2000/10/06 16:49:46 cblume -Made Getters const - -Revision 1.1.2.2 2000/10/04 16:34:58 cblume -Replace include files by forward declarations - -Revision 1.1.2.1 2000/09/22 14:47:52 cblume -Add the tracking code - -*/ +///////////////////////////////////////////////////////////////////////// +// // +// Tracking sector // +// // +///////////////////////////////////////////////////////////////////////// #include @@ -47,11 +30,11 @@ Add the tracking code #include "AliTRDcluster.h" #include "AliTRDtimeBin.h" #include "AliTRDtrackingSector.h" +#include "AliTRDparameter.h" ClassImp(AliTRDtrackingSector) //_______________________________________________________ - AliTRDtrackingSector::~AliTRDtrackingSector() { // @@ -74,11 +57,14 @@ AliTRDtimeBin &AliTRDtrackingSector::operator[](Int_t i) } //_______________________________________________________ - void AliTRDtrackingSector::SetUp() { - AliTRD *TRD = (AliTRD*) gAlice->GetDetector("TRD"); - fGeom = TRD->GetGeometry(); + // + // Initialization + // + + AliTRD *trd = (AliTRD*) gAlice->GetDetector("TRD"); + fGeom = trd->GetGeometry(); fTimeBinSize = fGeom->GetTimeBinSize(); @@ -87,71 +73,89 @@ void AliTRDtrackingSector::SetUp() fTimeBin = new AliTRDtimeBin[fN]; + if (!fPar) { + fPar = new AliTRDparameter("TRDparameter","Standard TRD parameter"); + } + + fTimeBinSize = fPar->GetTimeBinSize(); + } //______________________________________________________ - Double_t AliTRDtrackingSector::GetX(Int_t tb) const { + // + // Get global x coordinate + // + if( (tb<0) || (tb>fN-1)) { fprintf(stderr,"AliTRDtrackingSector::GetX: TimeBin index is out of range !\n"); return -99999.; } else { - Int_t tb_per_plane = fN/AliTRDgeometry::Nplan(); - Int_t local_tb = tb_per_plane - tb%tb_per_plane - 1; + Int_t tbPerPlane = fN/AliTRDgeometry::Nplan(); + Int_t localTb = tbPerPlane - tb%tbPerPlane - 1; - Int_t plane = tb/tb_per_plane; - Float_t t0 = fGeom->GetTime0(plane); - Double_t x = t0 - (local_tb + 0.5) * fTimeBinSize; + Int_t plane = tb/tbPerPlane; + Float_t t0 = fPar->GetTime0(plane); + Double_t x = t0 - (localTb + 0.5) * fTimeBinSize; return x; + } + } //______________________________________________________ - Int_t AliTRDtrackingSector::GetTimeBinNumber(Double_t x) const { - Float_t r_out = fGeom->GetTime0(AliTRDgeometry::Nplan()-1); - Float_t r_in = fGeom->GetTime0(0) - AliTRDgeometry::DrThick(); + // + // Returns the time bin number + // + Float_t rOut = fPar->GetTime0(AliTRDgeometry::Nplan()-1); + Float_t rIn = fPar->GetTime0(0) - AliTRDgeometry::DrThick(); - if(x >= r_out) return fN-1; - if(x <= r_in) return 0; + + if(x >= rOut) return fN-1; + if(x <= rIn) return 0; Int_t plane; for (plane = AliTRDgeometry::Nplan()-1; plane >= 0; plane--) { - if(x > (fGeom->GetTime0(plane) - AliTRDgeometry::DrThick())) break; + if(x > (fPar->GetTime0(plane) - AliTRDgeometry::DrThick())) break; } - Int_t tb_per_plane = fN/AliTRDgeometry::Nplan(); - Int_t local_tb = Int_t((fGeom->GetTime0(plane)-x)/fTimeBinSize); + Int_t tbPerPlane = fN/AliTRDgeometry::Nplan(); + Int_t localTb = Int_t((fPar->GetTime0(plane)-x)/fTimeBinSize); - if((local_tb < 0) || (local_tb >= tb_per_plane)) { + if((localTb < 0) || (localTb >= tbPerPlane)) { printf("AliTRDtrackingSector::GetTimeBinNumber: \n"); printf("local time bin %d is out of bounds [0..%d]: x = %f \n", - local_tb,tb_per_plane-1,x); + localTb,tbPerPlane-1,x); return -1; } - Int_t time_bin = (plane + 1) * tb_per_plane - 1 - local_tb; + Int_t timeBin = (plane + 1) * tbPerPlane - 1 - localTb; - return time_bin; + return timeBin; } //______________________________________________________ - -Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t local_tb) const +Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t localTb) const { + // + // Time bin + // + Int_t plane = fGeom->GetPlane(det); - Int_t tb_per_plane = fN/AliTRDgeometry::Nplan(); + Int_t tbPerPlane = fN/AliTRDgeometry::Nplan(); + + Int_t timeBin = (plane + 1) * tbPerPlane - 1 - localTb; - Int_t time_bin = (plane + 1) * tb_per_plane - 1 - local_tb; + return timeBin; - return time_bin; } @@ -159,15 +163,15 @@ Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t local_tb) const Bool_t AliTRDtrackingSector::TECframe(Int_t tb, Double_t y, Double_t z) const { -// -// Returns if point defined by is within -// the TEC G10 frame, otherwise returns -// + // + // Returns if point defined by is within + // the TEC G10 frame, otherwise returns + // if((tb > (fN-1)) || (tb < 0)) return kFALSE; - Int_t tb_per_plane = fN/AliTRDgeometry::Nplan(); - Int_t plane = tb/tb_per_plane; + Int_t tbPerPlane = fN/AliTRDgeometry::Nplan(); + Int_t plane = tb/tbPerPlane; Double_t x = GetX(tb); y = TMath::Abs(y); @@ -181,17 +185,18 @@ Bool_t AliTRDtrackingSector::TECframe(Int_t tb, Double_t y, Double_t z) const for(Int_t iCha = 1; iCha < AliTRDgeometry::Ncham(); iCha++) { - fRow0 = fGeom->GetRow0(plane,iCha-1,0); - fRowPadSize = fGeom->GetRowPadSize(plane,iCha-1,0); - nPadRows = fGeom->GetRowMax(plane,iCha-1,0); + fRow0 = fPar->GetRow0(plane,iCha-1,0); + fRowPadSize = fPar->GetRowPadSize(plane,iCha-1,0); + nPadRows = fPar->GetRowMax(plane,iCha-1,0); zmin = fRow0 - fRowPadSize/2 + fRowPadSize * nPadRows; - fRow0 = fGeom->GetRow0(plane,iCha,0); - fRowPadSize = fGeom->GetRowPadSize(plane,iCha,0); + fRow0 = fPar->GetRow0(plane,iCha,0); + fRowPadSize = fPar->GetRowPadSize(plane,iCha,0); zmax = fRow0 - fRowPadSize/2; if((z > zmin) && (z < zmax)) return kTRUE; } return kFALSE; + }