]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/JET/AliHLTJETTrackCuts.cxx
Changes requested in report #61429: PID: Separating response functions from ESD ...
[u/mrichter/AliRoot.git] / HLT / JET / AliHLTJETTrackCuts.cxx
index 3d6007aa701f28e64d54695aaa13f78db40b1624..8f3dbe268cba1867e00c4f3d58f13666939e47a1 100644 (file)
@@ -33,6 +33,7 @@ using namespace std;
 #endif
 
 #include "AliHLTJETTrackCuts.h"
+#include <TDatabasePDG.h>
 
 /** ROOT macro for the implementation of ROOT specific class methods */
 ClassImp(AliHLTJETTrackCuts)
@@ -47,7 +48,12 @@ ClassImp(AliHLTJETTrackCuts)
 AliHLTJETTrackCuts::AliHLTJETTrackCuts(const Char_t* name, const Char_t* title )
   : 
   AliAnalysisCuts(name, title),
-  fPtMin(0.) {
+  fChargedOnly(kFALSE),
+  fPtMin(0.0),
+  fEtaMin(-0.9),
+  fEtaMax(0.9),
+  fPhiMin(0.0),
+  fPhiMax(6.3) {
   // see header file for class documentation
   // or
   // refer to README to build package
@@ -69,11 +75,11 @@ AliHLTJETTrackCuts::~AliHLTJETTrackCuts() {
  */
 
 // #################################################################################
-Bool_t AliHLTJETTrackCuts::IsSelected( TObject *obj ) {
+Bool_t AliHLTJETTrackCuts::IsSelected( TObject *obj, TObject *obj2 ) {
   // see header file for class documentation
 
   Bool_t bResult = kTRUE;
-
+  
   if ( ! strcmp(obj->ClassName(),"TParticle") )
     bResult = IsSelected( dynamic_cast<TParticle*> (obj));
   else if ( ! strcmp(obj->ClassName(),"AliESDtrack") )
@@ -92,16 +98,38 @@ Bool_t AliHLTJETTrackCuts::IsSelected( TObject *obj ) {
 Bool_t AliHLTJETTrackCuts::IsSelected( TParticle *particle ) {
   // see header file for class documentation
 
+  // ----------------------------------
+  //  Applied before in AliHLTMCEvent:
+  //  - Is Physical Primary  
+  //   stack->IsPhysicalPrimary(iter)
+  //  - final state
+  //   particle->GetNDaughters() == 0
+  // ----------------------------------
+
   Bool_t bResult = kTRUE;
 
   Int_t   status  = particle->GetStatusCode();
-  Int_t   pdg     = TMath::Abs( particle->GetPdgCode() );
+  Int_t   pdgCode = TMath::Abs( particle->GetPdgCode() );
   
   // -- Skip non-final state particles (status != 1), neutrinos (12,14,16)
-  if ( (status != 1) || (pdg == 12 || pdg == 14 || pdg == 16) )
+  if ( (status != 1) || (pdgCode == 12 || pdgCode == 14 || pdgCode == 16) )
+    bResult = kFALSE;
+
+  // -- Charged particles only
+  if ( fChargedOnly && !particle->GetPDG()->Charge() )
+    bResult = kFALSE;
+
+  // -- cut on min Pt
+  if ( particle->Pt() < fPtMin )
+    bResult = kFALSE;
+
+  // -- cut on eta acceptance
+  if ( ( particle->Eta() < fEtaMin ) || ( particle->Eta() > fEtaMax ) )
+    bResult = kFALSE;
+
+  // -- cut on phi acceptance
+  if ( ( particle->Phi() < fPhiMin ) || ( particle->Phi() > fPhiMax ) )
     bResult = kFALSE;
-  else
-    HLTInfo("Is selected !");
 
   return bResult;
 }
@@ -112,11 +140,17 @@ Bool_t AliHLTJETTrackCuts::IsSelected( AliESDtrack *esdTrack ) {
 
   Bool_t bResult = kTRUE;
 
+  // -- cut on min Pt
+  if ( esdTrack->Pt() < fPtMin )
+    bResult = kFALSE;
+
+  // -- cut on eta acceptance
+  if ( ( esdTrack->Eta() < fEtaMin ) || ( esdTrack->Eta() > fEtaMax ) )
+    bResult = kFALSE;
+
+  // -- cut on phi acceptance
+  if ( ( esdTrack->Phi() < fPhiMin ) || ( esdTrack->Phi() > fPhiMax ) )
+    bResult = kFALSE;
+
   return bResult;
 }
-
-/*
- * ---------------------------------------------------------------------------------
- *                                     Setter
- * ---------------------------------------------------------------------------------
- */