]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysis.cxx
fix mem leak and compiler warning
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysis.cxx
index 690f743b87e4ee40f3e847384068eb6faf81448f..153665153b935c82e06c162f920a563c4b26c46f 100644 (file)
 ///////////////////////////////////////////////////////////
 
 #include "AliEventCut.h"
+#include "AliAODPairCut.h"
 
 ClassImp(AliAnalysis)
 
 AliAnalysis::AliAnalysis():
  fEventCut(0x0),
  fCutOnSim(kTRUE),
- fCutOnRec(kTRUE)
+ fCutOnRec(kTRUE),
+ fPairCut(new AliAODPairEmptyCut()),//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,26 @@ AliAnalysis::AliAnalysis(const char* name,const char* title):
  TTask(name,title),
  fEventCut(0x0),
  fCutOnSim(kTRUE),
- fCutOnRec(kTRUE)
+ fCutOnRec(kTRUE),
+ fPairCut(new AliAODPairEmptyCut()),//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
+}
+/*********************************************************/
+AliAnalysis::AliAnalysis(const AliAnalysis& ana):
+ TTask(ana),
+ fEventCut(ana.fEventCut),
+ fCutOnSim(ana.fCutOnSim),
+ fCutOnRec(ana.fCutOnRec),
+ fPairCut(ana.fPairCut),
+ fkPass(ana.fkPass),
+ fkPass1(ana.fkPass1),
+ fkPass2(ana.fkPass2),
+ fkPassPairProp(ana.fkPassPairProp)
 {
  //ctor
 }
@@ -52,16 +77,87 @@ void AliAnalysis::SetEventCut(AliEventCut* evcut)
 }
 /*********************************************************/
 
-Bool_t AliAnalysis::Pass(AliAOD* recevent, AliAOD* simevent)
+Bool_t AliAnalysis::Rejected(AliAOD* recevent, AliAOD* simevent)
 {
   //checks the event cut
   if (fEventCut == 0x0) return kFALSE;
   
   if (fCutOnRec)
-    if (fEventCut->Pass(recevent)) return kTRUE;
+    if (fEventCut->Rejected(recevent)) return kTRUE;
     
   if (fCutOnSim)
-    if (fEventCut->Pass(simevent)) return kTRUE;
+    if (fEventCut->Rejected(simevent)) return kTRUE;
   
   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;
+}