]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/AutoTrendQA/DrawTrendingPHOSQA.C
pi0 trend plots added.
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / AutoTrendQA / DrawTrendingPHOSQA.C
1 void DrawTrendingPHOSQA(TString mergedTrendFile = "trending.root")
2 {
3   //Reads merged trending.root file and draws trending plots.
4   
5   TFile * fin = TFile::Open(mergedTrendFile.Data());
6   if(!fin) { printf("File trending.root not exists.\n"); return; }
7   
8   TTree * ttree = (TTree*) fin->Get("trending"); 
9   if (!ttree) { printf("Trending tree not found."); return; }
10
11   Int_t nRuns = ttree->GetEntries();
12
13   Int_t runNumber = 0; Float_t nEvents = 0;
14
15   Float_t avCluEnergySM1=0., avCluMultSM1=0., avNcellPerCluSM1=0.; // Module 1
16   Float_t avCluEnergySM2=0., avCluMultSM2=0., avNcellPerCluSM2=0.; // Module 2
17   Float_t avCluEnergySM3=0., avCluMultSM3=0., avNcellPerCluSM3=0.; // Module 3
18
19   Float_t avPi0NumSM1=0., avPi0MassSM1=0., avPi0SigmaSM1=0.;
20   Float_t avPi0NumErrSM1=0., avPi0MassErrSM1=0., avPi0SigmaErrSM1=0.;
21
22   Float_t avPi0NumSM2=0., avPi0MassSM2=0., avPi0SigmaSM2=0.;
23   Float_t avPi0NumErrSM2=0., avPi0MassErrSM2=0., avPi0SigmaErrSM2=0.;
24
25   Float_t avPi0NumSM3=0., avPi0MassSM3=0., avPi0SigmaSM3=0.;
26   Float_t avPi0NumErrSM3=0., avPi0MassErrSM3=0., avPi0SigmaErrSM3=0.;
27
28   //clusters
29   ttree->SetBranchAddress("run",&runNumber);
30   ttree->SetBranchAddress("nEvents",&nEvents);
31
32   ttree->SetBranchAddress("avCluEnergySM1",&avCluEnergySM1);
33   ttree->SetBranchAddress("avCluMultSM1",&avCluMultSM1);
34   ttree->SetBranchAddress("avNcellPerCluSM1",&avNcellPerCluSM1);
35
36   ttree->SetBranchAddress("avCluEnergySM2",&avCluEnergySM2);
37   ttree->SetBranchAddress("avCluMultSM2",&avCluMultSM2);
38   ttree->SetBranchAddress("avNcellPerCluSM2",&avNcellPerCluSM2);
39
40   ttree->SetBranchAddress("avCluEnergySM3",&avCluEnergySM3);
41   ttree->SetBranchAddress("avCluMultSM3",&avCluMultSM3);
42   ttree->SetBranchAddress("avNcellPerCluSM3",&avNcellPerCluSM3);
43
44   //pi0
45   ttree->SetBranchAddress("avPi0NumSM1",&avPi0NumSM1);
46   ttree->SetBranchAddress("avPi0NumSM2",&avPi0NumSM2);
47   ttree->SetBranchAddress("avPi0NumSM3",&avPi0NumSM3);
48   ttree->SetBranchAddress("avPi0NumErrSM1",&avPi0NumErrSM2);
49   ttree->SetBranchAddress("avPi0NumErrSM2",&avPi0NumErrSM2);
50   ttree->SetBranchAddress("avPi0NumErrSM3",&avPi0NumErrSM3);
51
52   ttree->SetBranchAddress("avPi0MassSM1",&avPi0MassSM1);
53   ttree->SetBranchAddress("avPi0MassSM2",&avPi0MassSM2);
54   ttree->SetBranchAddress("avPi0MassSM3",&avPi0MassSM3);
55   ttree->SetBranchAddress("avPi0MassErrSM1",&avPi0MassErrSM2);
56   ttree->SetBranchAddress("avPi0MassErrSM2",&avPi0MassErrSM2);
57   ttree->SetBranchAddress("avPi0MassErrSM3",&avPi0MassErrSM3);
58
59   ttree->SetBranchAddress("avPi0SigmaSM1",&avPi0SigmaSM1);
60   ttree->SetBranchAddress("avPi0SigmaSM2",&avPi0SigmaSM2);
61   ttree->SetBranchAddress("avPi0SigmaSM3",&avPi0SigmaSM3);
62   ttree->SetBranchAddress("avPi0SigmaErrSM1",&avPi0SigmaErrSM2);
63   ttree->SetBranchAddress("avPi0SigmaErrSM2",&avPi0SigmaErrSM2);
64   ttree->SetBranchAddress("avPi0SigmaErrSM3",&avPi0SigmaErrSM3);
65
66   // booking histograms
67   TH1F* havCluEnergySM1 = new TH1F("havCluEnergySM1","Average cluster energy in Module 4",nRuns,0.,nRuns);
68   TH1F* havCluEnergySM2 = new TH1F("havCluEnergySM2","Average cluster energy in Module 3",nRuns,0.,nRuns);
69   TH1F* havCluEnergySM3 = new TH1F("havCluEnergySM3","Average cluster energy in Module 2",nRuns,0.,nRuns);
70
71   TH1F* havCluMultSM1 = new TH1F("havCluMultSM1","Average number of clusters per event in Module 4",nRuns,0.,nRuns);
72   TH1F* havCluMultSM2 = new TH1F("havCluMultSM2","Average number of clusters per event in Module 3",nRuns,0.,nRuns);
73   TH1F* havCluMultSM3 = new TH1F("havCluMultSM3","Average number of clusters per event in Module 2",nRuns,0.,nRuns);
74
75   TH1F* havNcellPerCluSM1 = new TH1F("havNcellPerCluSM1","Average number of cells in cluster in Module 4",nRuns,0.,nRuns);
76   TH1F* havNcellPerCluSM2 = new TH1F("havNcellPerCluSM2","Average number of cells in cluster in Module 3",nRuns,0.,nRuns);
77   TH1F* havNcellPerCluSM3 = new TH1F("havNcellPerCluSM3","Average number of cells in cluster in Module 2",nRuns,0.,nRuns);
78
79   TH1F* havPi0NumSM1 = new TH1F("havPi0NumSM1","Average number of #pi^{0}s per event in Module 4",nRuns,0.,nRuns);
80   TH1F* havPi0NumSM2 = new TH1F("havPi0NumSM2","Average number of #pi^{0}s per event in Module 3",nRuns,0.,nRuns);
81   TH1F* havPi0NumSM3 = new TH1F("havPi0NumSM3","Average number of #pi^{0}s per event in Module 2",nRuns,0.,nRuns);
82
83   TH1F* havPi0MassSM1 = new TH1F("avPi0MassSM1","#pi^{0} mass position in Module 4",nRuns,0.,nRuns);
84   TH1F* havPi0MassSM2 = new TH1F("avPi0MassSM2","#pi^{0} mass position in Module 3",nRuns,0.,nRuns);
85   TH1F* havPi0MassSM3 = new TH1F("avPi0MassSM3","#pi^{0} mass position in Module 2",nRuns,0.,nRuns);
86
87   TH1F* havPi0SigmaSM1 = new TH1F("avPi0SigmaSM1","#pi^{0} peak width in Module 4",nRuns,0.,nRuns);
88   TH1F* havPi0SigmaSM2 = new TH1F("avPi0SigmaSM2","#pi^{0} peak width in Module 3",nRuns,0.,nRuns);
89   TH1F* havPi0SigmaSM3 = new TH1F("avPi0SigmaSM3","#pi^{0} peak width in Module 2",nRuns,0.,nRuns);
90
91   // List of histograms for saving
92   TList list;
93   list.Add(havCluEnergySM1);
94   list.Add(havCluEnergySM2);
95   list.Add(havCluEnergySM3);
96   list.Add(havCluMultSM1);
97   list.Add(havCluMultSM2);
98   list.Add(havCluMultSM3);
99   list.Add(havNcellPerCluSM1);
100   list.Add(havNcellPerCluSM2);
101   list.Add(havNcellPerCluSM3);
102   list.Add(havPi0NumSM1);
103   list.Add(havPi0NumSM2);
104   list.Add(havPi0NumSM3);
105   list.Add(havPi0MassSM1);
106   list.Add(havPi0MassSM2);
107   list.Add(havPi0MassSM3);
108   list.Add(havPi0SigmaSM1);
109   list.Add(havPi0SigmaSM2);
110   list.Add(havPi0SigmaSM3);
111
112   char runlabel[6];
113   
114   for (Int_t irun=0;irun<nRuns;irun++){
115     ttree->GetEntry(irun);
116     
117     sprintf(runlabel,"%i",runNumber);
118     
119     havCluEnergySM1->SetBinContent(irun+1, avCluEnergySM1);
120     havCluEnergySM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
121     
122     havCluEnergySM2->SetBinContent(irun+1, avCluEnergySM2);
123     havCluEnergySM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
124     
125     havCluEnergySM3->SetBinContent(irun+1, avCluEnergySM3);
126     havCluEnergySM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
127
128     havCluMultSM1->SetBinContent(irun+1, avCluMultSM1);
129     havCluMultSM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
130
131     havCluMultSM2->SetBinContent(irun+1, avCluMultSM2);
132     havCluMultSM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
133
134     havCluMultSM3->SetBinContent(irun+1, avCluMultSM3);
135     havCluMultSM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
136
137     havNcellPerCluSM1->SetBinContent(irun+1, avNcellPerCluSM1);
138     havNcellPerCluSM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
139
140     havNcellPerCluSM2->SetBinContent(irun+1, avNcellPerCluSM2);
141     havNcellPerCluSM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
142
143     havNcellPerCluSM3->SetBinContent(irun+1, avNcellPerCluSM3);
144     havNcellPerCluSM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
145
146     havPi0NumSM1->SetBinContent(irun+1,avPi0NumSM1);
147     havPi0NumSM1->SetBinError(irun+1,avPi0NumErrSM1);
148     havPi0NumSM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
149
150     havPi0NumSM2->SetBinContent(irun+1,avPi0NumSM2);
151     havPi0NumSM2->SetBinError(irun+1,avPi0NumErrSM2);
152     havPi0NumSM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
153
154     havPi0NumSM3->SetBinContent(irun+1,avPi0NumSM3);
155     havPi0NumSM3->SetBinError(irun+1,avPi0NumErrSM3);
156     havPi0NumSM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
157
158     havPi0MassSM1->SetBinContent(irun+1,avPi0MassSM1);
159     havPi0MassSM1->SetBinError(irun+1,avPi0MassErrSM1);
160     havPi0MassSM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
161
162     havPi0MassSM2->SetBinContent(irun+1,avPi0MassSM2);
163     havPi0MassSM2->SetBinError(irun+1,avPi0MassErrSM2);
164     havPi0MassSM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
165
166     havPi0MassSM3->SetBinContent(irun+1,avPi0MassSM3);
167     havPi0MassSM3->SetBinError(irun+1,avPi0MassErrSM3);
168     havPi0MassSM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
169
170     havPi0SigmaSM1->SetBinContent(irun+1,avPi0SigmaSM1);
171     havPi0SigmaSM1->SetBinError(irun+1,avPi0SigmaErrSM1);
172     havPi0SigmaSM1->GetXaxis()->SetBinLabel(irun+1,runlabel);
173
174     havPi0SigmaSM2->SetBinContent(irun+1,avPi0SigmaSM2);
175     havPi0SigmaSM2->SetBinError(irun+1,avPi0SigmaErrSM2);
176     havPi0SigmaSM2->GetXaxis()->SetBinLabel(irun+1,runlabel);
177
178     havPi0SigmaSM3->SetBinContent(irun+1,avPi0SigmaSM3);
179     havPi0SigmaSM3->SetBinError(irun+1,avPi0SigmaErrSM3);
180     havPi0SigmaSM3->GetXaxis()->SetBinLabel(irun+1,runlabel);
181
182   }
183   
184   
185   TFile* fout = new TFile("ProductionQA.hist.root","recreate");
186   list.Write(); // save selected trend histograms to file
187   fout->Close();
188 }