PairCut stuff moved from AliHBTAnalysis to AliAnalysis
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Jul 2004 13:56:09 +0000 (13:56 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Jul 2004 13:56:09 +0000 (13:56 +0000)
ANALYSIS/AliAODPairCut.h
ANALYSIS/AliAnalysis.cxx
ANALYSIS/AliAnalysis.h
ANALYSIS/AliVAODParticle.h
HBTAN/AliHBTAnalysis.cxx
HBTAN/AliHBTAnalysis.h

index 6503270..cb7a824 100644 (file)
@@ -7,7 +7,8 @@
 //Class implements cut on the pair of particles
 //
 //more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
+#include <TNamed.h> 
+
 #include "AliAODPair.h"
 
 class AliAODParticleCut;
index 690f743..6eaaf9e 100644 (file)
 ///////////////////////////////////////////////////////////
 
 #include "AliEventCut.h"
+#include "AliAODPairCut.h"
 
 ClassImp(AliAnalysis)
 
 AliAnalysis::AliAnalysis():
  fEventCut(0x0),
  fCutOnSim(kTRUE),
- fCutOnRec(kTRUE)
+ fCutOnRec(kTRUE),
+ fPairCut(new AliAODEmptyPairCut()),//empty cut - accepts all particles
+ fkPass(&AliAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair 
+ fkPass1(&AliAnalysis::PassPartAndTrack1), //used onluy by ProcessTracksAndParticles
+ fkPass2(&AliAnalysis::PassPartAndTrack2),
+ fkPassPairProp(&AliAnalysis::PassPairPropPartAndTrack)
 {
  //ctor
 }
@@ -30,7 +36,12 @@ AliAnalysis::AliAnalysis(const char* name,const char* title):
  TTask(name,title),
  fEventCut(0x0),
  fCutOnSim(kTRUE),
- fCutOnRec(kTRUE)
+ fCutOnRec(kTRUE),
+ fPairCut(new AliAODEmptyPairCut()),//empty cut - accepts all particles
+ fkPass(&AliAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair 
+ fkPass1(&AliAnalysis::PassPartAndTrack1), //used onluy by ProcessTracksAndParticles
+ fkPass2(&AliAnalysis::PassPartAndTrack2),
+ fkPassPairProp(&AliAnalysis::PassPairPropPartAndTrack)
 {
  //ctor
 }
@@ -65,3 +76,74 @@ Bool_t AliAnalysis::Pass(AliAOD* recevent, AliAOD* simevent)
   
   return kFALSE;
 }
+/*************************************************************************************/ 
+
+void AliAnalysis::SetPairCut(AliAODPairCut* cut)
+{
+//Sets new Pair Cut. Old one is deleted
+//Note that it is created new object instead of simple pointer set
+//I do not want to have pointer
+//to object created somewhere else
+//because in that case I could not believe that
+//it would always exist (sb could delete it)
+//so we have always own copy
+
+ if(!cut)
+   {
+     Error("AliHBTFunction::SetPairCut","argument is NULL");
+     return;
+   }
+ delete fPairCut;
+ fPairCut = (AliAODPairCut*)cut->Clone();
+
+}
+/******************************************************************/
+
+void AliAnalysis::SetCutsOnSim()
+{
+ // -- aplies only to Process("TracksAndParticles")
+ // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
+ // Only particles properties are checkes against cuts
+  
+  fCutOnRec = kFALSE;
+  fCutOnSim = kTRUE;
+  
+  fkPass = &AliAnalysis::PassPart;
+  fkPass1 = &AliAnalysis::PassPart1;
+  fkPass2 = &AliAnalysis::PassPart2;
+  fkPassPairProp = &AliAnalysis::PassPairPropPart;
+  
+}
+/*************************************************************************************/ 
+
+void AliAnalysis::SetCutsOnRec()
+{
+ // -- aplies only to Process("TracksAndParticles")
+ // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
+ // Only tracks properties are checkes against cuts
+  
+  fCutOnRec = kTRUE;
+  fCutOnSim = kFALSE;
+  fkPass = &AliAnalysis::PassTrack;
+  fkPass1 = &AliAnalysis::PassTrack1;
+  fkPass2 = &AliAnalysis::PassTrack2;
+  fkPassPairProp = &AliAnalysis::PassPairPropTrack;
+}
+/*************************************************************************************/ 
+
+void AliAnalysis::SetCutsOnRecAndSim()
+{
+ // -- aplies only to Process("TracksAndParticles")
+ // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
+ // Both, tracks and particles, properties are checked against cuts
+
+  fCutOnRec = kTRUE;
+  fCutOnSim = kTRUE;
+
+  fkPass = &AliAnalysis::PassPartAndTrack;
+  fkPass1 = &AliAnalysis::PassPartAndTrack1;
+  fkPass2 = &AliAnalysis::PassPartAndTrack2;
+  fkPassPairProp = &AliAnalysis::PassPairPropPartAndTrack;
+}
index dfe10d8..fc9ae70 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,9 +33,12 @@ 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);
@@ -39,9 +46,51 @@ class AliAnalysis: public TTask
 
     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->Pass((AliAODPair*)partpair))?kTRUE:fPairCut->Pass((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->Pass((AliAODPair*)partpair);}
+    Bool_t PassPart1(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetFirstPartCut()->Pass(part);}
+    Bool_t PassPart2(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetSecondPartCut()->Pass(part);}
+    Bool_t PassPairPropPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->PassPairProp((AliAODPair*)partpair);}
+
+    Bool_t PassTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->Pass((AliAODPair*)trackpair);}
+    Bool_t PassTrack1(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetFirstPartCut()->Pass(track);}
+    Bool_t PassTrack2(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetSecondPartCut()->Pass(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->Pass(part))?kTRUE:pc->Pass(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->Pass(part))?kTRUE:pc->Pass(track);
+}
+/*************************************************************************************/ 
+
 #endif
