]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliMuonEventCuts.h
1) Adding class AliAnalysisMuonUtility which contains static methods allowing to...
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonEventCuts.h
1 #ifndef ALIMUONEVENTCUTS_H
2 #define ALIMUONEVENTCUTS_H
3
4 #include "AliAnalysisCuts.h"
5 #include "TArrayD.h"
6
7 class AliVEvent;
8 class AliVVertex;
9 class TList;
10 class TAxis;
11 class AliTimeStamp;
12 class TArrayI;
13
14 class AliMuonEventCuts : public AliAnalysisCuts
15 {
16  public:
17   
18   enum {
19     kPhysicsSelected = BIT(0),
20     kSelectedCentrality = BIT(1),
21     kSelectedTrig = BIT(2),
22     kGoodVertex = BIT(3)
23   };
24   
25   AliMuonEventCuts();
26   AliMuonEventCuts(const char* name, const char* title);
27   AliMuonEventCuts(const AliMuonEventCuts& obj);
28   AliMuonEventCuts& operator=(const AliMuonEventCuts& obj);
29   
30   virtual ~AliMuonEventCuts();
31   
32   virtual UInt_t GetSelectionMask ( const TObject* obj );
33   virtual Bool_t IsSelected ( TObject* obj );
34   virtual Bool_t IsSelected ( TList* /*list */ );
35   
36   void SetDefaultFilterMask();
37   void SetDefaultParameters();
38   
39   enum {
40     kVertexMinNContributors,
41     kVertexVzMin,
42     kVertexVzMax,
43     kNParameters
44   };
45   
46   // Handle trigger
47   void SetTrigClassPatterns ( const TString pattern );
48   /// Get default trigger class patterns
49   TString GetDefaultTrigClassPatterns() { return fDefaultTrigClassPatterns; };
50   void SetTrigClassLevels ( const TString pattern = "MSL:Lpt MSH:Hpt MUL:LptLpt MLL:LptLpt" );
51   TArrayI GetTrigClassPtCutLevel ( const TString trigClassName ) const;
52   /// Get trigger classes found in run
53   TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; }
54   TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
55
56   
57   // Handle centrality
58   void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0);
59   /// Get centrality classes
60   TAxis* GetCentralityClasses() const { return fCentralityClasses; }
61   
62   void SetCentralityEstimator ( const TString centralityEstimator = "V0M" );
63   TString GetCentralityEstimator () const;
64   Double_t GetCentrality ( const AliVEvent* event ) const;
65   
66   
67   /// Set Physics selection mask
68   void SetPhysicsSelectionMask ( const UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; }
69   
70   
71   /// Set minimum number of vertex contributors
72   void SetVertexMinNContributors ( const Int_t vertexMinNContributors ) { SetParameter(kVertexMinNContributors, (Double_t)vertexMinNContributors); }
73   /// Get minimum number of vertex contributors
74   Int_t GetVertexMinNContributors () const { return (Int_t)fParameters[kVertexMinNContributors]; }
75   /// Set Vz limits
76   void SetVertexVzLimits ( Double_t vzMin = -999., Double_t vzMax = 999. ) { SetParameter(kVertexVzMin, vzMin); SetParameter(kVertexVzMax, vzMax); }
77   /// Get Vtx vz min
78   Double_t GetVertexVzMin () const { return fParameters[kVertexVzMin]; }
79   /// Get Vtx vz max
80   Double_t GetVertexVzMax () const { return fParameters[kVertexVzMax]; }
81   
82   //Bool_t SetRun(Int_t runNumber);
83   //void SetUseCustomParam( Bool_t useCustomParam = kTRUE, Int_t runNumber = -1 );
84   //void SetIsMC(Bool_t isMC = kTRUE) { fIsMC = isMC; }
85
86   void Print ( Option_t* option = "" ) const;
87
88   //Bool_t StreamParameters ( Int_t runNumber, Int_t maxRun );
89
90  protected:
91   
92   Bool_t SetParameter ( Int_t iparam, Float_t value );
93   void BuildTriggerClasses ( const TString firedTrigClasses );
94   Bool_t UpdateEvent( const AliVEvent* event );
95   void SetDefaultTrigClassPatterns();
96   
97   //Bool_t RunMatchesRange ( Int_t runNumber, const Char_t* objName ) const;
98
99   //Bool_t fIsMC;             ///< Monte Carlo analysis
100   //Bool_t fUseCustomParam;   ///< Use custom parameters (do not search in OADB)
101   
102   UInt_t fPhysicsSelectionMask; ///< Physics selection mask
103   
104   TArrayD fParameters;      ///< List of parameters
105   
106   TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
107   TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
108   TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
109   TObjArray* fSelectedTrigLevel;   ///< Track-trigger pt cut for selected trigger class
110   TList* fAllSelectedTrigClasses;  ///< List of all selected trigger classes found
111   TAxis* fCentralityClasses;   ///< Centrality classes
112   
113   private:
114   AliTimeStamp* fTimeStamp; //!< current event time stamp
115   TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event 
116   
117   ClassDef(AliMuonEventCuts, 1); // Class for muon event filters
118 };
119
120 #endif
121