coding conventions
[u/mrichter/AliRoot.git] / PWG0 / highMultiplicity / AliHighMultiplicitySelector.h
1 /* $Id$ */
2
3 #ifndef AliHighMultiplicitySelector_H
4 #define AliHighMultiplicitySelector_H
5
6 #include "AliSelectorRL.h"
7
8 class TH1F;
9 class TH2F;
10 class TH1;
11 class TH2;
12 class TNtuple;
13 class TGraph;
14
15 //
16 // Selector that produces plots needed for the high multiplicity analysis with the
17 // pixel detector
18 //
19
20 class AliHighMultiplicitySelector : public AliSelectorRL {
21   public:
22     AliHighMultiplicitySelector();
23     virtual ~AliHighMultiplicitySelector();
24
25     virtual void    Init(TTree *tree);
26     virtual void    SlaveBegin(TTree *tree);
27     virtual Bool_t  Process(Long64_t entry);
28     virtual Bool_t  Notify();
29     virtual void    SlaveTerminate();
30     virtual void    Terminate();
31
32     void WriteHistograms(const char* filename = "highmult.root");
33     void ReadHistograms(const char* filename = "highmult.root");
34     void DrawHistograms();
35     void JPRPlots();
36     void Ntrigger();
37     TGraph* IntFractRate();
38
39  protected:
40     void MakeGraphs(const char* title, TH1* xSection, TH2* fMvsL, Int_t limit);
41     void MakeGraphs2(const char* title, TH1* xSection, TH2* fMvsL);
42
43     TH1* GetXSectionCut(TH1* xSection, TH2* multVsLayer, Int_t cut);
44     TH1* GetTriggerEfficiency(TH2* multVsLayer, Int_t cut);
45
46     TH1F* fChipsLayer1;   // fired chips in layer 1
47     TH1F* fChipsLayer2;   // fired chips in layer 2
48
49     TH2F* fL1vsL2;        // layer1 hits vs. layer2 hits
50     TH2F* fMvsL1;         // mult. vs. hits in layer 1
51     TH2F* fMvsL2;         // mult. vs. hits in layer 2
52
53     TH2F* fChipsFired;    // chips fired, module number vs. chip number
54
55     TNtuple* fPrimaryL1;  // multiplicity vs. number of fired chips vs. number of chips fired by primaries
56     TNtuple* fPrimaryL2;  // multiplicity vs. number of fired chips vs. number of chips fired by primaries
57
58     TH1F*    fClusterZL1; // number of clusters as funtion of z in layer 1
59     TH1F*    fClusterZL2; // number of clusters as funtion of z in layer 2
60
61     TH2F* fClvsL1;        // number of cluster vs. number of fired chips in layer 1
62     TH2F* fClvsL2;        // number of cluster vs. number of fired chips in layer 2
63
64     Bool_t fCentralRegion; // only consider the central region (two central modules)
65
66  private:
67     AliHighMultiplicitySelector(const AliHighMultiplicitySelector&);
68     AliHighMultiplicitySelector& operator=(const AliHighMultiplicitySelector&);
69
70   ClassDef(AliHighMultiplicitySelector, 0);
71 };
72
73 #endif