1 #include "AliAnalysis.h"
2 //________________________________
3 ///////////////////////////////////////////////////////////
7 // Base class for analysis.
8 // Each inheriting calss must define 3 methods:
9 // - Init() : that is called before event processing
10 // - ProcessEvent(AliESD*,AliStack*)
12 // Piotr.Skowronski@cern.ch
14 ///////////////////////////////////////////////////////////
16 #include "AliEventCut.h"
17 #include "AliAODPairCut.h"
21 AliAnalysis::AliAnalysis():
25 fPairCut(new AliAODPairEmptyCut()),//empty cut - accepts all particles
26 fkPass(&AliAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair
27 fkPass1(&AliAnalysis::PassPartAndTrack1), //used onluy by ProcessTracksAndParticles
28 fkPass2(&AliAnalysis::PassPartAndTrack2),
29 fkPassPairProp(&AliAnalysis::PassPairPropPartAndTrack)
33 /*********************************************************/
35 AliAnalysis::AliAnalysis(const char* name,const char* title):
40 fPairCut(new AliAODPairEmptyCut()),//empty cut - accepts all particles
41 fkPass(&AliAnalysis::PassPartAndTrack), //by default perform cut on both track and particle pair
42 fkPass1(&AliAnalysis::PassPartAndTrack1), //used onluy by ProcessTracksAndParticles
43 fkPass2(&AliAnalysis::PassPartAndTrack2),
44 fkPassPairProp(&AliAnalysis::PassPairPropPartAndTrack)
48 /*********************************************************/
49 AliAnalysis::AliAnalysis(const AliAnalysis& ana):
51 fEventCut(ana.fEventCut),
52 fCutOnSim(ana.fCutOnSim),
53 fCutOnRec(ana.fCutOnRec),
54 fPairCut(ana.fPairCut),
58 fkPassPairProp(ana.fkPassPairProp)
62 /*********************************************************/
64 AliAnalysis::~AliAnalysis()
69 /*********************************************************/
71 void AliAnalysis::SetEventCut(AliEventCut* evcut)
73 //Sets event - makes a private copy
75 if (evcut) fEventCut = (AliEventCut*)evcut->Clone();
78 /*********************************************************/
80 Bool_t AliAnalysis::Rejected(AliAOD* recevent, AliAOD* simevent)
82 //checks the event cut
83 if (fEventCut == 0x0) return kFALSE;
86 if (fEventCut->Rejected(recevent)) return kTRUE;
89 if (fEventCut->Rejected(simevent)) return kTRUE;
93 /*************************************************************************************/
95 void AliAnalysis::SetPairCut(AliAODPairCut* cut)
97 //Sets new Pair Cut. Old one is deleted
98 //Note that it is created new object instead of simple pointer set
99 //I do not want to have pointer
100 //to object created somewhere else
101 //because in that case I could not believe that
102 //it would always exist (sb could delete it)
103 //so we have always own copy
107 Error("AliHBTFunction::SetPairCut","argument is NULL");
111 fPairCut = (AliAODPairCut*)cut->Clone();
114 /******************************************************************/
116 void AliAnalysis::SetCutsOnSim()
118 // -- aplies only to Process("TracksAndParticles")
119 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
120 // Only particles properties are checkes against cuts
125 fkPass = &AliAnalysis::PassPart;
126 fkPass1 = &AliAnalysis::PassPart1;
127 fkPass2 = &AliAnalysis::PassPart2;
128 fkPassPairProp = &AliAnalysis::PassPairPropPart;
131 /*************************************************************************************/
133 void AliAnalysis::SetCutsOnRec()
135 // -- aplies only to Process("TracksAndParticles")
136 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
137 // Only tracks properties are checkes against cuts
142 fkPass = &AliAnalysis::PassTrack;
143 fkPass1 = &AliAnalysis::PassTrack1;
144 fkPass2 = &AliAnalysis::PassTrack2;
145 fkPassPairProp = &AliAnalysis::PassPairPropTrack;
148 /*************************************************************************************/
150 void AliAnalysis::SetCutsOnRecAndSim()
152 // -- aplies only to Process("TracksAndParticles")
153 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
154 // Both, tracks and particles, properties are checked against cuts
159 fkPass = &AliAnalysis::PassPartAndTrack;
160 fkPass1 = &AliAnalysis::PassPartAndTrack1;
161 fkPass2 = &AliAnalysis::PassPartAndTrack2;
162 fkPassPairProp = &AliAnalysis::PassPairPropPartAndTrack;