]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonEventCuts.h
squeleton of EMCAL documentation, partially filled
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonEventCuts.h
CommitLineData
f8b94231 1#ifndef ALIMUONEVENTCUTS_H
2#define ALIMUONEVENTCUTS_H
3
4#include "AliAnalysisCuts.h"
5#include "TArrayD.h"
6
7class AliVEvent;
8class AliVVertex;
9class TList;
10class TAxis;
11class AliTimeStamp;
12class TArrayI;
13
14class 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