]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIANAVZEROQA_H | |
2 | #define ALIANAVZEROQA_H | |
3 | ||
4 | //------------------------------ | |
5 | // Analysis task for quality-assurance | |
6 | // of VZERO ESD | |
7 | // | |
8 | // 05/12/2009 cvetan.cheshkov@cern.ch | |
9 | //------------------------------ | |
10 | ||
11 | class TH1F; | |
12 | class TH2F; | |
13 | ||
14 | #include "AliAnalysisTaskSE.h" | |
15 | ||
16 | class AliAnaVZEROQA : public AliAnalysisTaskSE | |
17 | { | |
18 | public: | |
19 | AliAnaVZEROQA(); | |
20 | AliAnaVZEROQA(const char *name); | |
21 | virtual ~AliAnaVZEROQA() {} | |
22 | ||
23 | virtual void UserCreateOutputObjects(); | |
24 | virtual void UserExec(Option_t *option); | |
25 | virtual void Terminate(Option_t *); | |
26 | ||
27 | TH1F* CreateHisto1D(const char* name, const char* title, Int_t nBins, Double_t xMin, Double_t xMax, | |
28 | const char* xLabel = NULL, const char* yLabel = NULL); | |
29 | TH2F* CreateHisto2D(const char* name, const char* title, Int_t nBinsX, Double_t xMin, Double_t xMax, | |
30 | Int_t nBinsY, Double_t yMin, Double_t yMax, | |
31 | const char* xLabel = NULL, const char* yLabel = NULL); | |
32 | ||
33 | Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const; | |
34 | ||
35 | private: | |
36 | ||
37 | TList* fListOfHistos; // List of output histos | |
38 | ||
39 | TH1F *fhAdcNoTimeA; // ADC spectra (no time measurement) for V0A | |
40 | TH1F *fhAdcWithTimeA; // ADC spectra (with time measurement) for V0A | |
41 | TH1F *fhAdcNoTimeC; // ADC spectra (no time measurement) for V0C | |
42 | TH1F *fhAdcWithTimeC; // ADC spectra (with time measurement) for V0C | |
43 | ||
44 | TH2F *fhAdcPMTNoTime; // ADC spectra per PMT (no time measurement) | |
45 | TH2F *fhAdcPMTWithTime; // ADC spectra per PMT (with time measurement) | |
46 | ||
47 | TH1F *fhTimeA; // Time spectra for V0A | |
48 | TH1F *fhTimeC; // Time spectra for V0C | |
49 | ||
50 | TH1F *fhWidthA; // Signal width for V0A | |
51 | TH1F *fhWidthC; // Signal width for V0C | |
52 | ||
53 | TH2F *fhTimePMT; // Time spectra per PMT | |
54 | TH2F *fhWidthPMT; // Signal width per PMT | |
55 | ||
56 | TH2F *fhAdcWidthA; // ADC vs Signal width for V0A | |
57 | TH2F *fhAdcWidthC; // ADC vs Signal width for V0C | |
58 | ||
59 | TH2F *fhTimeCorr; // Corrected mean time V0C vs V0A | |
60 | ||
61 | TH2F *fhAdcTimeA; // ADC vs Time for V0A | |
62 | TH2F *fhAdcTimeC; // ADC vs Time for V0C | |
63 | ||
64 | TH1F *fV0a; // Number of fired PMTs in V0A | |
65 | TH1F *fV0c; // Number of fired PMTs in V0C | |
66 | TH1F *fV0multA; // Mutiplicity in V0A | |
67 | TH1F *fV0multC; // Mutiplicity in V0C | |
68 | TH1F *fV0ampl; // ADC spectra for both rings | |
69 | ||
70 | TH2F *fhTimePMTCorr; // Corrected time per PMT | |
71 | TH2F *fhEvents; // Event statistics histogram | |
72 | ||
73 | TH2F *fhVtxXYBB; // XY vertex for beam-beam events | |
74 | TH1F *fhVtxZBB; // Z vertex for beam-beam events | |
75 | TH2F *fhVtxXYBGA; // XY vertex for beam-gas (A side) events | |
76 | TH1F *fhVtxZBGA; // Z vertex for beam-gas (A side) events | |
77 | TH2F *fhVtxXYBGC; // XY vertex for beam-gas (C side) events | |
78 | TH1F *fhVtxZBGC; // Z vertex for beam-gas (C side) events | |
79 | ||
80 | AliAnaVZEROQA(const AliAnaVZEROQA&); // not implemented | |
81 | AliAnaVZEROQA& operator=(const AliAnaVZEROQA&); // not implemented | |
82 | ||
83 | ClassDef(AliAnaVZEROQA, 1) // VZERO QA task | |
84 | }; | |
85 | ||
86 | #endif |