X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=CORRFW%2FAliCFTrackIsPrimaryCuts.cxx;h=7f878cfdc4f2fef5a7325f3629e1d92d29f984eb;hb=5a41314b24346379691be601056b9eff2257c71b;hp=d5375472cfbf15fb1bf97d3727c2ccfca2553112;hpb=9eeae5d5fe3da70c2cd59d3b416df275b4d6dab0;p=u%2Fmrichter%2FAliRoot.git diff --git a/CORRFW/AliCFTrackIsPrimaryCuts.cxx b/CORRFW/AliCFTrackIsPrimaryCuts.cxx index d5375472cfb..7f878cfdc4f 100644 --- a/CORRFW/AliCFTrackIsPrimaryCuts.cxx +++ b/CORRFW/AliCFTrackIsPrimaryCuts.cxx @@ -404,6 +404,10 @@ void AliCFTrackIsPrimaryCuts::GetDCA(AliESDtrack* esdTrack) if (!fEvt) return; AliESDEvent * evt = 0x0 ; evt = dynamic_cast(fEvt); + if (!evt) { + AliError("event not found"); + return; + } const AliESDVertex *vtx = evt->GetVertex(); const Double_t Bz = evt->GetMagneticField(); AliExternalTrackParam *cParam = 0; @@ -460,9 +464,10 @@ void AliCFTrackIsPrimaryCuts::GetDCA(AliAODTrack* aodTrack) return; } - if (!fEvt) return; AliAODEvent * evt = 0x0; evt = dynamic_cast(fEvt); + if (!evt) return; + // primary vertex is the "best": tracks, SPD or TPC vertex AliAODVertex * primaryVertex = evt->GetVertex(0); // dca = track postion - primary vertex position @@ -521,14 +526,20 @@ void AliCFTrackIsPrimaryCuts::SelectionBitMap(TObject* obj) AliError("object must derived from AliVParticle !"); return; } + + AliESDtrack * esdTrack = dynamic_cast(obj); + AliAODTrack * aodTrack = dynamic_cast(obj); - Bool_t isESDTrack = strcmp(obj->ClassName(),"AliESDtrack") == 0 ? kTRUE : kFALSE ; - Bool_t isAODTrack = strcmp(obj->ClassName(),"AliAODTrack") == 0 ? kTRUE : kFALSE ; + if (!(esdTrack || aodTrack)) { + AliError("object must be an ESDtrack or an AODtrack !"); + return; + } - AliESDtrack * esdTrack = 0x0 ; - AliAODTrack * aodTrack = 0x0 ; - if (isESDTrack) esdTrack = dynamic_cast(obj); - if (isAODTrack) aodTrack = dynamic_cast(obj); + Bool_t isESDTrack = kFALSE; + Bool_t isAODTrack = kFALSE; + + if (esdTrack) isESDTrack = strcmp(obj->ClassName(),"AliESDtrack") == 0 ? kTRUE : kFALSE ; + if (aodTrack) isAODTrack = strcmp(obj->ClassName(),"AliAODTrack") == 0 ? kTRUE : kFALSE ; // get the track to vertex parameter for ESD track if (isESDTrack) GetDCA(esdTrack); @@ -821,8 +832,6 @@ void AliCFTrackIsPrimaryCuts::FillHistograms(TObject* obj, Bool_t f) // fill the QA histograms // - if (!obj) return; - Bool_t isESDTrack = strcmp(obj->ClassName(),"AliESDtrack") == 0 ? kTRUE : kFALSE ; Bool_t isAODTrack = strcmp(obj->ClassName(),"AliAODTrack") == 0 ? kTRUE : kFALSE ; @@ -847,11 +856,15 @@ void AliCFTrackIsPrimaryCuts::FillHistograms(TObject* obj, Bool_t f) fhQA[kDcaXYnorm][f]->Fill(fDCA[0]); fhQA[kCutNSigmaToVertex][f]->Fill(fDCA[5]); - if (fDCA[5]<0 && fRequireSigmaToVertex) fhQA[kCutRequireSigmaToVertex][f]->Fill(0.); - if (!(fDCA[5]<0 && fRequireSigmaToVertex)) fhQA[kCutRequireSigmaToVertex][f]->Fill(1.); - - if (!fAcceptKinkDaughters && esdTrack->GetKinkIndex(0)>0) fhQA[kCutAcceptKinkDaughters][f]->Fill(0.); - if (!(!fAcceptKinkDaughters && esdTrack->GetKinkIndex(0)>0)) fhQA[kCutAcceptKinkDaughters][f]->Fill(0.); + if (fDCA[5]<0 && fRequireSigmaToVertex) + fhQA[kCutRequireSigmaToVertex][f]->Fill(0.); + else + fhQA[kCutRequireSigmaToVertex][f]->Fill(1.); + + if (!fAcceptKinkDaughters && esdTrack->GetKinkIndex(0)>0) + fhQA[kCutAcceptKinkDaughters][f]->Fill(0.); + else + fhQA[kCutAcceptKinkDaughters][f]->Fill(1.); } // fill cut statistics and cut correlation histograms with information from the bitmap