X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=JETAN%2FAliJetAODReader.cxx;h=db9358d0311461ddc85deb5d629c7f9de96698db;hp=0a2a479a113e0c32ec19afd360c8e78d20943c87;hb=e53baffe87ff5305ba6e66c81314d1a01ad06796;hpb=438635e3b278b7cb28a5ac8dd84499215974baff diff --git a/JETAN/AliJetAODReader.cxx b/JETAN/AliJetAODReader.cxx index 0a2a479a113..db9358d0311 100644 --- a/JETAN/AliJetAODReader.cxx +++ b/JETAN/AliJetAODReader.cxx @@ -16,6 +16,9 @@ //------------------------------------------------------------------------- // Jet AOD Reader // AOD reader for jet analysis +// This is the reader which must be used if the jet analysis task +// is executed after the ESD filter task, in order to read its output +// // Author: Davide Perrino //------------------------------------------------------------------------- @@ -126,6 +129,7 @@ Bool_t AliJetAODReader::FillMomentumArray() { // Clear momentum array ClearArray(); + fRef->Clear(); fDebug = fReaderHeader->GetDebug(); if (!fAOD) { @@ -134,7 +138,7 @@ Bool_t AliJetAODReader::FillMomentumArray() // get number of tracks in event (for the loop) Int_t nt = fAOD->GetNTracks(); - printf("AOD tracks: %5d ", nt); + printf("AOD tracks: %5d \t", nt); // temporary storage of signal and pt cut flag Int_t* sflag = new Int_t[nt]; @@ -145,6 +149,7 @@ Bool_t AliJetAODReader::FillMomentumArray() 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; @@ -152,20 +157,23 @@ Bool_t AliJetAODReader::FillMomentumArray() for (Int_t it = 0; it < nt; it++) { AliAODTrack *track = fAOD->GetTrack(it); + UInt_t status = track->GetStatus(); 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 (status == 0) continue; 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()); + + new ((*fMomentumArray)[aodTrack]) TLorentzVector(p3,p3.Mag()); + sflag[aodTrack] = (TMath::Abs(track->GetLabel()) < 10000) ? 1 : 0; + cflag[aodTrack] = ( pt > ptMin ) ? 1: 0; + aodTrack++; fRef->Add(track); } - printf("Used AOD tracks: %5d ", aodTrack); + printf("Used AOD tracks: %5d \n", aodTrack); // set the signal flags fSignalFlag.Set(aodTrack,sflag); fCutFlag.Set(aodTrack,cflag);