if(!TString(o->IsA()->GetName()).CompareTo("AliESDtrack")){
// work on local copy in order to not spoil others
esdtrack = new AliESDtrack(*(dynamic_cast<AliESDtrack *>(o)));
+ if(!esdtrack) continue;
} else if(!TString(o->IsA()->GetName()).CompareTo("AliAODrack")){
// Bad hack: Fill ESD track with AOD information
esdtrack = new AliESDtrack(dynamic_cast<AliAODTrack *>(o));
+ if(!esdtrack) continue;
} else {
// Non usable
continue;
if(!TString(mcTrack->IsA()->GetName()).CompareTo("AliMCParticle")){
// case ESD
AliMCParticle *mcp = dynamic_cast<AliMCParticle *>(mcTrack);
+ if(!mcp) continue;
trackPdg = TMath::Abs(mcp->Particle()->GetPdgCode());
} else {
// case AOD
AliAODMCParticle *aodmcp = dynamic_cast<AliAODMCParticle *>(mcTrack);
+ if(!aodmcp) continue;
trackPdg = TMath::Abs(aodmcp->GetPdgCode());
}
if(trackPdg == pdg) // Correct identification
if(!TString(recTrack->IsA()->GetName()).CompareTo("AliESDtrack")){
// case ESD
AliESDtrack *esdTrack = dynamic_cast<AliESDtrack *>(recTrack);
+ if(!esdTrack) continue;
status = esdTrack->GetStatus();
//TPC momentum and likelihoods
// 8) TRD Ntrk, 9) TRD Ncls, 10) TRD dEdx,
Double_t data[12];
- memset(data, -99, sizeof(Double_t) *12);
+
Int_t run = fEvent->GetRunNumber();
AliVParticle *recTrack = NULL;
TIter trackIter(particles);
while((recTrack = dynamic_cast<AliVParticle *>(trackIter()))){
- memset(data, -99, sizeof(Double_t) *10);
+ for(Int_t i=0; i<12; ++i) data[i] = -99.;
// ESD
if(!TString(recTrack->IsA()->GetName()).CompareTo("AliESDtrack")){
// case ESD
//
if(status & AliESDtrack::kTOFpid){
Double_t p = esdTrack->GetOuterParam() ? esdTrack->GetOuterParam()->P() : esdTrack->P();
- Double_t t0 = fESDpid->GetTOFResponse().GetTimeZero();
+ Double_t t0 = fESDpid->GetTOFResponse().GetStartTime(esdTrack->P());
//TOF beta
sprintf(hname, "hTOF_beta_%s", typeName[species]);
if((esd = dynamic_cast<AliESDEvent *>(fEvent))){
AliESDtrack *track = NULL, *partnerTrack = NULL;
while((hfetrack = dynamic_cast<AliHFEV0info *>(candidates()))){
+ if(!hfetrack) continue;
track = dynamic_cast<AliESDtrack *>(hfetrack->GetTrack());
+ if(!track) continue;
partnerTrack = esd->GetTrack(hfetrack->GetPartnerID());
Double_t nSigmaTrack = TMath::Abs(fESDpid->NumberOfSigmasTPC(track, AliPID::kElectron) - shift);
Double_t nSigmaPartner = TMath::Abs(fESDpid->NumberOfSigmasTPC(partnerTrack, AliPID::kElectron) - shift);
}
} else {
aod = dynamic_cast<AliAODEvent *>(fEvent);
- AliAODTrack *track = NULL, *partnerTrack = NULL;
+ if(!aod) return NULL;
+ //AliAODTrack *track = NULL, *partnerTrack = NULL;
while((hfetrack = dynamic_cast<AliHFEV0info *>(candidates()))){
- track = dynamic_cast<AliAODTrack *>(hfetrack->GetTrack());
- partnerTrack = aod->GetTrack(hfetrack->GetPartnerID());
+ if(!hfetrack) continue;
+ //track = dynamic_cast<AliAODTrack *>(hfetrack->GetTrack());
+ //partnerTrack = aod->GetTrack(hfetrack->GetPartnerID());
// will be coming soon
}
}
if(p < 0) return kFALSE;
Int_t mombin = TRDmomBin(p); // momentum bin
+ if(mombin < 0) return -1.;
Float_t dEdxTRDsum = 0; // dEdxTRDsum for checking if tracklet is available
Float_t dEdxTRD[8]; // dEdx for a tracklet in the ESD slices
Double_t ddEdxTRD[8]; // dEdx as Double_t for TMultiLayerPerceptron::Evaluate()
return sum;
}
//__________________________________________________________________________
-const Int_t AliHFEpidQA::TRDmomBin(Double_t p){
+Int_t AliHFEpidQA::TRDmomBin(Double_t p) const {
//
// compute the momentum bin position
//