index a79c297..da0d4d1 100644 (file)
@@ -15,8 +15,6 @@
 #include <TLorentzVector.h>
 #include <TVector3.h>
 
-#include "AliAnalysis.h"
-
 class AliTrackPoints;
 class AliClusterMap;
 
index 3cdd3c8..a4e5723 100644 (file)
@@ -26,6 +26,7 @@
 #include "AliAOD.h"
 #include "AliAODParticle.h"
 #include "AliAODPairCut.h"
+#include "AliEventCut.h"
 
 #include "AliEventBuffer.h"
 
@@ -56,7 +57,7 @@ AliHBTAnalysis::AliHBTAnalysis():
   fParticleMonitorFunctions ( new AliHBTMonOneParticleFctn* [fgkFctnArraySize]),    
   fTrackMonitorFunctions ( new AliHBTMonOneParticleFctn* [fgkFctnArraySize]),    
   fParticleAndTrackMonitorFunctions ( new AliHBTMonTwoParticleFctn* [fgkFctnArraySize]),    
-  fPairCut(new AliAODEmptyPairCut()),//empty cut - accepts all particles
+  fBkgEventCut(0x0),
   fBufferSize(2),
   fDisplayMixingInfo(fgkDefaultMixingInfo),
   fIsOwner(kFALSE),
@@ -64,11 +65,7 @@ AliHBTAnalysis::AliHBTAnalysis():
   fTrackBuffer(0x0),
   fProcessOption(kSimulatedAndReconstructed),
   fNoCorrfctns(kFALSE),
