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 /*********************************************************/
50 AliAnalysis::~AliAnalysis()
55 /*********************************************************/
57 void AliAnalysis::SetEventCut(AliEventCut* evcut)
59 //Sets event - makes a private copy
61 if (evcut) fEventCut = (AliEventCut*)evcut->Clone();
64 /*********************************************************/
66 Bool_t AliAnalysis::Rejected(AliAOD* recevent, AliAOD* simevent)
68 //checks the event cut
69 if (fEventCut == 0x0) return kFALSE;
72 if (fEventCut->Rejected(recevent)) return kTRUE;
75 if (fEventCut->Rejected(simevent)) return kTRUE;
79 /*************************************************************************************/
81 void AliAnalysis::SetPairCut(AliAODPairCut* cut)
83 //Sets new Pair Cut. Old one is deleted
84 //Note that it is created new object instead of simple pointer set
85 //I do not want to have pointer
86 //to object created somewhere else
87 //because in that case I could not believe that
88 //it would always exist (sb could delete it)
89 //so we have always own copy
93 Error("AliHBTFunction::SetPairCut","argument is NULL");
97 fPairCut = (AliAODPairCut*)cut->Clone();
100 /******************************************************************/
102 void AliAnalysis::SetCutsOnSim()
104 // -- aplies only to Process("TracksAndParticles")
105 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
106 // Only particles properties are checkes against cuts
111 fkPass = &AliAnalysis::PassPart;
112 fkPass1 = &AliAnalysis::PassPart1;
113 fkPass2 = &AliAnalysis::PassPart2;
114 fkPassPairProp = &AliAnalysis::PassPairPropPart;
117 /*************************************************************************************/
119 void AliAnalysis::SetCutsOnRec()
121 // -- aplies only to Process("TracksAndParticles")
122 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
123 // Only tracks properties are checkes against cuts
128 fkPass = &AliAnalysis::PassTrack;
129 fkPass1 = &AliAnalysis::PassTrack1;
130 fkPass2 = &AliAnalysis::PassTrack2;
131 fkPassPairProp = &AliAnalysis::PassPairPropTrack;
134 /*************************************************************************************/
136 void AliAnalysis::SetCutsOnRecAndSim()
138 // -- aplies only to Process("TracksAndParticles")
139 // (ProcessTracksAndParticles and ProcessTracksAndParticlesNonIdentAnal)
140 // Both, tracks and particles, properties are checked against cuts
145 fkPass = &AliAnalysis::PassPartAndTrack;
146 fkPass1 = &AliAnalysis::PassPartAndTrack1;
147 fkPass2 = &AliAnalysis::PassPartAndTrack2;
148 fkPassPairProp = &AliAnalysis::PassPairPropPartAndTrack;