X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG3%2Fhfe%2FAliHFEefficiency.cxx;h=30bb40e96919c1de3828780f6bdc9bfab856cf96;hb=02f4889497ef9e8f8eb525c636fd4225fbadc838;hp=54c6ec83b581687e912820a9a295d23d584f73db;hpb=3a72645a6af8c16f05dcfce102fd2b900545a472;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG3/hfe/AliHFEefficiency.cxx b/PWG3/hfe/AliHFEefficiency.cxx index 54c6ec83b58..30bb40e9691 100644 --- a/PWG3/hfe/AliHFEefficiency.cxx +++ b/PWG3/hfe/AliHFEefficiency.cxx @@ -119,16 +119,18 @@ void AliHFEefficiency::UserCreateOutputObjects(){ if(fCutTRD){ AliHFEcutStep *hfeTRD = fFilter->GetCutStep("HFETRD"); AliHFEextraCuts *hfecuts = dynamic_cast(hfeTRD->GetCut("HFETRDCuts")); - hfecuts->SetMinTrackletsTRD(4); + if(hfecuts) hfecuts->SetMinTrackletsTRD(4); } AliHFEcutStep *hfeITS = fFilter->GetCutStep("HFEITS"); AliHFEextraCuts *hfeitscuts = dynamic_cast(hfeITS->GetCut("HFEPixelsCuts")); - hfeitscuts->SetRequireITSpixel(AliHFEextraCuts::kFirst); + if(hfeitscuts)hfeitscuts->SetRequireITSpixel(AliHFEextraCuts::kFirst); AliHFEcutStep *primary = fFilter->GetCutStep("Primary"); AliCFTrackIsPrimaryCuts *primcuts = dynamic_cast(primary->GetCut("PrimaryCuts")); - primcuts->SetMaxDCAToVertexXY(3); - primcuts->SetMaxDCAToVertexZ(5); + if(primcuts){ + primcuts->SetMaxDCAToVertexXY(3); + primcuts->SetMaxDCAToVertexZ(5); + } fAcceptanceCuts = new AliCFAcceptanceCuts("Acceptance", "MC Acceptance Cuts"); fAcceptanceCuts->SetMinNHitITS(3); @@ -150,17 +152,26 @@ void AliHFEefficiency::UserExec(Option_t *){ // Event Loop // Filter track, fill Efficiency container // + AliESDEvent *esdevent = dynamic_cast(fInputEvent); + if(!esdevent){ + AliError("ESD Event required"); + return; + } fEfficiency->NewEvent(); fFilter->SetRecEvent(fInputEvent); if(fMCEvent){ AliMCEventHandler *mcH = dynamic_cast(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()); - if(!mcH->InitOk()) return; - if(!mcH->TreeK()) return; - if(!mcH->TreeTR()) return; + if ( ! mcH ) { + AliError("Cannot get MC truth event handler"); + return; + } + if(mcH &&(!mcH->InitOk())) return; + if(mcH &&(!mcH->TreeK())) return; + if(mcH &&(!mcH->TreeTR())) return; fFilter->SetMC(fMCEvent); FilterMC(); } - fFilter->FilterTracks(dynamic_cast(fInputEvent)); + fFilter->FilterTracks(esdevent); TObjArray *tracks = fFilter->GetFilteredTracks(); TIterator *iter = tracks->MakeIterator(); fOutput->Fill("hNtracks", tracks->GetEntriesFast()); @@ -204,7 +215,7 @@ void AliHFEefficiency::Terminate(Option_t *){ PostProcess(); TList *l = dynamic_cast(GetOutputData(2)); - DrawPtResolution(l); + if(l) DrawPtResolution(l); } void AliHFEefficiency::FilterMC(){ @@ -215,6 +226,7 @@ void AliHFEefficiency::FilterMC(){ AliMCParticle *track = NULL; for(Int_t itrack = 0; itrack < fMCEvent->GetNumberOfTracks(); itrack++){ track = dynamic_cast(fMCEvent->GetTrack(itrack)); + if(!track) continue; if(!fMCcut->IsSelected(track)) continue; cont[0] = track->Pt(); cont[1] = track->Eta(); @@ -234,7 +246,7 @@ void AliHFEefficiency::Load(const char* filename){ // TFile *input = TFile::Open(filename); AliHFEcontainer *cin = dynamic_cast(input->Get("Efficiency")); - fEfficiency = dynamic_cast(cin->Clone()); + if(cin) fEfficiency = dynamic_cast(cin->Clone()); input->Close(); delete input; } @@ -371,6 +383,7 @@ void AliHFEefficiency::DrawPtResolution(const TList * const l){ // Draw pt resolution // TH2 *h2 = dynamic_cast(l->FindObject("ptres")); + if(!h2) return; TGraphErrors *mean = new TGraphErrors(h2->GetNbinsX()); TGraphErrors *rms = new TGraphErrors(h2->GetNbinsX());