-  fOutputFileName(0x0),
-  fkPass(&AliHBTAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair 
-  fkPass1(&AliHBTAnalysis::PassPartAndTrack1), //used onluy by ProcessTracksAndParticles
-  fkPass2(&AliHBTAnalysis::PassPartAndTrack2),
-  fkPassPairProp(&AliHBTAnalysis::PassPairPropPartAndTrack)
+  fOutputFileName(0x0)
  {
    //default constructor
    
@@ -91,7 +88,7 @@ AliHBTAnalysis::AliHBTAnalysis(const AliHBTAnalysis& in):
   fParticleMonitorFunctions(0x0),
   fTrackMonitorFunctions(0x0),
   fParticleAndTrackMonitorFunctions(0x0),
-  fPairCut(0x0),
+  fBkgEventCut(0x0),
   fBufferSize(fgkDefaultBufferSize),
   fDisplayMixingInfo(fgkDefaultMixingInfo),
   fIsOwner(kFALSE),
@@ -99,11 +96,7 @@ AliHBTAnalysis::AliHBTAnalysis(const AliHBTAnalysis& in):
   fTrackBuffer(0x0),
   fProcessOption(kSimulatedAndReconstructed),
   fNoCorrfctns(kFALSE),
-  fOutputFileName(0x0),
-  fkPass(&AliHBTAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair 
-  fkPass1(&AliHBTAnalysis::PassPartAndTrack1),
-  fkPass2(&AliHBTAnalysis::PassPartAndTrack2),
-  fkPassPairProp(&AliHBTAnalysis::PassPairPropPartAndTrack)
+  fOutputFileName(0x0)
  {
 //copy constructor
    Fatal("AliHBTAnalysis(const AliHBTAnalysis&)","Sensless");
@@ -137,11 +130,12 @@ AliHBTAnalysis::~AliHBTAnalysis()
    delete [] fTrackMonitorFunctions; 
    delete [] fParticleAndTrackMonitorFunctions;
 
-   delete fPairCut; // always have an copy of an object - we create we dstroy
+   delete fBkgEventCut;
    delete fOutputFileName;
  }
 
 /*************************************************************************************/ 
+
 Int_t AliHBTAnalysis::ProcessEvent(AliAOD* aodrec, AliAOD* aodsim)
 {
   //Processes one event
@@ -1702,45 +1696,6 @@ Bool_t AliHBTAnalysis::IsNonIdentAnalysis()
 }
 /*************************************************************************************/ 
 
-void AliHBTAnalysis::SetCutsOnParticles()
-{
- // -- aplies only to Process("TracksAndParticles")
- // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
- // Only particles properties are checkes against cuts
-  fkPass = &AliHBTAnalysis::PassPart;
-  fkPass1 = &AliHBTAnalysis::PassPart1;
-  fkPass2 = &AliHBTAnalysis::PassPart2;
-  fkPassPairProp = &AliHBTAnalysis::PassPairPropPart;
-  
-}
-/*************************************************************************************/ 
-
-void AliHBTAnalysis::SetCutsOnTracks()
-{
- // -- aplies only to Process("TracksAndParticles")
- // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
- // Only tracks properties are checkes against cuts
-  Info("SetCutsOnTracks","Only reconstructed particles will be checked");
-  fkPass = &AliHBTAnalysis::PassTrack;
-  fkPass1 = &AliHBTAnalysis::PassTrack1;
-  fkPass2 = &AliHBTAnalysis::PassTrack2;
-  fkPassPairProp = &AliHBTAnalysis::PassPairPropTrack;
-}
-/*************************************************************************************/ 
-
-void AliHBTAnalysis::SetCutsOnTracksAndParticles()
-{
- // -- aplies only to Process("TracksAndParticles")
- // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
- // Both, tracks and particles, properties are checked against cuts
-  fkPass = &AliHBTAnalysis::PassPartAndTrack;
-  fkPass1 = &AliHBTAnalysis::PassPartAndTrack1;
-  fkPass2 = &AliHBTAnalysis::PassPartAndTrack2;
-  fkPassPairProp = &AliHBTAnalysis::PassPairPropPartAndTrack;
-}
-/*************************************************************************************/ 
-
 void AliHBTAnalysis::PressAnyKey()
 { 
  //small utility function that helps to make comfortable macros
index 8bca073..be6d36f 100644 (file)
@@ -21,8 +21,6 @@
 //_________________________________________________________
 
 #include <AliAnalysis.h>
-#include "AliAODPairCut.h"
-#include "AliAODParticleCut.h"
 
 class AliHBTCut;
 //class AliHBTPair;
@@ -31,6 +29,7 @@ class AliHBTRun;
 class AliAOD;
 class AliReader;
 class AliEventBuffer;
+class AliEventCut;
 
 class AliHBTOnePairFctn;      
 class AliHBTTwoPairFctn;
@@ -81,10 +80,6 @@ class AliHBTAnalysis: public AliAnalysis
      void   ResetFunctions();
      void   SetDisplayInfo(Int_t howoften){fDisplayMixingInfo = howoften;}//defines every each line info about mixing is displayed
      
-     void   SetCutsOnParticles(); // -- aplies only to Process Tracks And Particles
-     void   SetCutsOnTracks();// -- aplies only to Process Tracks And Particles
-     void   SetCutsOnTracksAndParticles();// Default // -- aplies only to Process Tracks And Particles
-     
      static void PressAnyKey();//small utility function that helps to make comfortable macros
    protected:
      
@@ -146,9 +141,9 @@ class AliHBTAnalysis: public AliAnalysis
      /* Control parameters  */
      /**********************************************/
 
-     AliAODPairCut*   fPairCut;//! Pair cut applied for all mixed particles
+     AliEventCut*     fBkgEventCut;// We can narrow class of events used in 
       
-     Int_t  fBufferSize; //!defines the size of buffer for mixed events; -1==MIX All
+     Int_t  fBufferSize; //defines the size of buffer for mixed events; -1==MIX All
      Int_t  fDisplayMixingInfo;//!defines every which particle mixing info is displayed
      Bool_t fIsOwner;//!defines of all functions are supposed to be deleted while by the way of analysis defaulr false
     
@@ -161,29 +156,6 @@ class AliHBTAnalysis: public AliAnalysis
      
    private:
    
-     /**********************************************/
-     /*                C U T S                     */
-     /**********************************************/
-   
-     Bool_t (AliHBTAnalysis::*fkPass)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
-     Bool_t (AliHBTAnalysis::*fkPass1)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on first particle
-     Bool_t (AliHBTAnalysis::*fkPass2)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on second particle
-     Bool_t (AliHBTAnalysis::*fkPassPairProp)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
-     
-     Bool_t PassPartAndTrack (AliAODPair* partpair, AliAODPair* trackpair) const {return (fPairCut->Pass((AliAODPair*)partpair))?kTRUE:fPairCut->Pass((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->Pass((AliAODPair*)partpair);}
-     Bool_t PassPart1(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetFirstPartCut()->Pass(part);}
-     Bool_t PassPart2(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetSecondPartCut()->Pass(part);}
-     Bool_t PassPairPropPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->PassPairProp((AliAODPair*)partpair);}
-     
-     Bool_t PassTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->Pass((AliAODPair*)trackpair);}
-     Bool_t PassTrack1(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetFirstPartCut()->Pass(track);}
-     Bool_t PassTrack2(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetSecondPartCut()->Pass(track);}
-     Bool_t PassPairPropTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->PassPairProp((AliAODPair*)trackpair);}
 
      static const UInt_t fgkFctnArraySize;//!
      static const UInt_t fgkDefaultMixingInfo;//!
@@ -192,19 +164,5 @@ class AliHBTAnalysis: public AliAnalysis
      ClassDef(AliHBTAnalysis,0)
  };
  
-inline Bool_t AliHBTAnalysis::PassPartAndTrack1(AliVAODParticle* part,AliVAODParticle* track) const
-{
-//Checks first particle from both, particle and track pairs
-  AliAODParticleCut* pc = fPairCut->GetFirstPartCut();
-  return (pc->Pass(part))?kTRUE:pc->Pass(track);
-}
-/*************************************************************************************/ 
-inline Bool_t AliHBTAnalysis::PassPartAndTrack2(AliVAODParticle* part,AliVAODParticle* track) const
-{
-//Checks second particle from both, particle and track pairs
-  AliAODParticleCut* pc = fPairCut->GetSecondPartCut();
-  return (pc->Pass(part))?kTRUE:pc->Pass(track);
-}
-/*************************************************************************************/ 
  
 #endif