]>
Commit | Line | Data |
---|---|---|
f8b94231 | 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 |