]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ANALYSIS/AliAnalysis.h
Updated geometry including for the first time ACORDE
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysis.h
... / ...
CommitLineData
1#ifndef ALIANALYSIS_H
2#define ALIANALYSIS_H
3//________________________________
4///////////////////////////////////////////////////////////
5//
6// class AliAnalysis
7//
8// Base class for analysis
9//
10//
11// Piotr.Skowronski@cern.ch
12//
13///////////////////////////////////////////////////////////
14
15#include <TTask.h>
16#include <AliAODParticleCut.h>
17#include <AliAODPairCut.h>
18
19class AliAOD;
20class AliStack;
21class AliEventCut;
22class AliVAODParticle;
23class AliAODPair;
24
25class AliAnalysis: public TTask
26{
27 public:
28 AliAnalysis();
29 AliAnalysis(const char* name,const char* title);
30 virtual ~AliAnalysis();
31
32 virtual Int_t Init() = 0;
33 virtual Int_t ProcessEvent(AliAOD* aodrec, AliAOD* aodsim = 0x0) = 0;
34 virtual Int_t Finish() = 0;
35
36 void SetCutsOnRec();
37 void SetCutsOnSim();
38 void SetCutsOnRecAndSim();
39
40 void SetEventCut(AliEventCut* evcut);
41 void SetPairCut(AliAODPairCut* cut);
42
43 protected:
44 Bool_t Rejected(AliAOD* recevent, AliAOD* simevent);
45 AliEventCut* fEventCut;//event cut
46
47 Bool_t fCutOnSim;//flag indicating that event cut is performed on simulated particles
48 Bool_t fCutOnRec;//flag indicating that event cut is performed on reconstructed tracks
49
50 AliAODPairCut* fPairCut;// Pair cut applied for all mixed particles
51
52 /**********************************************/
53 /* C U T S */
54 /**********************************************/
55
56 Bool_t (AliAnalysis::*fkPass)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
57 Bool_t (AliAnalysis::*fkPass1)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on first particle
58 Bool_t (AliAnalysis::*fkPass2)(AliVAODParticle* partpair, AliVAODParticle* trackpair) const;//Pointer to function that performes cut on second particle
59 Bool_t (AliAnalysis::*fkPassPairProp)(AliAODPair* partpair, AliAODPair* trackpair) const;//Pointer to function that performes pair cut
60
61 Bool_t PassPartAndTrack (AliAODPair* partpair, AliAODPair* trackpair) const {return (fPairCut->Rejected((AliAODPair*)partpair))?kTRUE:fPairCut->Rejected((AliAODPair*)trackpair);}
62 Bool_t PassPartAndTrack1(AliVAODParticle* part, AliVAODParticle* track) const;
63 Bool_t PassPartAndTrack2(AliVAODParticle* part, AliVAODParticle* track) const;
64 Bool_t PassPairPropPartAndTrack (AliAODPair* partpair, AliAODPair* trackpair) const {return (fPairCut->PassPairProp((AliAODPair*)partpair))?kTRUE:fPairCut->PassPairProp((AliAODPair*)trackpair);}
65
66 Bool_t PassPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->Rejected((AliAODPair*)partpair);}
67 Bool_t PassPart1(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetFirstPartCut()->Rejected(part);}
68 Bool_t PassPart2(AliVAODParticle* part, AliVAODParticle* /*track*/) const {return fPairCut->GetSecondPartCut()->Rejected(part);}
69 Bool_t PassPairPropPart (AliAODPair* partpair, AliAODPair* /*trackpair*/) const {return fPairCut->PassPairProp((AliAODPair*)partpair);}
70
71 Bool_t PassTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->Rejected((AliAODPair*)trackpair);}
72 Bool_t PassTrack1(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetFirstPartCut()->Rejected(track);}
73 Bool_t PassTrack2(AliVAODParticle* /*part*/, AliVAODParticle* track) const {return fPairCut->GetSecondPartCut()->Rejected(track);}
74 Bool_t PassPairPropTrack (AliAODPair* /*partpair*/, AliAODPair* trackpair) const {return fPairCut->PassPairProp((AliAODPair*)trackpair);}
75
76 AliAnalysis(const AliAnalysis&);
77
78 private:
79 AliAnalysis& operator=(const AliAnalysis&); // Not implemented
80
81 ClassDef(AliAnalysis,1)
82};
83
84
85inline Bool_t AliAnalysis::PassPartAndTrack1(AliVAODParticle* part,AliVAODParticle* track) const
86{
87//Checks first particle from both, particle and track pairs
88 AliAODParticleCut* pc = fPairCut->GetFirstPartCut();
89 return (pc->Rejected(part))?kTRUE:pc->Rejected(track);
90}
91/*************************************************************************************/
92
93inline Bool_t AliAnalysis::PassPartAndTrack2(AliVAODParticle* part,AliVAODParticle* track) const
94{
95//Checks second particle from both, particle and track pairs
96 AliAODParticleCut* pc = fPairCut->GetSecondPartCut();
97 return (pc->Rejected(part))?kTRUE:pc->Rejected(track);
98}
99/*************************************************************************************/
100
101#endif