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