//_____________________________________________________________________________
AliTOFtrackerMI::AliTOFtrackerMI():
//_____________________________________________________________________________
AliTOFtrackerMI::AliTOFtrackerMI():
fDy=AliTOFGeometry::XPad();
fDz=AliTOFGeometry::ZPad();
fDebugStreamer = new TTreeSRedirector("TOFdebug.root");
fDy=AliTOFGeometry::XPad();
fDz=AliTOFGeometry::ZPad();
fDebugStreamer = new TTreeSRedirector("TOFdebug.root");
//_____________________________________________________________________________
AliTOFtrackerMI::~AliTOFtrackerMI(){
//
//_____________________________________________________________________________
AliTOFtrackerMI::~AliTOFtrackerMI(){
//
}
//_____________________________________________________________________________
void AliTOFtrackerMI::GetPidSettings(AliESDpid *esdPID) {
//
// Sets TOF resolution from RecoParams
//
}
//_____________________________________________________________________________
void AliTOFtrackerMI::GetPidSettings(AliESDpid *esdPID) {
//
// Sets TOF resolution from RecoParams
//
// initialize RecoParam for current event
AliDebug(1,"Initializing params for TOF");
// initialize RecoParam for current event
AliDebug(1,"Initializing params for TOF");
- //fRecoParam->Dump();
- //if(fRecoParam->GetApplyPbPbCuts())fRecoParam=fRecoParam->GetPbPbparam();
- //fRecoParam->PrintParameters();
+ //fkRecoParam->Dump();
+ //if(fkRecoParam->GetApplyPbPbCuts())fkRecoParam=fkRecoParam->GetPbPbparam();
+ //fkRecoParam->PrintParameters();
-
- for (Int_t i=0; i<fNseeds; i++) {
- AliESDtrack *t=event->GetTrack(i);
- new(aESDTrack[i]) AliESDtrack(*t);
- }
+ for (Int_t i=0; i<fNseeds; i++)
+ fSeeds->AddLast(event->GetTrack(i));
t->SetIntegratedLength(seed->GetIntegratedLength());
t->SetTOFsignalToT(seed->GetTOFsignalToT());
t->SetTOFCalChannel(seed->GetTOFCalChannel());
t->SetIntegratedLength(seed->GetIntegratedLength());
t->SetTOFsignalToT(seed->GetTOFsignalToT());
t->SetTOFCalChannel(seed->GetTOFCalChannel());
//
// Make attention, please:
// AliESDtrack::fTOFInfo array does not be stored in the AliESDs.root file
//
// Make attention, please:
// AliESDtrack::fTOFInfo array does not be stored in the AliESDs.root file
if ((t->GetStatus()&AliESDtrack::kTPCout)==0)continue;
AliTOFtrack *track = new AliTOFtrack(*t); // New
if ((t->GetStatus()&AliESDtrack::kTPCout)==0)continue;
AliTOFtrack *track = new AliTOFtrack(*t); // New
const Float_t kMinQuality = -6.; // minimal quality
const Float_t kMaxQualityD = 1.; // max delta quality if cluster used
const Float_t kForbiddenR = 0.1; // minimal PID according TPC
const Float_t kMinQuality = -6.; // minimal quality
const Float_t kMaxQualityD = 1.; // max delta quality if cluster used
const Float_t kForbiddenR = 0.1; // minimal PID according TPC
0.000511, 0.105658, 0.139570, 0.493677, 0.938272, 1.875613
};
Int_t nSteps=(Int_t)(fTOFHeigth/0.1);
0.000511, 0.105658, 0.139570, 0.493677, 0.938272, 1.875613
};
Int_t nSteps=(Int_t)(fTOFHeigth/0.1);
//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];
//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];
Float_t mintimedist[kNclusterMax];
Float_t likelihood[kNclusterMax];
Float_t length[kNclusterMax];
Float_t mintimedist[kNclusterMax];
Float_t likelihood[kNclusterMax];
Float_t length[kNclusterMax];
Bool_t hasTime = ( (t->GetStatus()& AliESDtrack::kTIME)>0) ? kTRUE:kFALSE; // did we integrate time
Float_t trdquality = t->GetTRDQuality();
//
Bool_t hasTime = ( (t->GetStatus()& AliESDtrack::kTIME)>0) ? kTRUE:kFALSE; // did we integrate time
Float_t trdquality = t->GetTRDQuality();
//
Double_t tof2=AliTOFGeometry::TdcBinWidth()*cluster->GetTDC()+kTofOffset; // in ps
// Float_t tgamma = TMath::Sqrt(cluster->GetR()*cluster->GetR()+cluster->GetZ()*cluster->GetZ())/0.03; //time for "primary" gamma
//if (trackTOFin->GetPt()<0.7 && TMath::Abs(tgamma-tof2)<350) continue; // gamma conversion candidate - TEMPORARY
Double_t tof2=AliTOFGeometry::TdcBinWidth()*cluster->GetTDC()+kTofOffset; // in ps
// Float_t tgamma = TMath::Sqrt(cluster->GetR()*cluster->GetR()+cluster->GetZ()*cluster->GetZ())/0.03; //time for "primary" gamma
//if (trackTOFin->GetPt()<0.7 && TMath::Abs(tgamma-tof2)<350) continue; // gamma conversion candidate - TEMPORARY
Double_t mass=kMasses[j];
times[nfound][j]+=distances[4]/3e-2*TMath::Sqrt(mom*mom+mass*mass)/mom; // add time distance
if ( TMath::Abs(times[nfound][j]-tof2)<mintimedist[nfound] && tpcpid[j]>kForbiddenR){
Double_t mass=kMasses[j];
times[nfound][j]+=distances[4]/3e-2*TMath::Sqrt(mom*mom+mass*mass)/mom; // add time distance
if ( TMath::Abs(times[nfound][j]-tof2)<mintimedist[nfound] && tpcpid[j]>kForbiddenR){
-void AliTOFtrackerMI::GetLikelihood(Float_t dy, Float_t dz, const Double_t *cov, AliTOFtrack * /*track*/, Float_t & py, Float_t &pz)
+void AliTOFtrackerMI::GetLikelihood(Float_t dy, Float_t dz, const Double_t *cov, AliTOFtrack * /*track*/, Float_t & py, Float_t &pz) const
Float_t normwidth, normd, p0,p1;
Float_t normwidth, normd, p0,p1;
- Float_t sigmay = TMath::Max(TMath::Sqrt(cov[0]+kMeanSigmaY*kMeanSigmaY),kMaxSigmaY);
- Float_t sigmaz = TMath::Max(TMath::Sqrt(cov[2]+kMeanSigmaZ*kMeanSigmaZ),kMaxSigmaZ);
+ Float_t sigmay = TMath::Max(TMath::Sqrt(TMath::Abs(cov[0])+kMeanSigmaY*kMeanSigmaY),kMaxSigmaY);
+ Float_t sigmaz = TMath::Max(TMath::Sqrt(TMath::Abs(cov[2])+kMeanSigmaZ*kMeanSigmaZ),kMaxSigmaZ);
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));