493a2d2dc94a439ff6ea52990285f942c9812245
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtBackgroundCuts.h
1 #ifndef ALIDNDPTBACKGROUNDCUTS_H\r
2 #define ALIDNDPTBACKGROUNDCUTS_H\r
3 \r
4 //------------------------------------------------------------------------------\r
5 // Class to keep selection cuts for \r
6 // cosmic and kinks and splitted tracks. \r
7 // \r
8 // Author: J.Otwinowski 25/01/2010\r
9 //------------------------------------------------------------------------------\r
10 \r
11 class TParticle;\r
12 class AliESDtrack;\r
13 class AliExternalTrackParam;\r
14 \r
15 #include "AliAnalysisCuts.h"\r
16 \r
17 class AlidNdPtBackgroundCuts : public AliAnalysisCuts\r
18 {\r
19 public:\r
20   AlidNdPtBackgroundCuts(const Char_t* name ="AlidNdPtBackgroundCuts", const Char_t *title ="");\r
21   virtual ~AlidNdPtBackgroundCuts(); \r
22  \r
23   // setters \r
24   void SetEtaWindow(const Float_t min=-10., const Float_t max=10.)  { fMinEta=min; fMaxEta=max; }\r
25   void SetPhiWindow(const Float_t min=0., const Float_t max=1e99)  { fMinPhi=min; fMaxPhi=max;}\r
26   void SetPtWindow(const Float_t min=0., const Float_t max=1e99)   { fMinPt=min;  fMaxPt=max;}\r
27   void SetMaxFracSharedClust(const Float_t max=1.)   {fMaxFracSharedClust=max;}\r
28 \r
29   // getters \r
30   Float_t GetMinEta() const {return fMinEta;}\r
31   Float_t GetMaxEta() const {return fMaxEta;}\r
32   Float_t GetMinPhi() const {return fMinPhi;}\r
33   Float_t GetMaxPhi() const {return fMaxPhi;}\r
34   Float_t GetMinPt() const  {return fMinPt;}\r
35   Float_t GetMaxPt() const  {return fMaxPt;}\r
36 \r
37   Float_t GetMaxFracSharedClust() const {return fMaxFracSharedClust;}\r
38 \r
39   // Get control histo\r
40   THnSparseF *GetControlHisto() const {return fControlHisto;} \r
41 \r
42   // cuts init function\r
43   void Init();\r
44 \r
45   // check MC tracks\r
46   virtual Bool_t IsSelected(TObject *) {return kTRUE;}\r
47   virtual Bool_t IsSelected(TList *) {return kTRUE;}\r
48 \r
49   //\r
50   Bool_t IsBackgroundTrack(AliESDtrack *track1, AliESDtrack *track2);\r
51   Bool_t IsCosmicTrack(AliESDtrack *track1, AliESDtrack *track2);\r
52   Bool_t IsSplittedTrack(AliESDtrack *track1, AliESDtrack *track2);\r
53   \r
54   // Merge output objects (needed by PROOF) \r
55   virtual Long64_t Merge(TCollection* list);\r
56 \r
57   // fill control histograms\r
58   void  SetHistogramsOn(Bool_t fill=kTRUE) {fFillControlHisto = fill; }\r
59   Bool_t  IsHistogramsOn() const {return fFillControlHisto; }\r
60 \r
61 private:\r
62   Float_t fMinEta; // min pseudorapidity limit\r
63   Float_t fMaxEta; // max pseudorapidity limit\r
64   Float_t fMinPhi; // min azimuthal angle (rad) limit\r
65   Float_t fMaxPhi; // max azimuthal angle (rad) limit\r
66   Float_t fMinPt;  // min pt limit\r
67   Float_t fMaxPt;  // max pt limit\r
68   Float_t fMaxFracSharedClust; // max fraction of track shared clusters \r
69 \r
70   Bool_t  fFillControlHisto;  // flag to fill control histograms \r
71   THnSparseF *fControlHisto;  //-> etasum:dphi:dpt:pt1:fracSharedClust1:qsum\r
72 \r
73   AlidNdPtBackgroundCuts(const AlidNdPtBackgroundCuts&); // not implemented\r
74   AlidNdPtBackgroundCuts& operator=(const AlidNdPtBackgroundCuts&); // not implemented\r
75 \r
76   ClassDef(AlidNdPtBackgroundCuts, 1)\r
77 };\r
78 \r
79 #endif // \r