From d61f057dea96eb2b3ec03e0d01d7ca1707c74f57 Mon Sep 17 00:00:00 2001 From: morsch Date: Sun, 25 Nov 2007 18:57:11 +0000 Subject: [PATCH] Filter output used for selection (Ch. Klein-Boesing) --- JETAN/AliJetAODReader.cxx | 35 +++++++++++++++++++---------------- JETAN/AliJetAODReaderHeader.h | 11 +++++++---- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/JETAN/AliJetAODReader.cxx b/JETAN/AliJetAODReader.cxx index 1bf0bef6284..054df87bdff 100644 --- a/JETAN/AliJetAODReader.cxx +++ b/JETAN/AliJetAODReader.cxx @@ -134,7 +134,7 @@ Bool_t AliJetAODReader::FillMomentumArray(Int_t /*event*/) // get number of tracks in event (for the loop) Int_t nt = fAOD->GetNTracks(); - printf("Fill Momentum Array %5d ", nt); + printf("AOD tracks: %5d ", nt); // temporary storage of signal and pt cut flag Int_t* sflag = new Int_t[nt]; @@ -144,31 +144,34 @@ Bool_t AliJetAODReader::FillMomentumArray(Int_t /*event*/) Float_t ptMin = fReaderHeader->GetPtCut(); Float_t etaMin = fReaderHeader->GetFiducialEtaMin(); Float_t etaMax = fReaderHeader->GetFiducialEtaMax(); - + UInt_t filterMask = ((AliJetAODReaderHeader*)fReaderHeader)->GetTestFilterMask(); //loop over tracks Int_t aodTrack = 0; Float_t pt, eta; TVector3 p3; + for (Int_t it = 0; it < nt; it++) { - AliAODTrack *track = fAOD->GetTrack(it); - - Double_t mom[3] = {track->Px(),track->Py(),track->Pz()}; - p3.SetXYZ(mom[0],mom[1],mom[2]); - pt = p3.Pt(); - eta = p3.Eta(); - if ( pt < ptMin ) continue; // checking pt cut - if ( (eta > etaMax) || (eta < etaMin)) continue; // checking eta cut - sflag[aodTrack]=1; - cflag[aodTrack]=1; - new ((*fMomentumArray)[aodTrack++]) TLorentzVector(p3,p3.Mag()); - fRef->Add(track); + AliAODTrack *track = fAOD->GetTrack(it); + + Double_t mom[3] = {track->Px(),track->Py(),track->Pz()}; + p3.SetXYZ(mom[0],mom[1],mom[2]); + pt = p3.Pt(); + eta = p3.Eta(); + if((filterMask>0)&&!(track->TestFilterBit(filterMask)))continue; + if ( pt < ptMin ) continue; // checking pt cut + if ( (eta > etaMax) || (eta < etaMin)) continue; // checking eta cut + sflag[aodTrack]=1; + cflag[aodTrack]=1; + new ((*fMomentumArray)[aodTrack++]) TLorentzVector(p3,p3.Mag()); + fRef->Add(track); } + printf("Used AOD tracks: %5d ", aodTrack); // set the signal flags fSignalFlag.Set(aodTrack,sflag); fCutFlag.Set(aodTrack,cflag); - + delete [] sflag; delete [] cflag; - + return kTRUE; } diff --git a/JETAN/AliJetAODReaderHeader.h b/JETAN/AliJetAODReaderHeader.h index ba32beb990c..d009fe6ab1f 100644 --- a/JETAN/AliJetAODReaderHeader.h +++ b/JETAN/AliJetAODReaderHeader.h @@ -19,14 +19,17 @@ class AliJetAODReaderHeader : public AliJetReaderHeader // Getters Int_t GetNaod() const {return fNaod;} - + UInt_t GetTestFilterMask(){return fTestFilterMask;} + // Setters - virtual void SetNumberOfAOD(Int_t i=1) {fNaod = i;} - + virtual void SetNumberOfAOD(Int_t i=1) {fNaod = i;} + virtual void SetTestFilterMask(UInt_t i){fTestFilterMask = i;} + protected: Int_t fNaod; // number of aods + UInt_t fTestFilterMask; // Filter Mask for jets, not tested if 0 - ClassDef(AliJetAODReaderHeader,1); + ClassDef(AliJetAODReaderHeader,2); }; #endif -- 2.43.0