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