]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ANALYSIS/AliAODPairCut.h
updates to handle both types of calibration objects (online & offline)
[u/mrichter/AliRoot.git] / ANALYSIS / AliAODPairCut.h
... / ...
CommitLineData
1#ifndef ALIAODPAIRCUT_H
2#define ALIAODPAIRCUT_H
3
4/* $Id$ */
5
6//Piotr Skowronski@cern.ch
7//Class implements cut on the pair of particles
8//
9//more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
10
11#include <TNamed.h>
12#include "AliAODPairBaseCut.h"
13
14class AliAODParticleCut;
15class AliAODPairBaseCut;
16
17/******************************************************************/
18
19class AliAODPairCut: public TNamed
20{
21 public:
22 AliAODPairCut();
23 AliAODPairCut(const AliAODPairCut& in);
24 AliAODPairCut& operator = (const AliAODPairCut& in);
25
26 virtual ~AliAODPairCut();
27 virtual Bool_t Rejected(AliAODPair* pair) const;
28 virtual Bool_t PassPairProp(AliAODPair* pair) const;
29
30 virtual Bool_t IsEmpty() const {return kFALSE;}
31 void SetFirstPartCut(AliAODParticleCut* cut); //sets the cut on the first particle
32 void SetSecondPartCut(AliAODParticleCut* cut); //sets the cut on the second particle
33
34 void SetPartCut(AliAODParticleCut* cut);//sets the the same cut on both particles
35
36 virtual void AddBasePairCut(AliAODPairBaseCut* cut);
37
38 virtual void Print(const Option_t * opt) const {TNamed::Print(opt);}
39 virtual void Print();
40
41 void SetDeltaERange(Double_t min, Double_t max);
42 void SetDeltaPRange(Double_t min, Double_t max);
43
44 void SetQInvRange(Double_t min, Double_t max);
45 void SetKtRange(Double_t min, Double_t max);
46 void SetKStarRange(Double_t min, Double_t max);
47 void SetKStarOutRange(Double_t min, Double_t max);
48 void SetKStarSideRange(Double_t min, Double_t max);
49 void SetKStarLongRange(Double_t min, Double_t max);
50 void SetQOutLCMSRange(Double_t min, Double_t max);
51 void SetQSideLCMSRange(Double_t min, Double_t max);
52 void SetQLongLCMSRange(Double_t min, Double_t max);
53 void SetAvSeparationRange(Double_t min,Double_t max = 10e5);//Anti-Merging Cut
54 void SetITSSeparation(Int_t layer, Double_t drphi=0.01,Double_t dz = 0.08);//Anti-Merging Cut for first pixel layer
55 void SetClusterOverlapRange(Double_t min,Double_t max);//Anti-Splitting Max range -0.5 1.0
56
57 AliAODParticleCut* GetFirstPartCut() const {return fFirstPartCut;}
58 AliAODParticleCut* GetSecondPartCut() const {return fSecondPartCut;}
59
60 protected:
61 AliAODParticleCut* fFirstPartCut;//cut on first particle in pair
62 AliAODParticleCut* fSecondPartCut;//cut on second particle in pair
63
64 AliAODPairBaseCut** fCuts; //! array of poiters to base cuts
65 Int_t fNCuts;//Number of cuts in fCuts array
66
67
68 AliAODPairBaseCut* FindCut(AliAODPairBaseCut::EAODPairCutProperty cut);
69 private:
70 static const Int_t fgkMaxCuts; // Max number of cuts
71 ClassDef(AliAODPairCut,2)
72};
73/******************************************************************/
74/******************************************************************/
75/******************************************************************/
76
77class AliAODPairEmptyCut: public AliAODPairCut
78{
79 //Empty - it passes possitively all particles - it means returns always False
80 //Class describing cut on pairs of particles
81 public:
82 AliAODPairEmptyCut(){};
83 AliAODPairEmptyCut(const AliAODPairEmptyCut& in):AliAODPairCut(in){};
84 virtual ~AliAODPairEmptyCut(){};
85
86 Bool_t Rejected(AliAODPair*) const {return kFALSE;} //accpept everything
87 Bool_t IsEmpty() const {return kTRUE;}
88
89 ClassDef(AliAODPairEmptyCut,1)
90};
91
92
93#endif