X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFtracker.cxx;h=28243e0f345fa596d1198fc3ceff0950c03a3e15;hb=572b6f201082bbd2ddf10cc2df56bfe01590e21a;hp=1cb2afada0f7f4134d95dcd61e99a6e062d35ef8;hpb=5478df1fab350a211554b30666d23c60ade903cd;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFtracker.cxx b/TOF/AliTOFtracker.cxx index 1cb2afada0f..28243e0f345 100644 --- a/TOF/AliTOFtracker.cxx +++ b/TOF/AliTOFtracker.cxx @@ -37,17 +37,18 @@ #include "AliAlignObj.h" #include "AliESDtrack.h" -#include "AliESD.h" +#include "AliESDEvent.h" #include "AliLog.h" #include "AliTrackPointArray.h" #include "AliTOFcalib.h" #include "AliTOFRecoParam.h" #include "AliTOFcluster.h" -#include "AliTOFGeometryV5.h" +#include "AliTOFGeometry.h" #include "AliTOFtracker.h" #include "AliTOFtrack.h" +#include "AliCDBManager.h" extern TGeoManager *gGeoManager; extern TROOT *gROOT; @@ -88,9 +89,9 @@ AliTOFtracker::AliTOFtracker(): //AliTOFtracker main Ctor // Gettimg the geometry - fGeom=new AliTOFGeometryV5(); + fGeom= new AliTOFGeometry(); // Read the reconstruction parameters from the OCDB - AliTOFcalib *calib = new AliTOFcalib(fGeom); + AliTOFcalib* calib=new AliTOFcalib(); fRecoParam = (AliTOFRecoParam*)calib->ReadRecParFromCDB("TOF/Calib",-1); if(fRecoParam->GetApplyPbPbCuts())fRecoParam=fRecoParam->GetPbPbparam(); Double_t parPID[2]; @@ -98,7 +99,7 @@ AliTOFtracker::AliTOFtracker(): parPID[1]=fRecoParam->GetTimeNSigma(); fPid=new AliTOFpidESD(parPID); InitCheckHists(); - + delete calib; } //_____________________________________________________________________________ AliTOFtracker::AliTOFtracker(const AliTOFtracker &t): @@ -143,7 +144,6 @@ AliTOFtracker::AliTOFtracker(const AliTOFtracker &t): fnunmatch=t.fnunmatch; fnmatch=t.fnmatch; fRecoParam=t.fRecoParam; - fGeom=t.fGeom; fPid=t.fPid; fSeeds=t.fSeeds; fTracks=t.fTracks; @@ -162,7 +162,7 @@ AliTOFtracker& AliTOFtracker::operator=(const AliTOFtracker &t) this->fnunmatch=t.fnunmatch; this->fnmatch=t.fnmatch; this->fRecoParam = t.fRecoParam; - this->fGeom = t.fGeom; + this->fGeom=t.fGeom; this->fPid = t.fPid; this->fSeeds=t.fSeeds; this->fTracks=t.fTracks; @@ -178,7 +178,9 @@ AliTOFtracker::~AliTOFtracker() { SaveCheckHists(); - delete fRecoParam; + if(!(AliCDBManager::Instance()->GetCacheFlag())){ + delete fRecoParam; + } delete fGeom; delete fPid; delete fHDigClusMap; @@ -194,7 +196,7 @@ AliTOFtracker::~AliTOFtracker() { delete fCalTree; } //_____________________________________________________________________________ -Int_t AliTOFtracker::PropagateBack(AliESD* event) { +Int_t AliTOFtracker::PropagateBack(AliESDEvent* event) { // // Gets seeds from ESD event and Match with TOF Clusters // @@ -241,17 +243,12 @@ Int_t AliTOFtracker::PropagateBack(AliESD* event) { AliESDtrack *t=event->GetTrack(i); AliESDtrack *seed =(AliESDtrack*)fSeeds->UncheckedAt(i); if(seed->GetTOFsignal()>0){ - Float_t info[10]; - seed->GetTOFInfo(info); t->SetTOFsignal(seed->GetTOFsignal()); t->SetTOFcluster(seed->GetTOFcluster()); t->SetTOFsignalToT(seed->GetTOFsignalToT()); + t->SetTOFsignalRaw(seed->GetTOFsignalRaw()); + t->SetTOFsignalDz(seed->GetTOFsignalDz()); t->SetTOFCalChannel(seed->GetTOFCalChannel()); - AliDebug(2,Form(" Setting TOF info: %f %f %f = ",info[0],info[1],info[2])); - t->SetTOFInfo(info); - - t->GetTOFInfo(info); - AliDebug(2,Form(" Getting again TOF info: %f %f %f = ",info[0],info[1],info[2])); Int_t tlab[3]; seed->GetTOFLabel(tlab); t->SetTOFLabel(tlab); AliTOFtrack *track = new AliTOFtrack(*seed); @@ -315,9 +312,8 @@ void AliTOFtracker::CollectESD() { AliTOFtrack *track = new AliTOFtrack(*t); // New Double_t x = track->GetX(); //New - if (((t->GetStatus()&AliESDtrack::kTRDout)!=0 ) && - ( x >= fGeom->RinTOF()) ){ + ( x >= AliTOFGeometry::RinTOF()) ){ track->SetSeedIndex(i); t->UpdateTrackParams(track,AliESDtrack::kTOFout); new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track); @@ -358,8 +354,8 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ static Float_t detDepth=15.3; static Float_t padDepth=0.5; - Float_t dY=fGeom->XPad(); - Float_t dZ=fGeom->ZPad(); + Float_t dY=AliTOFGeometry::XPad(); + Float_t dZ=AliTOFGeometry::ZPad(); Float_t sensRadius = fRecoParam->GetSensRadius(); Float_t stepSize = fRecoParam->GetStepSize(); @@ -367,7 +363,7 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ Float_t dyMax=fRecoParam->GetWindowSizeMaxY(); Float_t dzMax=fRecoParam->GetWindowSizeMaxZ(); Float_t dCut=fRecoParam->GetDistanceCut(); - Double_t maxChi2=fRecoParam->GetMaxChi2(); + Double_t maxChi2=fRecoParam->GetMaxChi2TRD(); Bool_t timeWalkCorr = fRecoParam->GetTimeWalkCorr(); if(!mLastStep){ AliDebug(1,"++++++++++++++TOF Reconstruction Parameters:++++++++++++ \n"); @@ -387,8 +383,6 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ Int_t nSteps=(Int_t)(detDepth/stepSize); - AliTOFcalib *calib = new AliTOFcalib(fGeom); - //PH Arrays (moved outside of the loop) Float_t * trackPos[4]; @@ -482,18 +476,18 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ Int_t nStepsDone = 0; for( Int_t istep=0; istepRinTOF()+istep*0.1; - Double_t ymax=xs*TMath::Tan(0.5*fGeom->GetAlpha()); + Float_t xs=AliTOFGeometry::RinTOF()+istep*0.1; + Double_t ymax=xs*TMath::Tan(0.5*AliTOFGeometry::GetAlpha()); Bool_t skip=kFALSE; Double_t ysect=trackTOFin->GetYat(xs,skip); if (skip) break; if (ysect > ymax) { - if (!trackTOFin->Rotate(fGeom->GetAlpha())) { + if (!trackTOFin->Rotate(AliTOFGeometry::GetAlpha())) { break; } } else if (ysect <-ymax) { - if (!trackTOFin->Rotate(fGeom->GetAlpha())) { + if (!trackTOFin->Rotate(AliTOFGeometry::GetAlpha())) { break; } } @@ -552,7 +546,7 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ distZ[nfound]=dist3d[2]; crecL[nfound]=trackPos[3][istep]; index[nfound]=clind[5][i]; // store cluster id - cxpos[nfound]=fGeom->RinTOF()+istep*0.1; //store prop.radius + cxpos[nfound]=AliTOFGeometry::RinTOF()+istep*0.1; //store prop.radius nfound++; if(accept &&!mLastStep)break; }//end if accept @@ -624,19 +618,19 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ delete trackTOFin; // Store quantities to be used in the TOF Calibration - Float_t tToT=fGeom->ToTBinWidth()*c->GetToT()*1E-3; // in ns + Float_t tToT=AliTOFGeometry::ToTBinWidth()*c->GetToT()*1E-3; // in ns t->SetTOFsignalToT(tToT); - Float_t rawTime=fGeom->TdcBinWidth()*c->GetTDCRAW()+32; // RAW time,in ps - Float_t info[10]; - info[0]=rawTime; - info[1]=mindistZ; + Float_t rawTime=AliTOFGeometry::TdcBinWidth()*c->GetTDCRAW()+32; // RAW time,in ps + t->SetTOFsignalRaw(rawTime); + t->SetTOFsignalDz(mindistZ); + AliDebug(2,Form(" Setting TOF raw time: %f, z distance: %f time: %f = ",rawTime,mindistZ)); Int_t ind[5]; ind[0]=c->GetDetInd(0); ind[1]=c->GetDetInd(1); ind[2]=c->GetDetInd(2); ind[3]=c->GetDetInd(3); ind[4]=c->GetDetInd(4); - Int_t calindex = calib->GetIndex(ind); + Int_t calindex = AliTOFGeometry::GetIndex(ind); t->SetTOFCalChannel(calindex); // keep track of the track labels in the matched cluster @@ -645,12 +639,8 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ tlab[1]=c->GetLabel(1); tlab[2]=c->GetLabel(2); AliDebug(2,Form(" tdc time of the matched track %i = ",c->GetTDC())); - Double_t tof=fGeom->TdcBinWidth()*c->GetTDC()+32; // in ps + Double_t tof=AliTOFGeometry::TdcBinWidth()*c->GetTDC()+32; // in ps AliDebug(2,Form(" tof time of the matched track: %f = ",tof)); - info[2]=tof; - AliDebug(2,Form(" Setting TOF info. raw time: %f z distance: %f time: %f = ",info[0],info[1],info[2])); - t->SetTOFInfo(info); - Double_t tofcorr=tof; if(timeWalkCorr)tofcorr=CorrectTimeWalk(mindistZ,tof); AliDebug(2,Form(" tof time of the matched track, after TW corr: %f = ",tofcorr)); @@ -658,9 +648,6 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ t->SetTOFsignal(tofcorr); t->SetTOFcluster(idclus); // pointing to the recPoints tree - //Auxiliary info... - - //Tracking info Double_t time[AliPID::kSPECIES]; t->GetIntegratedTimes(time); Double_t mom=t->GetP(); @@ -700,7 +687,7 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ } for (Int_t ii=0; ii<4; ii++) delete [] trackPos[ii]; for (Int_t ii=0;ii<6;ii++) delete [] clind[ii]; - delete calib; + } //_________________________________________________________________________ Int_t AliTOFtracker::LoadClusters(TTree *cTree) { @@ -708,11 +695,11 @@ Int_t AliTOFtracker::LoadClusters(TTree *cTree) { //This function loads the TOF clusters //-------------------------------------------------------------------- - Int_t npadX = fGeom->NpadX(); - Int_t npadZ = fGeom->NpadZ(); - Int_t nStripA = fGeom->NStripA(); - Int_t nStripB = fGeom->NStripB(); - Int_t nStripC = fGeom->NStripC(); + Int_t npadX = AliTOFGeometry::NpadX(); + Int_t npadZ = AliTOFGeometry::NpadZ(); + Int_t nStripA = AliTOFGeometry::NStripA(); + Int_t nStripB = AliTOFGeometry::NStripB(); + Int_t nStripC = AliTOFGeometry::NStripC(); TBranch *branch=cTree->GetBranch("TOF"); if (!branch) { @@ -741,8 +728,8 @@ Int_t AliTOFtracker::LoadClusters(TTree *cTree) { Int_t ipadX = c->GetDetInd(4); Int_t ipadZ = c->GetDetInd(3); - Float_t time =(fGeom->TdcBinWidth()*c->GetTDC())*1E-3; // in ns - Float_t tot = (fGeom->TdcBinWidth()*c->GetToT())*1E-3;//in ns + Float_t time =(AliTOFGeometry::TdcBinWidth()*c->GetTDC())*1E-3; // in ns + Float_t tot = (AliTOFGeometry::TdcBinWidth()*c->GetToT())*1E-3;//in ns Int_t stripOffset = 0; switch (iplate) { @@ -816,10 +803,10 @@ Bool_t AliTOFtracker::GetTrackPoint(Int_t index, AliTrackPoint& p) const xyz[2] = cl->GetZ(); Float_t phiangle = (Int_t(cl->GetPhi()*TMath::RadToDeg()/20.)+0.5)*20.*TMath::DegToRad(); Float_t sinphi = TMath::Sin(phiangle), cosphi = TMath::Cos(phiangle); - Float_t tiltangle = fGeom->GetAngles(cl->GetDetInd(1),cl->GetDetInd(2))*TMath::DegToRad(); + Float_t tiltangle = AliTOFGeometry::GetAngles(cl->GetDetInd(1),cl->GetDetInd(2))*TMath::DegToRad(); Float_t sinth = TMath::Sin(tiltangle), costh = TMath::Cos(tiltangle); - Float_t sigmay2 = fGeom->XPad()*fGeom->XPad()/12.; - Float_t sigmaz2 = fGeom->ZPad()*fGeom->ZPad()/12.; + Float_t sigmay2 = AliTOFGeometry::XPad()*AliTOFGeometry::XPad()/12.; + Float_t sigmaz2 = AliTOFGeometry::ZPad()*AliTOFGeometry::ZPad()/12.; Float_t cov[6]; cov[0] = sinphi*sinphi*sigmay2 + cosphi*cosphi*sinth*sinth*sigmaz2; cov[1] = -sinphi*cosphi*sigmay2 + sinphi*cosphi*sinth*sinth*sigmaz2; @@ -830,11 +817,11 @@ Bool_t AliTOFtracker::GetTrackPoint(Int_t index, AliTrackPoint& p) const p.SetXYZ(xyz[0],xyz[1],xyz[2],cov); // Detector numbering scheme - Int_t nSector = fGeom->NSectors(); - Int_t nPlate = fGeom->NPlates(); - Int_t nStripA = fGeom->NStripA(); - Int_t nStripB = fGeom->NStripB(); - Int_t nStripC = fGeom->NStripC(); + Int_t nSector = AliTOFGeometry::NSectors(); + Int_t nPlate = AliTOFGeometry::NPlates(); + Int_t nStripA = AliTOFGeometry::NStripA(); + Int_t nStripB = AliTOFGeometry::NStripB(); + Int_t nStripC = AliTOFGeometry::NStripC(); Int_t isector = cl->GetDetInd(0); if (isector >= nSector) @@ -869,7 +856,7 @@ Bool_t AliTOFtracker::GetTrackPoint(Int_t index, AliTrackPoint& p) const Int_t idet = (2*(nStripC+nStripB)+nStripA)*isector + stripOffset + istrip; - UShort_t volid = AliAlignObj::LayerToVolUID(AliAlignObj::kTOF,idet); + UShort_t volid = AliGeomManager::LayerToVolUID(AliGeomManager::kTOF,idet); p.SetVolumeID((UShort_t)volid); return kTRUE; } @@ -938,7 +925,7 @@ void AliTOFtracker::SaveCheckHists() { fHRecSigZVsP->Write(fHRecSigZVsP->GetName(), TObject::kOverwrite); fHRecSigYVsPWin->Write(fHRecSigYVsPWin->GetName(), TObject::kOverwrite); fHRecSigZVsPWin->Write(fHRecSigZVsPWin->GetName(), TObject::kOverwrite); - fCalTree->Write(fCalTree->GetName(),TObject::kOverwrite); + //fCalTree->Write(fCalTree->GetName(),TObject::kOverwrite); logFile->Flush(); if(!isThere)logFileTOF = new TFile( "TOFQA.root","RECREATE"); @@ -963,7 +950,7 @@ Float_t AliTOFtracker::CorrectTimeWalk( Float_t dist, Float_t tof) { //dummy, for the moment Float_t tofcorr=0.; - if(distZPad()*0.5){ + if(distGetT0(); } //_________________________________________________________________________ -Float_t AliTOFtracker::GetTimeZerofromTOF(AliESD * /*event*/) const { +Float_t AliTOFtracker::GetTimeZerofromTOF(AliESDEvent * /*event*/) const { //dummy, for the moment. T0 algorithm using tracks on TOF {