]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuMuEventCutter.h
Fix Coverity 24835
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuEventCutter.h
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 Blanco
11  *
12  */
13
14 #include "TObject.h"
15 #include "TString.h"
16
17 class AliMuonEventCuts;
18 class TList;
19 class AliVEvent;
20 class AliVVertex;
21 class AliInputEventHandler;
22
23 class AliAnalysisMuMuEventCutter : public TObject
24 {
25 public:
26   AliAnalysisMuMuEventCutter(TList* triggerClassesToConsider=0x0, TList* triggerInputsMap=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 IsMCEventNSD(const AliVEvent& event) const;
45   void NameOfIsMCEventNSD(TString& name) const { name="NSD"; }
46
47   Bool_t IsAbsZBelowValue(const AliVEvent& event, const Double_t& z) const;
48   void NameOfIsAbsZBelowValue(TString& name, const Double_t& z) const;
49   
50   Bool_t IsAbsZSPDBelowValue(const AliVEvent& event, const Double_t& z) const;
51   void NameOfIsAbsZSPDBelowValue(TString& name, const Double_t& z) const;
52   
53   Bool_t IsSPDzVertexInRange(AliVEvent& event, const Double_t& zMin, const Double_t& zMax) const;
54   void NameOfIsSPDzVertexInRange(TString& name, const Double_t& zMin, const Double_t& zMax) const;
55   
56   Bool_t IsSPDzQA(const AliVEvent& event/*, const AliVVertex& vertex2Test*/, const Double_t& zResCut, const Double_t& zDifCut) const;
57   void NameOfIsSPDzQA(TString& name, const Double_t& zResCut, const Double_t& zDifCut) const;
58   
59   Bool_t HasSPDVertex(AliVEvent& event) const;
60   void NameOfHasSPDVertex(TString& name) const { name = "HASSPD"; }
61   
62   Bool_t IsMeandNchdEtaInRange(AliVEvent& event, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const;
63   void NameOfIsMeandNchdEtaInRange(TString& name, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const;
64   
65   Bool_t IsTZEROPileUp(const AliVEvent& event) const;
66   void NameOfIsTZEROPileUp(TString& name) const { name="TZEROPILEUP"; }
67   
68   AliMuonEventCuts* MuonEventCuts() const;
69   
70 //  enum EEventCut
71 //  {
72 //    kEventIR2PILEUP     = BIT( 6), /// events with pile-up (using AliAnalysisUtils::IsOutOfBunchPileUp)
73 //    
74 //    kEventGOODVERTEX    = BIT(10), /// events with a good vertex
75 //    kEventZPOS          = BIT(14), /// events with z > 0
76 //    kEventZNEG          = BIT(15), /// events with z < 0
77 //    
78 //    kEventTRKLETA1      = BIT(20), /// event with at least one tracklet in |eta| < fTrackletEtaCutValue[0]
79
80 //    kEvent0TVX          = BIT(31), /// events with 0TVX L0 input
81 //    kEventV0AND         = BIT(32), /// events with both 0V0C and 0V0A L0 inputs
82 //    kEvent0SM2          = BIT(33), /// events with 0SM2 L0 input
83 //    kEvent0MSL          = BIT(34), /// events with 0MSL input
84 //  };
85   
86 private:
87   
88   /// not implemented on purpose
89   AliAnalysisMuMuEventCutter& operator=(const AliAnalysisMuMuEventCutter& rhs);
90   /// not implemented on purpose
91   AliAnalysisMuMuEventCutter(const AliAnalysisMuMuEventCutter& rhs);
92   
93   mutable AliMuonEventCuts* fMuonEventCuts; // common cuts for muon events (from Diego)
94   
95   ClassDef(AliAnalysisMuMuEventCutter,1) // default event cutters for AliAnalysisTaskMuMu
96 };
97
98 #endif