else {
partMC = dynamic_cast<AliAODMCParticle*>(tca->At(ipart));
part = partMC;
- charge = partMC->Charge();
+ if(!partMC)return;
+ charge = partMC->Charge();
pt = partMC->Pt();
eta = partMC->Eta();
pdgcode = partMC->GetPdgCode();
suffix.Append("MC");
- }
+ }
+
+ if(!part)return;
-
if (fDebug > 1) AliInfo(Form(" ==== AOD track = %d pt = %f charge = %d \n ",ipart,part->Pt(),part->Charge()));
// track selection
for (Int_t ipart=0; ipart<nTracks; ++ipart) {
AliAODMCParticle *part = dynamic_cast<AliAODMCParticle*>(tca->At(ipart));
+ if(!part)continue;
if(!part->IsPhysicalPrimary())continue;
if( part->Pt() < fTrackPtCut ) continue;
if(!part->Charge()) continue;
Int_t label = part->GetLabel();
TClonesArray *tca=0;
tca = dynamic_cast<TClonesArray*>(fkAOD->FindListObject(AliAODMCParticle::StdBranchName()));
+ if(!tca)return kFALSE;
//TParticle *partMC = fStack->ParticleFromTreeK(label);
AliAODMCParticle *partMC=dynamic_cast<AliAODMCParticle*>(tca->At(TMath::Abs(label)));
+ if(!partMC)return kFALSE;
if (!partMC->IsPhysicalPrimary())return kFALSE;
//charge = ((TParticlePDG*)partMC->GetPDG())->Charge();
charge = partMC->Charge();
if(fQAMode&1){
for(Int_t it=0; it<nRecPart; ++it){
AliVParticle *part = dynamic_cast<AliVParticle*>(fTracksRec->At(it));
- fQATrackHistosRec->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
+ if(part)fQATrackHistosRec->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
}
for(Int_t it=0; it<nRecPartCuts; ++it){
AliVParticle *part = dynamic_cast<AliVParticle*>(fTracksRecCuts->At(it));
- fQATrackHistosRecCuts->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
+ if(part)fQATrackHistosRecCuts->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
}
for(Int_t it=0; it<nGenPart; ++it){
AliVParticle *part = dynamic_cast<AliVParticle*>(fTracksGen->At(it));
- fQATrackHistosGen->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
+ if(part)fQATrackHistosGen->FillTrackQA( part->Eta(), TVector2::Phi_0_2pi(part->Phi()), part->Pt());
}
}
if(fQAMode&2){
for(Int_t ij=0; ij<nRecJets; ++ij){
AliAODJet* jet = dynamic_cast<AliAODJet*>(fJetsRec->At(ij));
- fQAJetHistosRec->FillJetQA( jet->Eta(), TVector2::Phi_0_2pi(jet->Phi()), jet->Pt());
+ if(jet)fQAJetHistosRec->FillJetQA( jet->Eta(), TVector2::Phi_0_2pi(jet->Phi()), jet->Pt());
}
}
}
oldHistograms.SetOwner(1);
if (fGenSpectrum) oldHistograms.Add(fGenSpectrum);
+ else return kFALSE;
if (fRecSpectrum) oldHistograms.Add(fRecSpectrum);
+ else return kFALSE;
if (fUnfSpectrum) oldHistograms.Add(fUnfSpectrum);
+ else return kFALSE;
if (fCorrelation) oldHistograms.Add(fCorrelation);
+ else return kFALSE;
// load new histograms
fGenSpectrum = dynamic_cast<TH2F*> (gDirectory->Get(fGenSpectrum->GetName()));
}
TH2F* target = dynamic_cast<TH2F*> (fRecSpectrum->Clone(Form("reconstructed_%s", inputGen->GetName())));
+ if(!targer)return 0;
+
target->Reset();
for (Int_t me=1; me<=fgkNBINSE; ++me)
}
const AliVVertex *vtx = fInputEvent->GetPrimaryVertex();
- // Need vertex cut
+ if(!vtx){
+ PostData(1, fHistListCosmics);
+ return;
+ }
+
+// Need vertex cut
TString vtxName(vtx->GetName());
- if(!vtx || vtx->GetNContributors() < 2 || (vtxName.Contains("TPCVertex")) ) {
+ if( vtx->GetNContributors() < 2 || (vtxName.Contains("TPCVertex")) ) {
// Post output data
PostData(1, fHistListCosmics);
return;
for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {
AliESDtrack *track = fESD->GetTrack(iTrack);
- AliExternalTrackParam *trackTPC = (AliExternalTrackParam *)track->GetTPCInnerParam();
if(!track || !trackTPC) continue;
+ AliExternalTrackParam *trackTPC = (AliExternalTrackParam *)track->GetTPCInnerParam();
const AliESDfriendTrack* constfriendtrack = 0x0;
if(fESDfriend && fESDfriend->TestSkipBit()==kFALSE) constfriendtrack = track->GetFriendTrack();