]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/highMultiplicity/AliHighMultiplicitySelector.h
adding offline triggers
[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(Bool_t relative = kTRUE);
37     TGraph* IntFractRate();
38     void Contamination();
39     void Contamination2();
40     void Contamination3();
41     void MBComparison();
42
43  protected:
44     void MakeGraphs(const char* title, TH1* xSection, TH2* fMvsL, Int_t limit);
45     void MakeGraphs2(const char* title, TH1* xSection, TH2* fMvsL);
46
47     TH1* GetXSectionCut(TH1* xSection, TH2* multVsLayer, Int_t cut);
48     TH1* GetTriggerEfficiency(TH2* multVsLayer, Int_t cut);
49
50     TH1F* fChipsLayer1;   // fired chips in layer 1
51     TH1F* fChipsLayer2;   // fired chips in layer 2
52
53     TH2F* fL1vsL2;        // layer1 hits vs. layer2 hits
54     TH2F* fMvsL1;         // mult. vs. hits in layer 1
55     TH2F* fMvsL2;         // mult. vs. hits in layer 2
56
57     TH2F* fChipsFired;    // chips fired, module number vs. chip number
58
59     TNtuple* fPrimaryL1;  // multiplicity vs. number of fired chips vs. number of chips fired by primaries
60     TNtuple* fPrimaryL2;  // multiplicity vs. number of fired chips vs. number of chips fired by primaries
61
62     TH1F*    fClusterZL1; // number of clusters as funtion of z in layer 1
63     TH1F*    fClusterZL2; // number of clusters as funtion of z in layer 2
64
65     TH2F* fClvsL1;        // number of cluster vs. number of fired chips in layer 1
66     TH2F* fClvsL2;        // number of cluster vs. number of fired chips in layer 2
67
68     Bool_t fCentralRegion; // only consider the central region (two central modules)
69
70  private:
71     AliHighMultiplicitySelector(const AliHighMultiplicitySelector&);
72     AliHighMultiplicitySelector& operator=(const AliHighMultiplicitySelector&);
73
74   ClassDef(AliHighMultiplicitySelector, 0);
75 };
76
77 #endif