X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFtracker.cxx;h=0ef64f805bbd9ca0063712788aa091066691476c;hb=76d788593fa664c558d98802edd6baa1c5db9426;hp=10195762198f3c59864a603533e2ab79d432fac9;hpb=13c769b4485543bb22333af36ffbb27776881c65;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFtracker.cxx b/TOF/AliTOFtracker.cxx index 10195762198..0ef64f805bb 100644 --- a/TOF/AliTOFtracker.cxx +++ b/TOF/AliTOFtracker.cxx @@ -39,11 +39,12 @@ #include "AliGeomManager.h" #include "AliESDtrack.h" #include "AliESDEvent.h" +#include "AliESDpid.h" #include "AliLog.h" #include "AliTrackPointArray.h" #include "AliCDBManager.h" -#include "AliTOFpidESD.h" +//#include "AliTOFpidESD.h" #include "AliTOFRecoParam.h" #include "AliTOFReconstructor.h" #include "AliTOFcluster.h" @@ -58,9 +59,8 @@ ClassImp(AliTOFtracker) //_____________________________________________________________________________ AliTOFtracker::AliTOFtracker(): - fRecoParam(0x0), + fkRecoParam(0x0), fGeom(0x0), - fPid(0x0), fN(0), fNseeds(0), fNseedsTOF(0), @@ -105,10 +105,9 @@ AliTOFtracker::~AliTOFtracker() { SaveCheckHists(); if(!(AliCDBManager::Instance()->GetCacheFlag())){ - delete fRecoParam; + delete fkRecoParam; } delete fGeom; - delete fPid; delete fHDigClusMap; delete fHDigNClus; delete fHDigClusTime; @@ -133,28 +132,32 @@ AliTOFtracker::~AliTOFtracker() { } //_____________________________________________________________________________ -Int_t AliTOFtracker::PropagateBack(AliESDEvent* event) { +void AliTOFtracker::GetPidSettings(AliESDpid *esdPID) { + // + // Sets TOF resolution from RecoParams + // + if (fkRecoParam) + esdPID->GetTOFResponse().SetTimeResolution(fkRecoParam->GetTimeResolution()); + else + AliWarning("fkRecoParam not yet set; cannot set PID settings"); +} +//_____________________________________________________________________________ +Int_t AliTOFtracker::PropagateBack(AliESDEvent * const event) { // // Gets seeds from ESD event and Match with TOF Clusters // // initialize RecoParam for current event + AliDebug(1,"Initializing params for TOF"); - AliInfo("Initializing params for TOF... "); - - fRecoParam = AliTOFReconstructor::GetRecoParam(); // instantiate reco param from STEER... + fkRecoParam = AliTOFReconstructor::GetRecoParam(); // instantiate reco param from STEER... - if (fRecoParam == 0x0) { + if (fkRecoParam == 0x0) { AliFatal("No Reco Param found for TOF!!!"); } - //fRecoParam->Dump(); - //if(fRecoParam->GetApplyPbPbCuts())fRecoParam=fRecoParam->GetPbPbparam(); - //fRecoParam->PrintParameters(); - - Double_t parPID[2]; - parPID[0]=fRecoParam->GetTimeResolution(); - parPID[1]=fRecoParam->GetTimeNSigma(); - fPid=new AliTOFpidESD(parPID); + //fkRecoParam->Dump(); + //if(fkRecoParam->GetApplyPbPbCuts())fkRecoParam=fkRecoParam->GetPbPbparam(); + //fkRecoParam->PrintParameters(); //Initialise some counters @@ -186,53 +189,128 @@ Int_t AliTOFtracker::PropagateBack(AliESDEvent* event) { //Second Step with Looser Matching Criterion MatchTracks(kTRUE); - AliInfo(Form("Number of matched tracks: %d",fnmatch)); - AliInfo(Form("Number of good matched tracks: %d",fngoodmatch)); - AliInfo(Form("Number of bad matched tracks: %d",fnbadmatch)); + AliInfo(Form("Number of matched tracks = %d (good = %d, bad = %d)",fnmatch,fngoodmatch,fnbadmatch)); //Update the matched ESD tracks for (Int_t i=0; iGetTrack(i); AliESDtrack *seed =(AliESDtrack*)fSeeds->UncheckedAt(i); - if(seed->GetTOFsignal()>0){ - t->SetTOFsignal(seed->GetTOFsignal()); - t->SetTOFcluster(seed->GetTOFcluster()); - t->SetTOFsignalToT(seed->GetTOFsignalToT()); - t->SetTOFsignalRaw(seed->GetTOFsignalRaw()); - t->SetTOFsignalDz(seed->GetTOFsignalDz()); - t->SetTOFCalChannel(seed->GetTOFCalChannel()); - Int_t tlab[3]; seed->GetTOFLabel(tlab); - t->SetTOFLabel(tlab); - AliTOFtrack *track = new AliTOFtrack(*seed); - t->UpdateTrackParams(track,AliESDtrack::kTOFout); - delete track; - } - } - //Handle Time Zero information - - Double_t timeZero=0.; - Double_t timeZeroMax=99999.; - Bool_t usetimeZero = fRecoParam->UseTimeZero(); - Bool_t timeZeroFromT0 = fRecoParam->GetTimeZerofromT0(); - Bool_t timeZeroFromTOF = fRecoParam->GetTimeZerofromTOF(); - - AliDebug(1,Form("Use Time Zero?: %d",usetimeZero)); - AliDebug(1,Form("Time Zero from T0? : %d",timeZeroFromT0)); - AliDebug(1,Form("Time Zero From TOF? : %d",timeZeroFromTOF)); - - if(usetimeZero){ - if(timeZeroFromT0){ - timeZero=GetTimeZerofromT0(event); - } - if(timeZeroFromTOF && (timeZero>timeZeroMax || !timeZeroFromT0)){ - timeZero=GetTimeZerofromTOF(event); + if ( (seed->GetStatus()&AliESDtrack::kTOFin)!=0 ) { + t->SetStatus(AliESDtrack::kTOFin); + //if(seed->GetTOFsignal()>0){ + if ( (seed->GetStatus()&AliESDtrack::kTOFout)!=0 ) { + t->SetStatus(AliESDtrack::kTOFout); + t->SetTOFsignal(seed->GetTOFsignal()); + t->SetTOFcluster(seed->GetTOFcluster()); + t->SetTOFsignalToT(seed->GetTOFsignalToT()); + t->SetTOFsignalRaw(seed->GetTOFsignalRaw()); + t->SetTOFsignalDz(seed->GetTOFsignalDz()); + t->SetTOFsignalDx(seed->GetTOFsignalDx()); + t->SetTOFDeltaBC(seed->GetTOFDeltaBC()); + t->SetTOFL0L1(seed->GetTOFL0L1()); + t->SetTOFCalChannel(seed->GetTOFCalChannel()); + Int_t tlab[3]; seed->GetTOFLabel(tlab); + t->SetTOFLabel(tlab); + + Double_t alphaA = dynamic_cast(t)->GetAlpha(); + Double_t xA = dynamic_cast(t)->GetX(); + Double_t yA = dynamic_cast(t)->GetY(); + Double_t zA = dynamic_cast(t)->GetZ(); + Double_t p1A = dynamic_cast(t)->GetSnp(); + Double_t p2A = dynamic_cast(t)->GetTgl(); + Double_t p3A = dynamic_cast(t)->GetSigned1Pt(); + const Double_t *covA = dynamic_cast(t)->GetCovariance(); + + // Make attention, please: + // AliESDtrack::fTOFInfo array does not be stored in the AliESDs.root file + // it is there only for a check during the reconstruction step. + Float_t info[10]; seed->GetTOFInfo(info); + t->SetTOFInfo(info); + AliDebug(3,Form(" distance=%f; residual in the pad reference frame: dX=%f, dZ=%f", info[0],info[1],info[2])); + + // Check done: + // by calling the AliESDtrack::UpdateTrackParams, + // the current track parameters are changed + // and it could cause refit problems. + // We need to update only the following track parameters: + // the track length and expected times. + // Removed AliESDtrack::UpdateTrackParams call + // Called AliESDtrack::SetIntegratedTimes(...) and + // AliESDtrack::SetIntegratedLength() routines. + /* + AliTOFtrack *track = new AliTOFtrack(*seed); + t->UpdateTrackParams(track,AliESDtrack::kTOFout); // to be checked - AdC + delete track; + Double_t time[10]; t->GetIntegratedTimes(time); + */ + + Double_t time[10]; seed->GetIntegratedTimes(time); + t->SetIntegratedTimes(time); + + Double_t length = seed->GetIntegratedLength(); + t->SetIntegratedLength(length); + + Double_t alphaB = dynamic_cast(t)->GetAlpha(); + Double_t xB = dynamic_cast(t)->GetX(); + Double_t yB = dynamic_cast(t)->GetY(); + Double_t zB = dynamic_cast(t)->GetZ(); + Double_t p1B = dynamic_cast(t)->GetSnp(); + Double_t p2B = dynamic_cast(t)->GetTgl(); + Double_t p3B = dynamic_cast(t)->GetSigned1Pt(); + const Double_t *covB = dynamic_cast(t)->GetCovariance(); + AliDebug(2,"Track params -now(before)-:"); + AliDebug(2,Form(" X: %f(%f), Y: %f(%f), Z: %f(%f) --- alpha: %f(%f)", + xB,xA, + yB,yA, + zB,zA, + alphaB,alphaA)); + AliDebug(2,Form(" p1: %f(%f), p2: %f(%f), p3: %f(%f)", + p1B,p1A, + p2B,p2A, + p3B,p3A)); + AliDebug(2,Form(" cov1: %f(%f), cov2: %f(%f), cov3: %f(%f)" + " cov4: %f(%f), cov5: %f(%f), cov6: %f(%f)" + " cov7: %f(%f), cov8: %f(%f), cov9: %f(%f)" + " cov10: %f(%f), cov11: %f(%f), cov12: %f(%f)" + " cov13: %f(%f), cov14: %f(%f), cov15: %f(%f)", + covB[0],covA[0], + covB[1],covA[1], + covB[2],covA[2], + covB[3],covA[3], + covB[4],covA[4], + covB[5],covA[5], + covB[6],covA[6], + covB[7],covA[7], + covB[8],covA[8], + covB[9],covA[9], + covB[10],covA[10], + covB[11],covA[11], + covB[12],covA[12], + covB[13],covA[13], + covB[14],covA[14] + )); + AliDebug(3,Form(" TOF params: %6d %f %f %f %f %f %6d %3d %f %f %f %f %f %f", + i, + t->GetTOFsignalRaw(), + t->GetTOFsignal(), + t->GetTOFsignalToT(), + t->GetTOFsignalDz(), + t->GetTOFsignalDx(), + t->GetTOFCalChannel(), + t->GetTOFcluster(), + t->GetIntegratedLength(), + time[0], time[1], time[2], time[3], time[4] + ) + ); + } } } - AliDebug(2,Form("time Zero used in PID: %f",timeZero)); + //Make TOF PID - fPid->MakePID(event,timeZero); + // Now done in AliESDpid + // fPid->MakePID(event,timeZero); fSeeds->Clear(); fTracks->Clear(); @@ -252,26 +330,37 @@ void AliTOFtracker::CollectESD() { AliESDtrack *t =(AliESDtrack*)fSeeds->UncheckedAt(i); if ((t->GetStatus()&AliESDtrack::kTPCout)==0)continue; - // TRD 'good' tracks, already propagated at 372 cm - AliTOFtrack *track = new AliTOFtrack(*t); // New - Double_t x = track->GetX(); //New - if (((t->GetStatus()&AliESDtrack::kTRDout)!=0 ) && - ( x >= AliTOFGeometry::RinTOF()) ){ - track->SetSeedIndex(i); - t->UpdateTrackParams(track,AliESDtrack::kTOFout); - new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track); - fNseedsTOF++; - seedsTOF1++; + Float_t x = (Float_t)track->GetX(); //New + + // TRD 'good' tracks, already propagated at 371 cm + if ( ( (t->GetStatus()&AliESDtrack::kTRDout)!=0 ) && + ( x >= AliTOFGeometry::Rmin() ) ) { + if ( track->PropagateToInnerTOF() ) { + + AliDebug(1,Form(" TRD propagated track till rho = %fcm." + " And then the track has been propagated till rho = %fcm.", + x, (Float_t)track->GetX())); + + track->SetSeedIndex(i); + t->UpdateTrackParams(track,AliESDtrack::kTOFin); + new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track); + fNseedsTOF++; + seedsTOF1++; + } delete track; } // Propagate the rest of TPCbp - else { - if(track->PropagateToInnerTOF()){ + if ( track->PropagateToInnerTOF() ) { + + AliDebug(1,Form(" TPC propagated track till rho = %fcm." + " And then the track has been propagated till rho = %fcm.", + x, (Float_t)track->GetX())); + track->SetSeedIndex(i); - t->UpdateTrackParams(track,AliESDtrack::kTOFout); + t->UpdateTrackParams(track,AliESDtrack::kTOFin); new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track); fNseedsTOF++; seedsTOF2++; @@ -280,9 +369,7 @@ void AliTOFtracker::CollectESD() { } } - AliInfo(Form("Number of TOF seeds %i",fNseedsTOF)); - AliInfo(Form("Number of TOF seeds Type 1 %i",seedsTOF1)); - AliInfo(Form("Number of TOF seeds Type 2 %i",seedsTOF2)); + AliInfo(Form("Number of TOF seeds = %d (Type 1 = %d, Type 2 = %d)",fNseedsTOF,seedsTOF1,seedsTOF2)); // Sort according uncertainties on track position fTracks->Sort(); @@ -298,17 +385,20 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ static Float_t detDepth=15.3; static Float_t padDepth=0.5; + const Float_t kSpeedOfLight= 2.99792458e-2; // speed of light [cm/ps] + const Float_t kTimeOffset = 32.; // time offset for tracking algorithm [ps] + Float_t dY=AliTOFGeometry::XPad(); Float_t dZ=AliTOFGeometry::ZPad(); - Float_t sensRadius = fRecoParam->GetSensRadius(); - Float_t stepSize = fRecoParam->GetStepSize(); - Float_t scaleFact = fRecoParam->GetWindowScaleFact(); - Float_t dyMax=fRecoParam->GetWindowSizeMaxY(); - Float_t dzMax=fRecoParam->GetWindowSizeMaxZ(); - Float_t dCut=fRecoParam->GetDistanceCut(); - Double_t maxChi2=fRecoParam->GetMaxChi2TRD(); - Bool_t timeWalkCorr = fRecoParam->GetTimeWalkCorr(); + Float_t sensRadius = fkRecoParam->GetSensRadius(); + Float_t stepSize = fkRecoParam->GetStepSize(); + Float_t scaleFact = fkRecoParam->GetWindowScaleFact(); + Float_t dyMax=fkRecoParam->GetWindowSizeMaxY(); + Float_t dzMax=fkRecoParam->GetWindowSizeMaxZ(); + Float_t dCut=fkRecoParam->GetDistanceCut(); + Double_t maxChi2=fkRecoParam->GetMaxChi2TRD(); + Bool_t timeWalkCorr = fkRecoParam->GetTimeWalkCorr(); if(!mLastStep){ AliDebug(1,"++++++++++++++TOF Reconstruction Parameters:++++++++++++ \n"); AliDebug(1,Form("TOF sens radius: %f",sensRadius)); @@ -320,48 +410,66 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ AliDebug(1,Form("TOF Max Chi2: %f",maxChi2)); AliDebug(1,Form("Time Walk Correction? : %d",timeWalkCorr)); } - //Match ESD tracks to clusters in TOF + //Match ESD tracks to clusters in TOF // Get the number of propagation steps - Int_t nSteps=(Int_t)(detDepth/stepSize); //PH Arrays (moved outside of the loop) - Float_t * trackPos[4]; for (Int_t ii=0; ii<4; ii++) trackPos[ii] = new Float_t[nSteps]; Int_t * clind = new Int_t[fN]; + // Some init + const Int_t kNfoundMax = 10000; // related to nSteps value + Int_t index[kNfoundMax]; + Float_t dist[kNfoundMax]; + Float_t distZ[kNfoundMax]; + Float_t distY[kNfoundMax]; // delta(rhoXphi) // AdC + Float_t cxpos[kNfoundMax]; + Float_t crecL[kNfoundMax]; + const Int_t kNclusterMax = 1000; // related to fN value + TGeoHMatrix global[kNclusterMax]; + + //The matching loop for (Int_t iseed=0; iseedUncheckedAt(iseed); AliESDtrack *t =(AliESDtrack*)fSeeds->UncheckedAt(track->GetSeedIndex()); - if(t->GetTOFsignal()>0. ) continue; + //if ( t->GetTOFsignal()>0. ) continue; + if ( (t->GetStatus()&AliESDtrack::kTOFout)!=0 ) continue; AliTOFtrack *trackTOFin =new AliTOFtrack(*track); - // Some init - - Int_t index[10000]; - Float_t dist[10000]; - Float_t distZ[10000]; - Float_t cxpos[10000]; - Float_t crecL[10000]; - TGeoHMatrix global[1000]; - // Determine a window around the track - Double_t x,par[5]; trackTOFin->GetExternalParameters(x,par); Double_t cov[15]; trackTOFin->GetExternalCovariance(cov); + if (cov[0]<0. || cov[2]<0.) { + AliWarning(Form("Very strange track (%d)! At least one of its covariance matrix diagonal elements is negative!",iseed)); + //delete trackTOFin; + //continue; + } + Double_t dphi= scaleFact* - ((5*TMath::Sqrt(cov[0]) + 0.5*dY + 2.5*TMath::Abs(par[2]))/sensRadius); + ((5*TMath::Sqrt(TMath::Abs(cov[0])) + 0.5*dY + 2.5*TMath::Abs(par[2]))/sensRadius); Double_t dz= scaleFact* - (5*TMath::Sqrt(cov[2]) + 0.5*dZ + 2.5*TMath::Abs(par[3])); + (5*TMath::Sqrt(TMath::Abs(cov[2])) + 0.5*dZ + 2.5*TMath::Abs(par[3])); Double_t phi=TMath::ATan2(par[0],x) + trackTOFin->GetAlpha(); if (phi<-TMath::Pi())phi+=2*TMath::Pi(); @@ -380,13 +488,18 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ for (Int_t k=FindClusterIndex(z-dz); k=kNclusterMax) { + AliWarning("No more matchable clusters can be stored! Please, increase the corresponding vectors size."); + break; + } + AliTOFcluster *c=fClusters[k]; if (c->GetZ() > z+dz) break; if (c->IsUsed()) continue; if (!c->GetStatus()) { - AliDebug(1,"Cluster in channel declared bad!"); - continue; // skip bad channels as declared in OCDB + AliDebug(1,"Cluster in channel declared bad!"); + continue; // skip bad channels as declared in OCDB } Double_t dph=TMath::Abs(c->GetPhi()-phi); @@ -412,6 +525,8 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ nc++; } + AliDebug(1,Form(" Number of matchable TOF clusters for the track number %d: %d",iseed,nc)); + //start fine propagation Int_t nStepsDone = 0; @@ -452,43 +567,70 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ Int_t nfound = 0; Bool_t accept = kFALSE; - Bool_t isInside =kFALSE; + Bool_t isInside = kFALSE; for (Int_t istep=0; istep=kNfoundMax) { + AliWarning("No more track positions can be stored! Please, increase the corresponding vectors size."); + break; + } - ctrackPos[0]= trackPos[0][istep]; - ctrackPos[1]= trackPos[1][istep]; - ctrackPos[2]= trackPos[2][istep]; + Float_t ctrackPos[3]; + ctrackPos[0] = trackPos[0][istep]; + ctrackPos[1] = trackPos[1][istep]; + ctrackPos[2] = trackPos[2][istep]; //now see whether the track matches any of the TOF clusters Float_t dist3d[3]; - accept=kFALSE; - for (Int_t i=0; iIsInsideThePad(global[i],ctrackPos,dist3d); - - if( mLastStep){ - Float_t xLoc=dist3d[0]; - Float_t rLoc=TMath::Sqrt(dist3d[1]*dist3d[1]+dist3d[2]*dist3d[2]); - accept = (TMath::Abs(xLoc)IsInsideThePad(global[i],ctrackPos,dist3d); + + if ( mLastStep ) { + Float_t yLoc = dist3d[1]; + Float_t rLoc = TMath::Sqrt(dist3d[0]*dist3d[0]+dist3d[2]*dist3d[2]); + accept = (TMath::Abs(yLoc)GetDetInd(1),c->GetDetInd(2))*TMath::DegToRad(); + Float_t localCheck=-mindistZ; + localCheck/=TMath::Cos(tiltangle); // Z (tracking/ALICE RF) component of + // the distance between the + // reconstructed track and the + // TOF closest cluster + */ + AliDebug(2, Form("%7d %7d %10d %10d %10d %10d %7d", iseed, fnmatch-1, TMath::Abs(trackTOFin->GetLabel()), @@ -548,13 +703,13 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ ) { fngoodmatch++; - AliDebug(2,Form(" track label good %5i",trackTOFin->GetLabel())); + AliDebug(2,Form(" track label good %5d",trackTOFin->GetLabel())); } - else{ + else { fnbadmatch++; - AliDebug(2,Form(" track label bad %5i",trackTOFin->GetLabel())); + AliDebug(2,Form(" track label bad %5d",trackTOFin->GetLabel())); } @@ -563,10 +718,19 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ // Store quantities to be used in the TOF Calibration Float_t tToT=AliTOFGeometry::ToTBinWidth()*c->GetToT()*1E-3; // in ns t->SetTOFsignalToT(tToT); - Float_t rawTime=AliTOFGeometry::TdcBinWidth()*c->GetTDCRAW()+32; // RAW time,in ps + Float_t rawTime=AliTOFGeometry::TdcBinWidth()*c->GetTDCRAW()+kTimeOffset; // 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)); + t->SetTOFsignalDx(mindistY); + t->SetTOFDeltaBC(c->GetDeltaBC()); + t->SetTOFL0L1(c->GetL0L1Latency()); + + Float_t info[10] = {mindist,mindistY,mindistZ, + 0.,0.,0.,0.,0.,0.,0.}; + t->SetTOFInfo(info); + AliDebug(2,Form(" distance=%f; residual in the pad reference frame: dX=%f, dZ=%f", info[0],info[1],info[2])); + + Int_t ind[5]; ind[0]=c->GetDetInd(0); ind[1]=c->GetDetInd(1); @@ -581,8 +745,8 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ tlab[0]=c->GetLabel(0); 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=AliTOFGeometry::TdcBinWidth()*c->GetTDC()+32; // in ps + AliDebug(2,Form(" tdc time of the matched track %6d = ",c->GetTDC())); + Double_t tof=AliTOFGeometry::TdcBinWidth()*c->GetTDC()+kTimeOffset; // in ps AliDebug(2,Form(" tof time of the matched track: %f = ",tof)); Double_t tofcorr=tof; if(timeWalkCorr)tofcorr=CorrectTimeWalk(mindistZ,tof); @@ -591,12 +755,15 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ t->SetTOFsignal(tofcorr); t->SetTOFcluster(idclus); // pointing to the recPoints tree + AliDebug(2,Form(" Setting TOF raw time: %f, z distance: %f corrected time: %f ",rawTime,mindistZ,tofcorr)); + //Tracking info - Double_t time[AliPID::kSPECIES]; t->GetIntegratedTimes(time); + Double_t time[AliPID::kSPECIES]; t->GetIntegratedTimes(time); // in ps Double_t mom=t->GetP(); - for(Int_t j=0;j %f", iseed,mom)); + for (Int_t j=0;jUpdateTrackParams(trackTOFout,AliESDtrack::kTOFout); + t->UpdateTrackParams(trackTOFout,AliESDtrack::kTOFout); t->SetIntegratedLength(recL); t->SetIntegratedTimes(time); t->SetTOFLabel(tlab); @@ -621,7 +788,7 @@ void AliTOFtracker::MatchTracks( Bool_t mLastStep){ // Fill Tree for on-the-fly offline Calibration - if ( !((t->GetStatus() & AliESDtrack::kTIME)==0 )){ + if ( !((t->GetStatus() & AliESDtrack::kTIME)==0 ) ) { fIch=calindex; fToT=tToT; fTime=rawTime; @@ -667,7 +834,8 @@ Int_t AliTOFtracker::LoadClusters(TTree *cTree) { for (Int_t i=0; iUncheckedAt(i); - fClusters[i]=new AliTOFcluster(*c); fN++; +//PH fClusters[i]=new AliTOFcluster(*c); fN++; + fClusters[i]=c; fN++; // Fill Digits QA histos @@ -718,7 +886,7 @@ void AliTOFtracker::UnloadClusters() { //This function unloads TOF clusters //-------------------------------------------------------------------- for (Int_t i=0; icd(); } //_________________________________________________________________________ -Float_t AliTOFtracker::CorrectTimeWalk( Float_t dist, Float_t tof) { +Float_t AliTOFtracker::CorrectTimeWalk( Float_t dist, Float_t tof) const { //dummy, for the moment Float_t tofcorr=0.; @@ -911,22 +1079,6 @@ Float_t AliTOFtracker::CorrectTimeWalk( Float_t dist, Float_t tof) { return tofcorr; } //_________________________________________________________________________ -Float_t AliTOFtracker::GetTimeZerofromT0(AliESDEvent *event) const { - - //Returns TimeZero as measured by T0 detector - - return event->GetT0(); -} -//_________________________________________________________________________ -Float_t AliTOFtracker::GetTimeZerofromTOF(AliESDEvent * /*event*/) const { - - //dummy, for the moment. T0 algorithm using tracks on TOF - { - //place T0 algo here... - } - return 0.; -} -//_________________________________________________________________________ void AliTOFtracker::FillClusterArray(TObjArray* arr) const { @@ -940,3 +1092,5 @@ void AliTOFtracker::FillClusterArray(TObjArray* arr) const for (Int_t i=0; iAdd(fClusters[i]); } +//_________________________________________________________________________ +