X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDtrackingChamber.cxx;h=a432ae79ac3178ba2b14ba22c1a1ccfeec665983;hb=dcc60657b357cc833961e5204d55578b6b38e753;hp=27bc7cee4c89dc4d2c46758f5d125eeee2064c2e;hpb=4d6aee34d332e5190cfe20c3f1abcacada5a780d;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDtrackingChamber.cxx b/TRD/AliTRDtrackingChamber.cxx index 27bc7cee4c8..a432ae79ac3 100644 --- a/TRD/AliTRDtrackingChamber.cxx +++ b/TRD/AliTRDtrackingChamber.cxx @@ -37,6 +37,7 @@ #include "AliTRDgeometry.h" #include "AliTRDpadPlane.h" #include "AliTRDcalibDB.h" +#include "AliTRDCommonParam.h" #include "Cal/AliTRDCalDet.h" #include "Cal/AliTRDCalROC.h" @@ -47,6 +48,12 @@ AliTRDtrackingChamber::AliTRDtrackingChamber() :TObject() ,fDetector(-1) ,fX0(0.) + // ,fExB(0.) + // ,fVD(0.) + // ,fT0(0.) + // ,fS2PRF(0.) + // ,fDiffL(0.) + // ,fDiffT(0.) {} //_______________________________________________________ @@ -56,13 +63,7 @@ void AliTRDtrackingChamber::Clear(const Option_t *opt) } //_______________________________________________________ -void AliTRDtrackingChamber::InsertCluster(AliTRDcluster *c, Int_t index) -{ - fTB[c->GetPadTime()].InsertCluster(c, index); -} - -//_______________________________________________________ -Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDet *cal, Bool_t hlt) +Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, Bool_t hlt) { // Init chamber and all time bins (AliTRDchamberTimeBin) // Calculates radial position of the chamber based on @@ -73,8 +74,8 @@ Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDe return kFALSE; } - Int_t stack = geo->GetStack(fDetector); - Int_t layer = geo->GetLayer(fDetector); + Int_t stack = AliTRDgeometry::GetStack(fDetector); + Int_t layer = AliTRDgeometry::GetLayer(fDetector); AliTRDpadPlane *pp = geo->GetPadPlane(layer, stack); Double_t zl = pp->GetRow0ROC() - pp->GetRowEndROC(); Double_t z0 = geo->GetRow0(layer, stack, 0) - zl; @@ -85,30 +86,35 @@ Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDe if(!fTB[itb]) continue; fTB[itb].SetRange(z0, zl); fTB[itb].SetNRows(nrows); + fTB[itb].SetPlane(layer); + fTB[itb].SetStack(stack); + fTB[itb].SetSector(AliTRDgeometry::GetSector(fDetector)); fTB[itb].BuildIndices(); index[jtb++] = itb; } if(jtb<2) return kFALSE; - - + + AliTRDcalibDB *calib = AliTRDcalibDB::Instance(); + Float_t t0; + if(!hlt){ + t0 = calib->GetT0Average(fDetector); + }else{ + t0 = calib->GetT0Det()->GetValue(fDetector); + } + // fVD = calib->GetVdriftAverage(fDetector); + // fS2PRF = calib->GetPRFROC(fDetector)->GetMean(); fS2PRF *= fS2PRF; + // fExB = AliTRDCommonParam::Instance()->GetOmegaTau(fVD); + // AliTRDCommonParam::Instance()->GetDiffCoeff(fDiffL, fDiffT, fVD); + // ESTIMATE POSITION OF PAD PLANE FOR THIS CHAMBER + //fTB[Int_t(t0)].SetT0(); Double_t x0 = fTB[index[0]].GetX(); Double_t x1 = fTB[index[1]].GetX(); Double_t dx = (x0 - x1)/(index[1] - index[0]); - - Int_t t0 = (Int_t)cal->GetValue(fDetector); - if(!hlt){ - Double_t mean = 0.0; - AliTRDCalROC *roc = AliTRDcalibDB::Instance()->GetT0ROC(fDetector); - for(Int_t k = 0; kGetNchannels(); k++) mean += roc->GetValue(k); - mean /= roc->GetNchannels(); - t0 = (Int_t)(cal->GetValue(fDetector) + mean); - } - fTB[t0].SetT0(); fX0 = x0 + dx*(index[0] - t0); return kTRUE; } - + //_______________________________________________________ Int_t AliTRDtrackingChamber::GetNClusters() const { @@ -259,8 +265,8 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer, Float_t *cogz[kMaxRows]; // Lookup-Table storing coordinates according to the bins - Float_t yLengths[kMaxCols]; - Float_t zLengths[kMaxRows]; + Float_t yLengths[kMaxCols]; memset(yLengths, 0, kMaxCols*sizeof(Float_t)); + Float_t zLengths[kMaxRows]; memset(zLengths, 0, kMaxRows*sizeof(Float_t)); for(Int_t icnt = 0; icnt < nCols; icnt++){ yLengths[icnt] = pp->GetColPos(nCols - 1 - icnt) + binlength/2; } @@ -302,7 +308,7 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer, Int_t col, row, lower, lower1, upper, upper1; for(Int_t ib = 0; ib < nCont; ib++){ if(nCandidates >= AliTRDtrackerV1::kMaxTracksStack){ - AliWarning(Form("Number of seed candidates %d exceeded maximum allowed per stack %d", nCandidates, AliTRDtrackerV1::kMaxTracksStack)); + AliDebug(1, Form("Number of seed candidates %d exceeded maximum allowed per stack %d", nCandidates, AliTRDtrackerV1::kMaxTracksStack)); break; } // Positions @@ -374,6 +380,7 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer, n++; } } + if(!n) continue; pos[0] = x/n; pos[1] = y/n; pos[2] = z/n; @@ -385,12 +392,12 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer, fakeLayer->BuildIndices(); //fakeLayer->Print(); - if(rec->GetStreamLevel(AliTRDReconstructor::kTracker) >= 3){ + if(rec->GetRecoParam()->GetStreamLevel(AliTRDrecoParam::kTracker) >= 3){ //TMatrixD hist(nRows, nCols); //for(Int_t i = 0; i < nRows; i++) // for(Int_t j = 0; j < nCols; j++) // hist(i,j) = histogram[i][j]; - TTreeSRedirector &cstreamer = *rec->GetDebugStream(AliTRDReconstructor::kTracker); + TTreeSRedirector &cstreamer = *rec->GetDebugStream(AliTRDrecoParam::kTracker); cstreamer << "GetSeedingLayer" << "layer=" << layer << "ymin=" << ymin