]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysis.h
Dummy kCTEQ6ll added.
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysis.h
index dfe10d8fb5957b736bfff0f9efa98e43f7debdfa..79fe759d50f2c65a41c927bf3de91b47d8d503e9 100644 (file)
 ///////////////////////////////////////////////////////////
 
 #include <TTask.h>
+#include <AliAODParticleCut.h>
+#include <AliAODPairCut.h>
 
 class AliAOD;
 class AliStack;
 class AliEventCut;
+class AliVAODParticle;
+class AliAODPair;
  
 class AliAnalysis: public TTask
 {
@@ -29,19 +33,65 @@ class AliAnalysis: public TTask
     virtual Int_t ProcessEvent(AliAOD* aodrec, AliAOD* aodsim = 0x0) = 0;
     virtual Int_t Finish() = 0;
 
-    void          EventCutOnRec(Bool_t flag){fCutOnRec = flag;}
-    void          EventCutOnSim(Bool_t flag){fCutOnSim = flag;}
+    void          SetCutsOnRec();
+    void          SetCutsOnSim();
+    void          SetCutsOnRecAndSim();
+    
     void          SetEventCut(AliEventCut* evcut);
+    void          SetPairCut(AliAODPairCut* cut);
     
   protected:
-    Bool_t        Pass(AliAOD* recevent, AliAOD* simevent);
+    Bool_t        Rejected(AliAOD* recevent, AliAOD* simevent);
     AliEventCut*  fEventCut;//event cut
 
     Bool_t        fCutOnSim;//flag indicating that event cut is performed on simulated particles 
     Bool_t        fCutOnRec;//flag indicating that event cut is performed on reconstructed tracks
-    
+
+    AliAODPairCut*   fPairCut;// Pair cut applied for all mixed particles
+
+    /**********************************************/
+    /*                C U T S                     */
+    /**********************************************/
+
+    Bool_t (AliAnalysis::*fkPass)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
+    Bool_t (AliAnalysis::*fkPass1)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on first particle
+    Bool_t (AliAnalysis::*fkPass2)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on second particle
+    Bool_t (AliAnalysis::*fkPassPairProp)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
+
+    Bool_t PassPartAndTrack (AliAODPair* partpair, AliAODPair* trackpair) const {return (fPairCut->Rejected((AliAODPair*)partpair))?kTRUE:fPairCut->Rejected((AliAODPair*)trackpair);}
+    Bool_t PassPartAndTrack1(AliVAODParticle* part, AliVAODParticle* track) const;
+    Bool_t PassPartAndTrack2(AliVAODParticle* part, AliVAODParticle* track) const;
+    Bool_t PassPairPropPartAndTrack (AliAODPair* partpair, AliAODPair* trackpair) const {return (fPairCut->PassPairProp((AliAODPair*)partpair))?kTRUE:fPairCut->PassPairProp((AliAODPair*)trackpair);}
+
+    Bool_t PassPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->Rejected((AliAODPair*)partpair);}
+    Bool_t PassPart1(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetFirstPartCut()->Rejected(part);}
+    Bool_t PassPart2(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetSecondPartCut()->Rejected(part);}
+    Bool_t PassPairPropPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->PassPairProp((AliAODPair*)partpair);}
+
+    Bool_t PassTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->Rejected((AliAODPair*)trackpair);}
+    Bool_t PassTrack1(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetFirstPartCut()->Rejected(track);}
+    Bool_t PassTrack2(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetSecondPartCut()->Rejected(track);}
+    Bool_t PassPairPropTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->PassPairProp((AliAODPair*)trackpair);}
+
   private:
     ClassDef(AliAnalysis,1)
 };
 
+
+inline Bool_t AliAnalysis::PassPartAndTrack1(AliVAODParticle* part,AliVAODParticle* track) const
+{
+//Checks first particle from both, particle and track pairs
+  AliAODParticleCut* pc = fPairCut->GetFirstPartCut();
+  return (pc->Rejected(part))?kTRUE:pc->Rejected(track);
+}
+/*************************************************************************************/
+
+inline Bool_t AliAnalysis::PassPartAndTrack2(AliVAODParticle* part,AliVAODParticle* track) const
+{
+//Checks second particle from both, particle and track pairs
+  AliAODParticleCut* pc = fPairCut->GetSecondPartCut();
+  return (pc->Rejected(part))?kTRUE:pc->Rejected(track);
+}
+/*************************************************************************************/ 
+
 #endif