]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/VZERO/AliAnaVZEROTrigger.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / VZERO / AliAnaVZEROTrigger.h
1 #ifndef AliAnaVZEROTrigger_cxx
2 #define AliAnaVZEROTrigger_cxx
3
4 class TH1F;
5 class TH2F;
6 class AliESDEvent;
7
8 #include "AliAnalysisTaskSE.h"
9
10 class AliAnaVZEROTrigger : public AliAnalysisTaskSE {
11  public:
12   AliAnaVZEROTrigger();
13   AliAnaVZEROTrigger(const char *name);
14   virtual ~AliAnaVZEROTrigger() {}
15   
16   virtual void   UserCreateOutputObjects();
17   virtual void   UserExec(Option_t *option);
18   virtual void   Terminate(Option_t *);
19
20   virtual void Init();
21
22   void Setup(const char *filename);
23   void SetMBTrigName(const char *name = "CPBI") {fMBTrigName = name;}
24   void SetUsePhysSel(Bool_t usePhysSel) {fUsePhysSel = usePhysSel;}
25
26   Float_t GetMinThr() const {return fMinThr;}
27   Float_t GetMaxThr() const {return fMaxThr;}
28   Float_t GetRatio() const {return fRatio;}
29   Int_t GetNThr() const {return fNThr;}
30
31   Float_t GetCentCuts(Int_t i) const {return fCentCuts[i];}
32   Float_t GetSemiCentCuts(Int_t i) const {return fSemiCentCuts[i];}
33   Float_t GetThrA(Int_t j) const;
34   Float_t GetThrC(Int_t j) const;
35
36  private:
37   AliESDEvent *fESD;    //! ESD object
38   TList       *fOutputList; //! Output list
39
40   Float_t fMinThr; // Minimum threshold for the scan
41   Float_t fMaxThr; // Maximum threshold for the scan
42   Float_t fRatio;  // Ratio between C and A side trigger charge
43   Int_t   fNThr;   // Number of thresholds in the scan
44
45   Float_t fCentCuts[2]; // Central cut extracted from the eff fit
46   Float_t fSemiCentCuts[2]; // Semi-central cut extracted from the eff fit
47
48   TString fMBTrigName; // MB trigger name (for evt sel)
49   Bool_t  fUsePhysSel; // Use or not phys sel
50
51   TH1F *fV0Percent; //! V0 centrality percentile
52   TH1F *fV0PercentAll; //! V0 centrality percentile (no evt sel)
53   TH1F *fZvtx; //! Z vertex distribution after phys sel
54   TH2F *fXYvtx; //! XY vertex distribution after phys sel
55   TH1F *fV0Mult1d; //! V0 multiplicity distribution
56   TH2F *fV0Charge2d; //! V0 trigger charges distribution
57   TH2F *fV0Charge2dPercent; //! V0 trigger charges distribution weighted by centrality
58   TH2F *fV0Charge2dAll; //! V0 trigger charges distribution (no evt sel)
59
60   TH1F **fV0PercentBins; //! V0 centrality percentile with sequential thr
61   TH1F **fV0PercentBinsAll; //! V0 centrality percentile with sequential thr (no evt sel)
62
63   TH1F *fV0Cent; //! centrality percentile with central trigger using custom thresholds
64   TH1F *fV0CentAll; //! centrality percentile with central trigger using custom threshold (no evt sel)
65   TH1F *fV0SemiCent; //! centrality percentile with semi-central trigger using custom thresholds
66   TH1F *fV0SemiCentAll; //! centrality percentile with semi-central trigger using custom thresholds (no evt sel)
67
68   TH1F *fV0CentHw; //! centrality percentile with central trigger using hardware thresholds
69   TH1F *fV0CentHwAll; //! centrality percentile with central trigger using hardware threshold (no evt sel)
70   TH1F *fV0SemiCentHw; //! centrality percentile with semi-central trigger using hardware thresholds
71   TH1F *fV0SemiCentHwAll; //! centrality percentile with semi-central trigger using hardware thresholds (no evt sel)
72
73   TH1F *fV0CentTr; //! centrality percentile with central trigger using hardware thresholds
74   TH1F *fV0CentTrAll; //! centrality percentile with central trigger using hardware threshold (no evt sel)
75   TH1F *fV0SemiCentTr; //! centrality percentile with semi-central trigger using hardware thresholds
76   TH1F *fV0SemiCentTrAll; //! centrality percentile with semi-central trigger using hardware thresholds (no evt sel)
77
78   TH1F *fV0Percent63; //! centrality percentile when >=63 cells are fired
79   TH1F *fV0Percent63All; //! centrality percentile when >=63 cells are fired (no evt sel)
80
81   TH2F *fV0MultAll; //! total V0 multiplicity for all events
82   TH2F *fV0Mult63; //! total V0 multiplicity for events with at least 63 bb flags
83
84   TH2F *fV0CentVsMult; //! V0 centrality vs total V0 multiplicity
85   TH2F *fV0CentVsCharge; //! V0 centrality vs total V0 offline charge
86   TH2F *fV0CentVsTrCharge; //! V0 centrality vs total V0 online charge
87   TH2F *fV0TrChargeVsChargeA; //! V0 nline charge (A side) vs V0 offline charge (A side)
88   TH2F *fV0TrChargeVsChargeC; //! V0 nline charge (C side) vs V0 offline charge (C side)
89
90   TH2F *fAdcPmt; //! Charge per channel
91   TH2F *fAdcPmt0; //! Charge per channel
92   TH2F *fAdcPmt1; //! Charge per channel
93   TH2F *fAdcPmt2; //! Charge per channel
94   TH2F *fAdcPmt3; //! Charge per channel
95
96   AliAnaVZEROTrigger(const AliAnaVZEROTrigger&); // not implemented
97   AliAnaVZEROTrigger& operator=(const AliAnaVZEROTrigger&); // not implemented
98   
99   ClassDef(AliAnaVZEROTrigger, 1); // VZERO analysis task for setting up of centrality trigger
100 };
101
102 #endif