]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisMuMuEventCutter.h
expand particle map when needed
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuEventCutter.h
CommitLineData
5376e016
CP
1#ifndef ALIANALYSISMUMUEVENTCUTTER_H
2#define ALIANALYSISMUMUEVENTCUTTER_H
3
4/**
5 *
6 * \class AliAnalysisMuMuEventCutter
7 *
8 * \brief Various event cuts used in AliAnalysisTaskMuMu
9 *
10 * \author L. Aphecetche and J. Martin-Bianco
11 *
12 */
13
14#include "TObject.h"
15#include "TString.h"
16
17class AliMuonEventCuts;
18class TList;
19class AliVEvent;
20class AliVVertex;
21class AliInputEventHandler;
22
23class AliAnalysisMuMuEventCutter : public TObject
24{
25public:
26 AliAnalysisMuMuEventCutter(TList* triggerClassesToConsider=0x0);
27 virtual ~AliAnalysisMuMuEventCutter();
28
29 Bool_t SelectTriggerClass(const TString& firedTriggerClasses, TString& acceptedClasses,
30 UInt_t L0, UInt_t L1, UInt_t L2) const;
31
32 Bool_t IsTrue(const AliVEvent& /*event*/) const { return kTRUE; }
33 void NameOfIsTrue(TString& name) const { name="ALL"; }
34
35 Bool_t IsFalse(const AliVEvent& /*event*/) const { return kFALSE; }
36 void NameOfIsFalse(TString& name) const { name="NONE"; }
37
38 Bool_t IsPhysicsSelected(const AliInputEventHandler& eventHandler) const;
39 void NameOfIsPhysicsSelected(TString& name) const { name="PSALL"; }
40
41 Bool_t IsPhysicsSelectedVDM(const AliVEvent& event) const;
42 void NameOfIsPhysicsSelectedVDM(TString& name) const { name="VDM"; }
43
44 Bool_t IsAbsZBelowValue(const AliVEvent& event, const Double_t& z) const;
45 void NameOfIsAbsZBelowValue(TString& name, const Double_t& z) const;
46
47 Bool_t IsAbsZSPDBelowValue(const AliVEvent& event, const Double_t& z) const;
48 void NameOfIsAbsZSPDBelowValue(TString& name, const Double_t& z) const;
49
50 Bool_t IsSPDzVertexInRange(AliVEvent& event, const Double_t& zMin, const Double_t& zMax) const;
51 void NameOfIsSPDzVertexInRange(TString& name, const Double_t& zMin, const Double_t& zMax) const;
52
53 Bool_t IsSPDzQA(const AliVEvent& event/*, const AliVVertex& vertex2Test*/, const Double_t& zResCut, const Double_t& zDifCut) const;
54 void NameOfIsSPDzQA(TString& name, const Double_t& zResCut, const Double_t& zDifCut) const;
55
56 Bool_t HasSPDVertex(AliVEvent& event) const;
57 void NameOfHasSPDVertex(TString& name) const { name = "HASSPD"; }
58
59 Bool_t IsMeandNchdEtaInRange(AliVEvent& event, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const;
60 void NameOfIsMeandNchdEtaInRange(TString& name, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const;
61
62 Bool_t IsTZEROPileUp(const AliVEvent& event) const;
63 void NameOfIsTZEROPileUp(TString& name) const { name="TZEROPILEUP"; }
64
65 AliMuonEventCuts* MuonEventCuts() const;
66
67// enum EEventCut
68// {
69// kEventIR2PILEUP = BIT( 6), /// events with pile-up (using AliAnalysisUtils::IsOutOfBunchPileUp)
70//
71// kEventGOODVERTEX = BIT(10), /// events with a good vertex
72// kEventZPOS = BIT(14), /// events with z > 0
73// kEventZNEG = BIT(15), /// events with z < 0
74//
75// kEventTRKLETA1 = BIT(20), /// event with at least one tracklet in |eta| < fTrackletEtaCutValue[0]
76
77// kEvent0TVX = BIT(31), /// events with 0TVX L0 input
78// kEventV0AND = BIT(32), /// events with both 0V0C and 0V0A L0 inputs
79// kEvent0SM2 = BIT(33), /// events with 0SM2 L0 input
80// kEvent0MSL = BIT(34), /// events with 0MSL input
81// };
82
83private:
84
0804b4cc 85 /// not implemented on purpose
86 AliAnalysisMuMuEventCutter& operator=(const AliAnalysisMuMuEventCutter& rhs);
87 /// not implemented on purpose
88 AliAnalysisMuMuEventCutter(const AliAnalysisMuMuEventCutter& rhs);
89
5376e016
CP
90 mutable AliMuonEventCuts* fMuonEventCuts; // common cuts for muon events (from Diego)
91
92 ClassDef(AliAnalysisMuMuEventCutter,1) // default event cutters for AliAnalysisTaskMuMu
93};
94
95#endif