]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Filter output used for selection (Ch. Klein-Boesing)
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Nov 2007 18:57:11 +0000 (18:57 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Nov 2007 18:57:11 +0000 (18:57 +0000)
JETAN/AliJetAODReader.cxx
JETAN/AliJetAODReaderHeader.h

index 1bf0bef6284bbca168cb371e14354795ad43734f..054df87bdff55c6843a5900ccf0fcec976c97777 100644 (file)
@@ -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;
 }
index ba32beb990cba26503ee654e47c43640d88c46ac..d009fe6ab1ff98fd2ae4be1f560569d313a104c5 100644 (file)
@@ -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