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