/[PAMELA software]/flight/src/AcQLOOK.cpp
ViewVC logotype

Contents of /flight/src/AcQLOOK.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Wed May 17 16:09:42 2006 UTC (18 years, 6 months ago) by pam-se
Branch: MAIN, v1r2
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
First release of the anticounter flight quicklook

1 #include <physics/anticounter/AnticounterEvent.h>
2 #include <PscuHeader.h>
3 #include <EventHeader.h>
4
5 #include <fstream>
6
7 #include <TCanvas.h>
8 #include <TLatex.h>
9 #include <TLegend.h>
10 #include <TLine.h>
11 #include <TTree.h>
12 #include <TStyle.h>
13 #include <TObjString.h>
14
15 #include <utils/yodaUtility.h>
16
17 #define DEBUG 0
18 #define VERSION 1.2
19 /*
20 * Anticounter physics quicklook
21 * Plots a brief status report of the anticounter detectors
22 * see document "Anticounter Quicklook Software" on www.particle.kth.se/~pearce/flight_ac_docs
23 * for more details
24 *
25 * author Petter Hofverberg
26 * version 1.0
27 *
28 * author Maurizio Nagni
29 * version 1.1
30 * Adapted for compilation and unique file YODA upacking
31 *
32 *
33 * author Petter Hofverberg
34 * version 1.2
35 * added a dummy version of the quicklook (-mode 0, default mode)
36 */
37 using namespace std;
38
39 int AcQLOOK(TString base,int fromevent=0, int toevent=0, TString outDir = "./", TString format = "jpg", int fullversion=0){
40
41 //Int_t tmpSize;
42 ofstream outputFile;
43 stringstream oss;
44
45 pamela::anticounter::AnticounterEvent *ace = 0;
46 pamela::EventHeader *eh = 0;
47 pamela::PscuHeader *ph = 0;
48 TFile *rootFile = new TFile(base);
49
50 if (rootFile->IsZombie())
51 exit(-1);
52 TString fileName = ((TObjString*)base.Tokenize("\/")->Last())->GetString();
53 TString filePath = base;
54 filePath.ReplaceAll(fileName, "");
55 fileName.ReplaceAll(".root", "");
56
57 //Takes the tree of the header file
58 TTree *tr = (TTree*)rootFile->Get("Physics");
59
60 tr->SetBranchAddress("Anticounter", &ace);
61 tr->SetBranchAddress("Header", &eh);
62
63
64 TString *mtitel = new TString[16];
65 mtitel[0]="CARD 4";
66 mtitel[1]="CAT 2";
67 mtitel[2]="CAS 1";
68 mtitel[3]="NC";
69 mtitel[4]="CARD 2";
70 mtitel[5]="CAT 4";
71 mtitel[6]="CAS 4";
72 mtitel[7]="NC";
73 mtitel[8]="CARD 3";
74 mtitel[9]="CAT 3";
75 mtitel[10]="CAS 3";
76 mtitel[11]="NC";
77 mtitel[12]="CARD 1";
78 mtitel[13]="CAT 1";
79 mtitel[14]="CAS 2";
80 mtitel[15]="NC";
81
82 TString *etitel = new TString[16];
83 etitel[0]="CARD 4";
84 etitel[1]="CAT 2";
85 etitel[2]="CAS 1";
86 etitel[3]="NC";
87 etitel[4]="CARD 2";
88 etitel[5]="CAT 4";
89 etitel[6]="CAS 4";
90 etitel[7]="NC";
91 etitel[8]="CARD 3";
92 etitel[9]="CAT 3";
93 etitel[10]="CAS 3";
94 etitel[11]="NC";
95 etitel[12]="CARD 1";
96 etitel[13]="CAT 1";
97 etitel[14]="CAS 2";
98 etitel[15]="NC";
99
100 //Long64_t
101 int nevents = tr->GetEntries();
102
103 //tr->Scan("Pscu.Counter");
104 if(DEBUG)
105 printf("Number of events: %d\n",nevents);
106
107 int antal=nevents;
108
109 /******************Book histograms**********************************************/
110 if(DEBUG)
111 printf("Book histograms\n");
112
113 TH1D *nmbhitpmtCAS = new TH1D("nmbhitpmtCAS","Hit PMTs CAS",8,0.5,8.5);
114 nmbhitpmtCAS->GetXaxis()->SetTitle("Number of hits");
115 //nmbhitpmtCAS->GetYaxis()->SetTitle("")
116 TH1D *nmbhitpmtCAT = new TH1D("nmbhitpmtCAT","Hit PMTs CAT",8,0.5,8.5);
117 TH1D *nmbhitpmtCARD = new TH1D("nmbhitpmtCARD","Hit PMTs CARD",8,0.5,8.5);
118
119 //MAIN
120 TH1D *counter1_m = new TH1D("counter1_m","Counter register CARD 4",75,1.,150.);
121 counter1_m->GetXaxis()->SetTitle("rate [Hz]");
122 counter1_m->GetYaxis()->SetTitle("Events");
123 //counter1_m->SetBit(TH1D::kCanRebin);
124 TH1D *counter2_m = new TH1D("counter2_m","Counter register CAT 2",75,1.,150.);
125 counter2_m->GetXaxis()->SetTitle("rate [Hz]");
126 counter2_m->GetYaxis()->SetTitle("Events");
127 TH1D *counter3_m = new TH1D("counter3_m","Counter register CAS 1",75,1.,150.);
128 TH1D *counter4_m = new TH1D("counter4_m","Counter register NC",75,1.,150.);
129 TH1D *counter5_m = new TH1D("counter5_m","Counter register CARD 2",75,1.,150.);
130 //counter5_m->SetBit(TH1D::kCanRebin);
131 TH1D *counter6_m = new TH1D("counter6_m","Counter register CAT 4",75,1.,150.);
132 TH1D *counter7_m = new TH1D("counter7_m","Counter register CAS 4",75,1.,150.);
133 TH1D *counter8_m = new TH1D("counter8_m","Counter register NC",75,1.,150.);
134 TH1D *counter9_m = new TH1D("counter9_m","Counter register CARD 3",75,1.,150.);
135 TH1D *counter10_m = new TH1D("counter10_m","Counter register CAT 3",75,1.,150.);
136 TH1D *counter11_m = new TH1D("counter11_m","Counter register CAS 3",75,1.,150.);
137 TH1D *counter12_m = new TH1D("counter12_m","Counter register NC",75,1.,150.);
138 TH1D *counter13_m = new TH1D("counter13_m","Counter register CARD 1",75,1.,150.);
139 TH1D *counter14_m = new TH1D("counter14_m","Counter register CAT 1",75,1.,150.);
140 TH1D *counter15_m = new TH1D("counter15_m","Counter register CAS 2",75,1.,150.);
141 TH1D *counter16_m = new TH1D("counter16_m","Counter register NC",75,1.,150.);
142
143 //EXTRA
144 TH1D *counter1_e = new TH1D("counter1_e","Counter register CARD 4",75,1.,150.);
145 TH1D *counter2_e = new TH1D("counter2_e","Counter register CAT 2",75,1.,150.);
146 TH1D *counter3_e = new TH1D("counter3_e","Counter register CAS 1",75,1.,150.);
147 TH1D *counter4_e = new TH1D("counter4_e","Counter register NC",75,1.,150.);
148 TH1D *counter5_e = new TH1D("counter5_e","Counter register CARD 2",75,1.,150.);
149 TH1D *counter6_e = new TH1D("counter6_e","Counter register CAT 4",75,1.,150.);
150 TH1D *counter7_e = new TH1D("counter7_e","Counter register CAS 4",75,1.,150.);
151 TH1D *counter8_e = new TH1D("counter8_e","Counter register NC",75,1.,150.);
152 TH1D *counter9_e = new TH1D("counter9_e","Counter register CARD 3",75,1.,150.);
153 TH1D *counter10_e = new TH1D("counter10_e","Counter register CAT 3",75,1.,150.);
154 TH1D *counter11_e = new TH1D("counter11_e","Counter register CAS 3",75,1.,150.);
155 TH1D *counter12_e = new TH1D("counter12_e","Counter register NC",75,1.,150.);
156 TH1D *counter13_e = new TH1D("counter13_e","Counter register CARD 1",75,1.,150.);
157 TH1D *counter14_e = new TH1D("counter14_e","Counter register CAT 1",75,1.,150.);
158 TH1D *counter15_e = new TH1D("counter15_e","Counter register CAS 2",75,1.,150.);
159 TH1D *counter16_e = new TH1D("counter16_e","Counter register NC",75,1.,150.);
160
161 //MAIN
162 TH1D *shift1_m = new TH1D("shift1_m","Shift register CARD 4",16,0.,16.);
163 shift1_m->GetXaxis()->SetTitle("Bin");
164 shift1_m->GetYaxis()->SetTitle("Content");
165 TH1D *shift2_m = new TH1D("shift2_m","Shift register CAT 2",16,0.,16.);
166 shift2_m->GetXaxis()->SetTitle("Bin");
167 shift2_m->GetYaxis()->SetTitle("Content");
168 TH1D *shift3_m = new TH1D("shift3_m","Shift register CAS 1",16,0.,16.);
169 shift3_m->GetXaxis()->SetTitle("Bin");
170 shift3_m->GetYaxis()->SetTitle("Content");
171 TH1D *shift4_m = new TH1D("shift4_m","Shift register NC",16,0.,16.);
172 shift4_m->GetXaxis()->SetTitle("Bin");
173 shift4_m->GetYaxis()->SetTitle("Content");
174 TH1D *shift5_m = new TH1D("shift5_m","Shift register CARD 2",16,0.,16.);
175 shift5_m->GetXaxis()->SetTitle("Bin");
176 shift5_m->GetYaxis()->SetTitle("Content");
177 TH1D *shift6_m = new TH1D("shift6_m","Shift register CAT 4",16,0.,16.);
178 shift6_m->GetXaxis()->SetTitle("Bin");
179 shift6_m->GetYaxis()->SetTitle("Content");
180 TH1D *shift7_m = new TH1D("shift7_m","Shift register CAS 4",16,0.,16.);
181 shift7_m->GetXaxis()->SetTitle("Bin");
182 shift7_m->GetYaxis()->SetTitle("Content");
183 TH1D *shift8_m = new TH1D("shift8_m","Shift register NC",16,0.,16.);
184 shift8_m->GetXaxis()->SetTitle("Bin");
185 shift8_m->GetYaxis()->SetTitle("Content");
186 TH1D *shift9_m = new TH1D("shift9_m","Shift register CARD 3",16,0.,16.);
187 shift9_m->GetXaxis()->SetTitle("Bin");
188 shift9_m->GetYaxis()->SetTitle("Content");
189 TH1D *shift10_m = new TH1D("shift10_m","Shift register CAT 3",16,0.,16.);
190 shift10_m->GetXaxis()->SetTitle("Bin");
191 shift10_m->GetYaxis()->SetTitle("Content");
192 TH1D *shift11_m = new TH1D("shift11_m","Shift register CAS 3",16,0.,16.);
193 shift11_m->GetXaxis()->SetTitle("Bin");
194 shift11_m->GetYaxis()->SetTitle("Content");
195 TH1D *shift12_m = new TH1D("shift12_m","Shift register NC",16,0.,16.);
196 shift12_m->GetXaxis()->SetTitle("Bin");
197 shift12_m->GetYaxis()->SetTitle("Content");
198 TH1D *shift13_m = new TH1D("shift13_m","Shift register CARD 1",16,0.,16.);
199 shift13_m->GetXaxis()->SetTitle("Bin");
200 shift13_m->GetYaxis()->SetTitle("Content");
201 TH1D *shift14_m = new TH1D("shift14_m","Shift register CAT 1",16,0.,16.);
202 shift14_m->GetXaxis()->SetTitle("Bin");
203 shift14_m->GetYaxis()->SetTitle("Content");
204 TH1D *shift15_m = new TH1D("shift15_m","Shift register CAS 2",16,0.,16.);
205 shift15_m->GetXaxis()->SetTitle("Bin");
206 shift15_m->GetYaxis()->SetTitle("Content");
207 TH1D *shift16_m = new TH1D("shift16_m","Shift register NC",16,0.,16.);
208 shift16_m->GetXaxis()->SetTitle("Bin");
209 shift16_m->GetYaxis()->SetTitle("Content");
210
211 //EXTRA
212 TH1D *shift1_e = new TH1D("shift1_e","Shift register 1",16,0.,16.);
213 shift1_e->GetXaxis()->SetTitle("Bin");
214 shift1_e->GetYaxis()->SetTitle("Content");
215 TH1D *shift2_e = new TH1D("shift2_e","Shift register 2",16,0.,16.);
216 shift2_e->GetXaxis()->SetTitle("Bin");
217 shift2_e->GetYaxis()->SetTitle("Content");
218 TH1D *shift3_e = new TH1D("shift3_e","Shift register 3",16,0.,16.);
219 shift3_e->GetXaxis()->SetTitle("Bin");
220 shift3_e->GetYaxis()->SetTitle("Content");
221 TH1D *shift4_e = new TH1D("shift4_e","Shift register 4",16,0.,16.);
222 shift4_e->GetXaxis()->SetTitle("Bin");
223 shift4_e->GetYaxis()->SetTitle("Content");
224 TH1D *shift5_e = new TH1D("shift5_e","Shift register 5",16,0.,16.);
225 shift5_e->GetXaxis()->SetTitle("Bin");
226 shift5_e->GetYaxis()->SetTitle("Content");
227 TH1D *shift6_e = new TH1D("shift6_e","Shift register 6",16,0.,16.);
228 shift6_e->GetXaxis()->SetTitle("Bin");
229 shift6_e->GetYaxis()->SetTitle("Content");
230 TH1D *shift7_e = new TH1D("shift7_e","Shift register 7",16,0.,16.);
231 shift7_e->GetXaxis()->SetTitle("Bin");
232 shift7_e->GetYaxis()->SetTitle("Content");
233 TH1D *shift8_e = new TH1D("shift8_e","Shift register 8",16,0.,16.);
234 shift8_e->GetXaxis()->SetTitle("Bin");
235 shift8_e->GetYaxis()->SetTitle("Content");
236 TH1D *shift9_e = new TH1D("shift9_e","Shift register 9",16,0.,16.);
237 shift9_e->GetXaxis()->SetTitle("Bin");
238 shift9_e->GetYaxis()->SetTitle("Content");
239 TH1D *shift10_e = new TH1D("shift10_e","Shift register 10",16,0.,16.);
240 shift10_e->GetXaxis()->SetTitle("Bin");
241 shift10_e->GetYaxis()->SetTitle("Content");
242 TH1D *shift11_e = new TH1D("shift11_e","Shift register 11",16,0.,16.);
243 shift11_e->GetXaxis()->SetTitle("Bin");
244 shift11_e->GetYaxis()->SetTitle("Content");
245 TH1D *shift12_e = new TH1D("shift12_e","Shift register 12",16,0.,16.);
246 shift12_e->GetXaxis()->SetTitle("Bin");
247 shift12_e->GetYaxis()->SetTitle("Content");
248 TH1D *shift13_e = new TH1D("shift13_e","Shift register 13",16,0.,16.);
249 shift13_e->GetXaxis()->SetTitle("Bin");
250 shift13_e->GetYaxis()->SetTitle("Content");
251 TH1D *shift14_e = new TH1D("shift14_e","Shift register 14",16,0.,16.);
252 shift14_e->GetXaxis()->SetTitle("Bin");
253 shift14_e->GetYaxis()->SetTitle("Content");
254 TH1D *shift15_e = new TH1D("shift15_e","Shift register 15",16,0.,16.);
255 shift15_e->GetXaxis()->SetTitle("Bin");
256 shift15_e->GetYaxis()->SetTitle("Content");
257 TH1D *shift16_e = new TH1D("shift16_e","Shift register 16",16,0.,16.);
258 shift16_e->GetXaxis()->SetTitle("Bin");
259 shift16_e->GetYaxis()->SetTitle("Content");
260
261
262
263 //MAIN
264 TH1D *head_m = new TH1D("head_m","Status and Headers",10,0.,10.);
265 head_m->GetXaxis()->SetBinLabel(1,"Event CRC M");
266 head_m->GetXaxis()->SetBinLabel(2,"Headers M");
267 head_m->GetXaxis()->SetBinLabel(3,"CRC M");
268 head_m->GetXaxis()->SetBinLabel(4,"Dsp M");
269 head_m->GetXaxis()->SetBinLabel(5,"Reg M");
270 head_m->GetXaxis()->SetBinLabel(6,"Event CRC E");
271 head_m->GetXaxis()->SetBinLabel(7,"Headers E");
272 head_m->GetXaxis()->SetBinLabel(8,"CRC E");
273 head_m->GetXaxis()->SetBinLabel(9,"Dsp E");
274 head_m->GetXaxis()->SetBinLabel(10,"Reg E");
275 head_m->GetYaxis()->SetTitle("Errors");
276 head_m->SetMinimum(0);
277
278 TH1D *hitmap_m = new TH1D("hitmap_m","Hitmap",16,0.,16.);
279 hitmap_m->GetXaxis()->SetBinLabel(1,mtitel[0]);
280 hitmap_m->GetXaxis()->SetBinLabel(2,mtitel[1]);
281 hitmap_m->GetXaxis()->SetBinLabel(3,mtitel[2]);
282 hitmap_m->GetXaxis()->SetBinLabel(4,mtitel[3]);
283 hitmap_m->GetXaxis()->SetBinLabel(5,mtitel[4]);
284 hitmap_m->GetXaxis()->SetBinLabel(6,mtitel[5]);
285 hitmap_m->GetXaxis()->SetBinLabel(7,mtitel[6]);
286 hitmap_m->GetXaxis()->SetBinLabel(8,mtitel[7]);
287 hitmap_m->GetXaxis()->SetBinLabel(9,mtitel[8]);
288 hitmap_m->GetXaxis()->SetBinLabel(10,mtitel[9]);
289 hitmap_m->GetXaxis()->SetBinLabel(11,mtitel[10]);
290 hitmap_m->GetXaxis()->SetBinLabel(12,mtitel[11]);
291 hitmap_m->GetXaxis()->SetBinLabel(13,mtitel[12]);
292 hitmap_m->GetXaxis()->SetBinLabel(14,mtitel[13]);
293 hitmap_m->GetXaxis()->SetBinLabel(15,mtitel[14]);
294 hitmap_m->GetXaxis()->SetBinLabel(16,mtitel[15]);
295 hitmap_m->GetYaxis()->SetTitle("Hits");
296
297 TH1D *pmtstatus_m = new TH1D("pmtstatus_m","Coincidence errors MAIN",16,0.,16.);
298 pmtstatus_m->GetXaxis()->SetBinLabel(1,mtitel[0]);
299 pmtstatus_m->GetXaxis()->SetBinLabel(2,mtitel[1]);
300 pmtstatus_m->GetXaxis()->SetBinLabel(3,mtitel[2]);
301 pmtstatus_m->GetXaxis()->SetBinLabel(4,mtitel[3]);
302 pmtstatus_m->GetXaxis()->SetBinLabel(5,mtitel[4]);
303 pmtstatus_m->GetXaxis()->SetBinLabel(6,mtitel[5]);
304 pmtstatus_m->GetXaxis()->SetBinLabel(7,mtitel[6]);
305 pmtstatus_m->GetXaxis()->SetBinLabel(8,mtitel[7]);
306 pmtstatus_m->GetXaxis()->SetBinLabel(9,mtitel[8]);
307 pmtstatus_m->GetXaxis()->SetBinLabel(10,mtitel[9]);
308 pmtstatus_m->GetXaxis()->SetBinLabel(11,mtitel[10]);
309 pmtstatus_m->GetXaxis()->SetBinLabel(12,mtitel[11]);
310 pmtstatus_m->GetXaxis()->SetBinLabel(13,mtitel[12]);
311 pmtstatus_m->GetXaxis()->SetBinLabel(14,mtitel[13]);
312 pmtstatus_m->GetXaxis()->SetBinLabel(15,mtitel[14]);
313 pmtstatus_m->GetXaxis()->SetBinLabel(16,mtitel[15]);
314 pmtstatus_m->GetYaxis()->SetTitle("Errors");
315
316 //if(fromevent==0 && toevent==0)
317 TH1D *trigg_m = new TH1D("trigg_m","Trigger dev",antal,0.,antal);
318 /*if(toevent>0 && fromevent>0)
319 TH1D *trigg_m = new TH1D("trigg_m","Trigger dev",toevent-fromevent,fromevent,toevent);
320 if(toevent==0 && fromevent>0)
321 TH1D *trigg_m = new TH1D("trigg_m","Trigger dev",1,fromevent,fromevent+1);*/
322 //trigg_m->SetMinimum(0);
323 trigg_m->GetYaxis()->SetTitle("Triggers");
324 trigg_m->GetXaxis()->SetTitle("Event number");
325
326 TH1D *timebtrigg_m = new TH1D("timebtrigg_m","Time between triggers",100,0.,5.);
327 //timebtrigg_m->SetBit(TH1D::kCanRebin);
328 timebtrigg_m->GetYaxis()->SetTitle("Events");
329 timebtrigg_m->GetXaxis()->SetTitle("Time [s]");
330
331 //if(fromevent==0 && toevent==0){
332 TH1D *crc_m = new TH1D("crc_m","crc MAIN",antal,0.,antal);
333 TH1D *headerr_m = new TH1D("headerr_m","headerr_m",antal,0.,antal);
334 TH1D *crcerr_m = new TH1D("crcerr_m","crcerr_m",antal,0.,antal);
335 TH1D *dsperr_m = new TH1D("dsperr_m","dsperr_m",antal,0.,antal);
336 TH1D *regerr_m = new TH1D("regerr_m","regerr_m",antal,0.,antal);
337 //}
338 /*
339 if(toevent>0 && fromevent>0){
340 TH1D *crc_m = new TH1D("crc_m","crc MAIN",toevent-fromevent,fromevent,toevent);
341 TH1D *headerr_m = new TH1D("headerr_m","headerr_m",toevent-fromevent,fromevent,toevent);
342 TH1D *crcerr_m = new TH1D("crcerr_m","crcerr_m",toevent-fromevent,fromevent,toevent);
343 TH1D *dsperr_m = new TH1D("dsperr_m","dsperr_m",toevent-fromevent,fromevent,toevent);
344 TH1D *regerr_m = new TH1D("regerr_m","regerr_m",toevent-fromevent,fromevent,toevent);
345 }
346 if(toevent==0 && fromevent>0){
347 TH1D *crc_m = new TH1D("crc_m","crc MAIN",1,fromevent,fromevent+1);
348 TH1D *headerr_m = new TH1D("headerr_m","headerr_m",1,fromevent,fromevent+1);
349 TH1D *crcerr_m = new TH1D("crcerr_m","crcerr_m",1,fromevent,fromevent+1);
350 TH1D *dsperr_m = new TH1D("dsperr_m","dsperr_m",1,fromevent,fromevent+1);
351 TH1D *regerr_m = new TH1D("regerr_m","regerr_m",1,fromevent,fromevent+1);
352 }*/
353
354 TH1D *dtrigg_m = new TH1D("dtrigg_m","Trigger increment",10,0.,10.);
355 dtrigg_m->GetYaxis()->SetTitle("Events");
356 dtrigg_m->GetXaxis()->SetTitle("Trigger increment");
357
358 TH1D *timebtrigg_e = new TH1D("timebtrigg_e","Time between triggers EXTRA",100,0.,5.);
359 //timebtrigg_e->SetBit(TH1D::kCanRebin);
360 timebtrigg_e->GetYaxis()->SetTitle("Events");
361 timebtrigg_e->GetXaxis()->SetTitle("Time [s]");
362
363
364 // if(fromevent==0 && toevent==0){
365 TH1D *crc_e = new TH1D("crc_e","crc EXTRA",antal,0.,antal);
366 TH1D *headerr_e = new TH1D("headerr_e","headerr_e",antal,0.,antal);
367 TH1D *crcerr_e = new TH1D("crcerr_e","crcerr_e",antal,0.,antal);
368 TH1D *dsperr_e = new TH1D("dsperr_e","dsperr_e",antal,0.,antal);
369 TH1D *regerr_e = new TH1D("regerr_e","regerr_e",antal,0.,antal);
370 //}
371 /*
372 if(toevent>0 && fromevent>0){
373 TH1D *crc_e = new TH1D("crc_e","crc EXTRA",toevent-fromevent,fromevent,toevent);
374 TH1D *headerr_e = new TH1D("headerr_e","headerr_e",toevent-fromevent,fromevent,toevent);
375 TH1D *crcerr_e = new TH1D("crcerr_e","crcerr_e",toevent-fromevent,fromevent,toevent);
376 TH1D *dsperr_e = new TH1D("dsperr_e","dsperr_e",toevent-fromevent,fromevent,toevent);
377 TH1D *regerr_e = new TH1D("regerr_e","regerr_e",toevent-fromevent,fromevent,toevent);
378 }
379 if(toevent==0 && fromevent>0){
380 TH1D *crc_e = new TH1D("crc_e","crc EXTRA",1,fromevent,fromevent+1);
381 TH1D *headerr_e = new TH1D("headerr_e","headerr_e",1,fromevent,fromevent+1);
382 TH1D *crcerr_e = new TH1D("crcerr_e","crcerr_e",1,fromevent,fromevent+1);
383 TH1D *dsperr_e = new TH1D("dsperr_e","dsperr_e",1,fromevent,fromevent+1);
384 TH1D *regerr_e = new TH1D("regerr_e","regerr_e",1,fromevent,fromevent+1);
385 }*/
386 //if(fromevent==0 && toevent==0){
387 TH1D *T_right_m = new TH1D("T_right_m","Temperature MAIN",antal,0.,antal);
388 TH1D *T_actel_m = new TH1D("T_actel_m","Temperature MAIN",antal,0.,antal);
389 TH1D *T_dsp_m = new TH1D("T_dsp_m","Temperature MAIN",antal,0.,antal);
390 TH1D *T_left_m = new TH1D("T_left_m","Temperature MAIN",antal,0.,antal);
391 //}
392 /*
393 if(fromevent>0 && toevent>0){
394 TH1D *T_right_m = new TH1D("T_right_m","Temperature MAIN",toevent-fromevent,fromevent,toevent);
395 TH1D *T_actel_m = new TH1D("T_actel_m","Temperature MAIN",toevent-fromevent,fromevent,toevent);
396 TH1D *T_dsp_m = new TH1D("T_dsp_m","Temperature MAIN",toevent-fromevent,fromevent,toevent);
397 TH1D *T_left_m = new TH1D("T_left_m","Temperature MAIN",toevent-fromevent,fromevent,toevent);
398 }
399 if(fromevent>0 && toevent==0){
400 TH1D *T_right_m = new TH1D("T_right_m","Temperature MAIN",1,fromevent,fromevent+1);
401 TH1D *T_actel_m = new TH1D("T_actel_m","Temperature MAIN",1,fromevent,fromevent+1);
402 TH1D *T_dsp_m = new TH1D("T_dsp_m","Temperature MAIN",1,fromevent,fromevent+1);
403 TH1D *T_left_m = new TH1D("T_left_m","Temperature MAIN",1,fromevent,fromevent+1);
404 }
405 */
406 T_right_m->GetXaxis()->SetTitle("Event number");
407 T_right_m->GetYaxis()->SetTitle("Temp [C]");
408 T_right_m->SetMinimum(10);
409 T_right_m->SetMaximum(50);
410 //T_actel_m->SetMinimum(0);
411 //T_actel_m->SetMaximum(700);
412 //T_dsp_m->SetMinimum(0);
413 //T_dsp_m->SetMaximum(700);
414 //T_left_m->SetMinimum(0);
415 //T_left_m->SetMaximum(700);
416
417 //if(fromevent==0 && toevent==0){
418 TH1D *T_right_e = new TH1D("T_right_e","Temperature EXTRA",antal,0.,antal);
419 TH1D *T_actel_e = new TH1D("T_actel_e","Temperature EXTRA",antal,0.,antal);
420 TH1D *T_dsp_e = new TH1D("T_dsp_e","Temperature EXTRA",antal,0.,antal);
421 TH1D *T_left_e = new TH1D("T_left_e","Temperature EXTRA",antal,0.,antal);
422 //}
423 /*
424 if(fromevent>0 && toevent>0){
425 TH1D *T_right_e = new TH1D("T_right_e","Temperature EXTRA",toevent-fromevent,fromevent,toevent);
426 TH1D *T_actel_e = new TH1D("T_actel_e","Temperature EXTRA",toevent-fromevent,fromevent,toevent);
427 TH1D *T_dsp_e = new TH1D("T_dsp_e","Temperature EXTRA",toevent-fromevent,fromevent,toevent);
428 TH1D *T_left_e = new TH1D("T_left_e","Temperature EXTRA",toevent-fromevent,fromevent,toevent);
429 }
430 if(fromevent>0 && toevent==0){
431 TH1D *T_right_e = new TH1D("T_right_e","Temperature EXTRA",1,fromevent,fromevent+1);
432 TH1D *T_actel_e = new TH1D("T_actel_e","Temperature EXTRA",1,fromevent,fromevent+1);
433 TH1D *T_dsp_e = new TH1D("T_dsp_e","Temperature EXTRA",1,fromevent,fromevent+1);
434 TH1D *T_left_e = new TH1D("T_left_e","Temperature EXTRA",1,fromevent,fromevent+1);
435 }
436 */
437 T_right_e->GetXaxis()->SetTitle("Event number");
438 T_right_e->GetYaxis()->SetTitle("Temp [C]");
439 T_right_e->SetMinimum(10);
440 T_right_e->SetMaximum(50);
441
442 //EXTRA
443 TH1D *head_e = new TH1D("head_e","Status and Headers",10,0.,10.);
444 head_e->GetXaxis()->SetBinLabel(1,"CRC event M");
445 head_e->GetXaxis()->SetBinLabel(2,"Headers M");
446 head_e->GetXaxis()->SetBinLabel(3,"CRC M");
447 head_e->GetXaxis()->SetBinLabel(4,"Dsp M");
448 head_e->GetXaxis()->SetBinLabel(5,"Reg M");
449 head_e->GetXaxis()->SetBinLabel(6,"CRC event E");
450 head_e->GetXaxis()->SetBinLabel(7,"Headers E");
451 head_e->GetXaxis()->SetBinLabel(8,"CRC E");
452 head_e->GetXaxis()->SetBinLabel(9,"Dsp E");
453 head_e->GetXaxis()->SetBinLabel(10,"Reg E");
454 head_e->GetYaxis()->SetTitle("Errors");
455 head_e->SetMinimum(0);
456
457 /* INTE
458 TH1D *head_e = new TH1D("head_e","Status and Headers",9,0.,9.);
459 head_e->GetXaxis()->SetBinLabel(1,"Status");
460 head_e->GetXaxis()->SetBinLabel(2,"Reg 0");
461 head_e->GetXaxis()->SetBinLabel(3,"Reg 1");
462 head_e->GetXaxis()->SetBinLabel(4,"Reg 2");
463 head_e->GetXaxis()->SetBinLabel(5,"Reg 3");
464 head_e->GetXaxis()->SetBinLabel(6,"Reg 4");
465 head_e->GetXaxis()->SetBinLabel(7,"Reg 5");
466 head_e->GetXaxis()->SetBinLabel(8,"Head 1");
467 head_e->GetXaxis()->SetBinLabel(9,"Head 2");
468 head_e->GetYaxis()->SetTitle("Errors");
469 */
470
471 TH1D *hitmap_e = new TH1D("hitmap_e","Hitmap EXTRA",16,0.,16.);
472 hitmap_e->GetXaxis()->SetBinLabel(1,etitel[0]);
473 hitmap_e->GetXaxis()->SetBinLabel(2,etitel[1]);
474 hitmap_e->GetXaxis()->SetBinLabel(3,etitel[2]);
475 hitmap_e->GetXaxis()->SetBinLabel(4,etitel[3]);
476 hitmap_e->GetXaxis()->SetBinLabel(5,etitel[4]);
477 hitmap_e->GetXaxis()->SetBinLabel(6,etitel[5]);
478 hitmap_e->GetXaxis()->SetBinLabel(7,etitel[6]);
479 hitmap_e->GetXaxis()->SetBinLabel(8,etitel[7]);
480 hitmap_e->GetXaxis()->SetBinLabel(9,etitel[8]);
481 hitmap_e->GetXaxis()->SetBinLabel(10,etitel[9]);
482 hitmap_e->GetXaxis()->SetBinLabel(11,etitel[10]);
483 hitmap_e->GetXaxis()->SetBinLabel(12,etitel[11]);
484 hitmap_e->GetXaxis()->SetBinLabel(13,etitel[12]);
485 hitmap_e->GetXaxis()->SetBinLabel(14,etitel[13]);
486 hitmap_e->GetXaxis()->SetBinLabel(15,etitel[14]);
487 hitmap_e->GetXaxis()->SetBinLabel(16,etitel[15]);
488 hitmap_e->GetYaxis()->SetTitle("Hits");
489
490 TH1D *pmtstatus_e = new TH1D("pmtstatus_e","Coincidence errors EXTRA",16,0.,16.);
491 pmtstatus_e->GetXaxis()->SetBinLabel(1,mtitel[0]);
492 pmtstatus_e->GetXaxis()->SetBinLabel(2,mtitel[1]);
493 pmtstatus_e->GetXaxis()->SetBinLabel(3,mtitel[2]);
494 pmtstatus_e->GetXaxis()->SetBinLabel(4,mtitel[3]);
495 pmtstatus_e->GetXaxis()->SetBinLabel(5,mtitel[4]);
496 pmtstatus_e->GetXaxis()->SetBinLabel(6,mtitel[5]);
497 pmtstatus_e->GetXaxis()->SetBinLabel(7,mtitel[6]);
498 pmtstatus_e->GetXaxis()->SetBinLabel(8,mtitel[7]);
499 pmtstatus_e->GetXaxis()->SetBinLabel(9,mtitel[8]);
500 pmtstatus_e->GetXaxis()->SetBinLabel(10,mtitel[9]);
501 pmtstatus_e->GetXaxis()->SetBinLabel(11,mtitel[10]);
502 pmtstatus_e->GetXaxis()->SetBinLabel(12,mtitel[11]);
503 pmtstatus_e->GetXaxis()->SetBinLabel(13,mtitel[12]);
504 pmtstatus_e->GetXaxis()->SetBinLabel(14,mtitel[13]);
505 pmtstatus_e->GetXaxis()->SetBinLabel(15,mtitel[14]);
506 pmtstatus_e->GetXaxis()->SetBinLabel(16,mtitel[15]);
507 pmtstatus_e->GetYaxis()->SetTitle("Errors");
508
509 //if(fromevent==0 && toevent==0)
510 TH1D *trigg_e = new TH1D("trigg_e","Triggers EXTRA",antal,0.,antal);
511 //if(fromevent>0 && toevent>0)
512 //TH1D *trigg_e = new TH1D("trigg_e","Triggers EXTRA",toevent-fromevent,fromevent,toevent);
513 // if(fromevent>0 && toevent==0)
514 //TH1D *trigg_e = new TH1D("trigg_e","Triggers EXTRA",1,fromevent,fromevent+1);
515 trigg_e->GetYaxis()->SetTitle("Triggers");
516 trigg_e->GetXaxis()->SetTitle("Event number");
517 TH1D *dtrigg_e = new TH1D("dtrigg_e","Trigger increment EXTRA",10,0.,10.);
518 dtrigg_e->GetYaxis()->SetTitle("Events");
519 dtrigg_e->GetXaxis()->SetTitle("Trigger increment");
520
521
522
523 /********************************************************************************/
524
525 //Long64_t nevents = tr->GetEntries();
526 //Int_t mintime = tr->GetMinimum("Pscu.OrbitalTime");
527 //Int_t maxtime = tr->GetMaximum("Pscu.OrbitalTime");
528 //Int_t nbintime = (maxtime-mintime)/1000;
529 char *error;
530 error=" this is a very long line of characters as workaround ";
531
532 /*******************Declarations*****************/
533 if(DEBUG)
534 printf("Declarate variables\n");
535 //cout << "Events: " << nevents << endl;
536 //const Int_t size = nevents;
537 //cout << "entries: " << size << endl;
538 //printf("nentries %d\n",size);
539 Double_t cputime;
540 UShort_t cnt = 1;
541 //unsigned int CRCcheck[2];
542 //unsigned int wordbuf[2][63];
543
544 int totevents=0;
545 int crcevents[2];
546 crcevents[0]=0;
547 crcevents[1]=0;
548
549 UShort_t CRCcheck[2];
550 UShort_t Status[2];
551 UShort_t Reg[2][6];
552 UShort_t Header[2][2];
553 UShort_t Hitmap[2];
554 UShort_t Trigger[2];
555 Short_t Trigg_old[2]={-1,-1};
556 UShort_t Temp[2][4];
557
558 UShort_t timeLSB[2];
559 UShort_t timeMSB[2];
560 Double_t time[2];
561 Double_t tid1[2];
562 Double_t tid2[2];
563 Double_t tid3[2];
564
565 Int_t Counter[2][16];
566 Int_t Counter1[2][16];
567 Int_t Counter2[2][16];
568 Int_t Counter3[2][16];
569 Double_t rate[2][16];
570 Double_t rate10[2][16];
571 Int_t rate10cnt[2][16];
572 Int_t cntmltp=10;
573
574 UShort_t Shift[2][16];
575 int tmp;
576 int vec[2][16][16];
577 //UShort_t pack[2][16];
578 int hitsCAS,hitsCAT,hitsCARD;
579
580
581 //UShort_t timeLSB[2];
582 //UShort_t timeMSB[2];
583 //Double_t time[2];
584 //Double_t tid1[2];
585 //Double_t tid2[2];
586 //Double_t tid3[2];
587
588 //Double_t hits_x[size],hits_y_m[size],hits_y_e[size];
589
590 /*************************************************/
591
592
593 //
594 // run over each event and take out some variables
595 //
596 if ( fromevent > toevent && toevent ){
597 printf("It must be fromevent < toevent \n");
598 return -1;
599 };
600
601
602 if ( fromevent > nevents || fromevent < 0 ) {
603 //printf("You can choose fromevent between 0 (all) and %d \n",nevents);
604 return -1;
605 };
606
607 if ( toevent > nevents || toevent < 0 ) {
608 //printf("You can choose toevent between 0 (all) and %d \n",nevents);
609 return -1;
610 };
611 int minevent,maxevent;
612 if ( fromevent == 0 ) {
613 minevent = 0;
614 maxevent = nevents;
615 } else {
616 minevent = fromevent - 1;
617 if ( toevent > 0 ){
618 maxevent = toevent;
619 } else {
620 maxevent = fromevent;
621 };
622 };
623
624 //strange bug, this line have to be here...
625 //CRC=crc(CRC,0x0);
626
627 //int what=0;
628
629 if(DEBUG)
630 printf("Zero variables\n");
631
632 for(Int_t b=0;b<2;b++){
633 for(Int_t a=0;a<16;a++){
634 rate10[b][a]=0;
635 rate10cnt[b][a]=0;
636 }
637 }
638 //Go through all events and update histograms and plots
639 //for (Int_t i = 0; i < nevents; i++){
640 if(fullversion)
641 {
642 if(DEBUG)
643 printf("Start looping over events (FULL VERSION)\n");
644 for (Int_t i = minevent; i < maxevent; i++){
645 //printf("1");
646 //printf("%d%c",100*(i-minevent)/(maxevent-minevent),37);
647 //printf("2");
648 //fflush(stdout);
649 ph = eh->GetPscuHeader();
650 cputime = ph->GetOrbitalTime();
651 if(DEBUG)
652 printf("Processing event %d\n",i);
653 tr->GetEntry(i);
654
655 totevents=totevents+1;
656
657 //CRC check
658 CRCcheck[0]=ace->CRCcheck[0];
659 CRCcheck[1]=ace->CRCcheck[1];
660 if(CRCcheck[0]==0)
661 {
662 head_m->Fill(0.0);
663 crcevents[0]++;
664 }
665 if(CRCcheck[1]==0)
666 {
667 head_e->Fill(5.0);
668 crcevents[1]++;
669 }
670
671 if(DEBUG)
672 printf("Fetch parameters\n");
673 //fetch parameters
674 for(Int_t b = 0; b<2; b++){
675 for(Int_t j = 0; j < 16; j++){
676 Shift[b][j] = ace->shift[b][j];
677 }
678 }
679
680 cnt=1;
681 for(Int_t b = 0; b < 2; b++){ //card
682 for(Int_t k = 0; k < 16; k++){ //shift register
683 for(Int_t l = 0; l < 16; l++){ //bin
684 tmp = ((Shift[b][k] & cnt) > 0 ? 1 : 0);
685 vec[b][k][l]=tmp;
686 cnt=cnt<<1;
687 }
688 cnt=1;
689 }
690 }
691
692
693 //fetch parameters
694 for(int b = 0; b<2; b++){
695 //cout << ace->status << endl;
696 timeLSB[b] = ace->clock[b][0];
697 timeMSB[b] = ace->clock[b][1];
698
699 Status[b] = ace->status[b];
700 for(Int_t j = 0; j < 6; j++)
701 Reg[b][j] = ace->regist[b][j];
702 Header[b][0] = ace->header[b][0];
703 Header[b][1] = ace->header[b][1];
704 Hitmap[b] = ace->hitmap[b];
705
706 Trigger[b] = ace->trigg[b];
707 Temp[b][0] = ((ace->temp[b][0]) & 0x00FF);
708 Temp[b][1] = ((ace->temp[b][0]) & 0xFF00)/256;
709 Temp[b][2] = ((ace->temp[b][1]) & 0x00FF);
710 Temp[b][3] = ((ace->temp[b][1]) & 0xFF00)/256;
711 for(Int_t j = 0; j < 16; j++)
712 Counter[b][j] = ace->counters[b][j];
713
714
715 }
716
717 hitsCAS=hitsCAT=hitsCARD=0;
718 for(int b=0;b<2;b++)
719 {
720 if((Hitmap[b] & 0x0001) > 0) hitsCARD++;
721 if((Hitmap[b] & 0x0002) > 0) hitsCAT++;
722 if((Hitmap[b] & 0x0004) > 0) hitsCAS++;
723 if((Hitmap[b] & 0x0010) > 0) hitsCARD++;
724 if((Hitmap[b] & 0x0020) > 0) hitsCAT++;
725 if((Hitmap[b] & 0x0040) > 0) hitsCAS++;
726 if((Hitmap[b] & 0x0100) > 0) hitsCARD++;
727 if((Hitmap[b] & 0x0200) > 0) hitsCAT++;
728 if((Hitmap[b] & 0x0400) > 0) hitsCAS++;
729 if((Hitmap[b] & 0x1000) > 0) hitsCARD++;
730 if((Hitmap[b] & 0x2000) > 0) hitsCAT++;
731 if((Hitmap[b] & 0x4000) > 0) hitsCAS++;
732 }
733 cnt=1;
734 //check that both PMTs have seen events, and if not, increment histogram with 1.
735 /*
736 if((ace->CRCcheck[0])==1 && (ace->CRCcheck[1])==1){
737
738 //hits_x[i-minevent] = cputime;
739 //hits_y_m[i-minevent] = ace->trigg[0];
740 //hits_y_e[i-minevent] = ace->trigg[1];
741
742 for(int j=0;j<16;j++){
743 if((Hitmap[0] & cnt) > 0){
744 //cout << "E" << endl;
745 if((Hitmap[1] & cnt) == 0){
746 pmtstatus_e->Fill(j,1.);
747 //cout << "E filled" << endl;
748 }
749 }
750 if((Hitmap[1] & cnt) > 0){
751 //cout << "M" << endl;
752 if((Hitmap[0] & cnt) == 0){
753 pmtstatus_m->Fill(j,1.);
754 //cout << "M filled" << endl;
755 }
756 }
757 cnt=cnt<<1;
758 }
759 }
760 */
761 cnt=1;
762
763
764 //tempL=hex>>8;
765 //tempR=hex-(tempL<<8);
766 if(DEBUG)
767 printf("Calc time b events\n");
768 //time between events (tid3[b])
769 for(Int_t b = 0; b<2; b++){
770 time[b]=(timeMSB[b]*(pow(2,16))+timeLSB[b]);
771
772 if(i==minevent)
773 tid1[b]=time[b];
774 else{
775 tid2[b]=tid1[b];
776 tid1[b]=time[b];
777 }
778 if(tid1[b]<tid2[b])
779 tid2[b]=tid2[b]-4294967294;
780
781 tid3[b]=(tid1[b]-tid2[b])/(25*1000000);
782 //printf("%f\n",tid3[b]);
783 }
784
785
786 //number of counts between events Counter3[b][j] -> rate[b][j]
787 for(Int_t b=0;b<2;b++){
788 for(Int_t j = 0; j < 16; j++){
789 if(i==minevent)
790 Counter1[b][j]=Counter[b][j];
791 else{
792 Counter2[b][j]=Counter1[b][j];
793 Counter1[b][j]=Counter[b][j];
794 }
795 Counter3[b][j]=Counter1[b][j]-Counter2[b][j];
796 if(Counter3[b][j]<0)
797 Counter3[b][j]=Counter3[b][j]+65535;
798 if(tid3[b]>0){
799 rate[b][j]=Counter3[b][j]/tid3[b];
800 rate10[b][j]=rate10[b][j]+rate[b][j];
801 rate10cnt[b][j]=rate10cnt[b][j]+1;
802 }
803 }
804 }
805
806
807 //fill histograms MAIN
808 if(DEBUG)
809 printf("Fill histogram MAIN\n");
810
811 if(CRCcheck[0]==CRCcheck[1]==1)
812 {
813 nmbhitpmtCAS->Fill(hitsCAS,1);
814 nmbhitpmtCAT->Fill(hitsCAT,1);
815 nmbhitpmtCARD->Fill(hitsCARD,1);
816 }
817 if(CRCcheck[0]==1)
818 {
819 for(Int_t j = 0; j < 16; j++){
820 shift1_m->Fill(j,vec[0][j][0]);
821 shift2_m->Fill(j,vec[0][j][1]);
822 shift3_m->Fill(j,vec[0][j][2]);
823 shift4_m->Fill(j,vec[0][j][3]);
824 shift5_m->Fill(j,vec[0][j][4]);
825 shift6_m->Fill(j,vec[0][j][5]);
826 shift7_m->Fill(j,vec[0][j][6]);
827 shift8_m->Fill(j,vec[0][j][7]);
828 shift9_m->Fill(j,vec[0][j][8]);
829 shift10_m->Fill(j,vec[0][j][9]);
830 shift11_m->Fill(j,vec[0][j][10]);
831 shift12_m->Fill(j,vec[0][j][11]);
832 shift13_m->Fill(j,vec[0][j][12]);
833 shift14_m->Fill(j,vec[0][j][13]);
834 shift15_m->Fill(j,vec[0][j][14]);
835 shift16_m->Fill(j,vec[0][j][15]);
836 }
837 }
838
839 //fill histograms EXTRA
840 if(DEBUG)
841 printf("Fill histogram EXTRA\n");
842 if(CRCcheck[1]==1)
843 {
844 for(Int_t j = 0; j < 16; j++){
845 shift1_e->Fill(j,vec[1][j][0]);
846 shift2_e->Fill(j,vec[1][j][1]);
847 shift3_e->Fill(j,vec[1][j][2]);
848 shift4_e->Fill(j,vec[1][j][3]);
849 shift5_e->Fill(j,vec[1][j][4]);
850 shift6_e->Fill(j,vec[1][j][5]);
851 shift7_e->Fill(j,vec[1][j][6]);
852 shift8_e->Fill(j,vec[1][j][7]);
853 shift9_e->Fill(j,vec[1][j][8]);
854 shift10_e->Fill(j,vec[1][j][9]);
855 shift11_e->Fill(j,vec[1][j][10]);
856 shift12_e->Fill(j,vec[1][j][11]);
857 shift13_e->Fill(j,vec[1][j][12]);
858 shift14_e->Fill(j,vec[1][j][13]);
859 shift15_e->Fill(j,vec[1][j][14]);
860 shift16_e->Fill(j,vec[1][j][15]);
861 }
862 }
863
864
865
866
867 if(((ace->CRCcheck[0])==1) && (ace->CRC[0]!=0)){
868 if((Header[0][0] != 0xACAC) || (Header[0][1] != 0xAC11)){
869 head_m->Fill(1.,1);
870 headerr_m->Fill(i,Trigger[0]);}
871 if((Status[0] & 0x8000) < 0x8000){
872 head_m->Fill(2.,1);
873 crcerr_m->Fill(i,Trigger[0]);}
874 if((Status[0] & 0x4000) < 0x4000){
875 head_m->Fill(3.,1);
876 dsperr_m->Fill(i,Trigger[0]);}
877 if((Status[0] & 0x01FF) < 0x01FF){
878 head_m->Fill(4.,1);
879 regerr_m->Fill(i,Trigger[0]);}
880 T_right_m->Fill(i,Temp[0][0]*2.8-273.);
881 T_actel_m->Fill(i,Temp[0][1]*2.8-273.);
882 T_dsp_m->Fill(i,Temp[0][2]*2.8-273.);
883 T_left_m->Fill(i,Temp[0][3]*2.8-273.);
884 trigg_m->Fill(i,Trigger[0]);
885 dtrigg_m->Fill(Trigger[0]-Trigg_old[0],Trigg_old[0] == -1 ? 0 : 1);
886 Trigg_old[0]=Trigger[0];
887 timebtrigg_m->Fill(tid3[0],1.);
888
889
890 if(DEBUG)
891 printf("Calculate rates\n");
892 if(i!=minevent){
893 //fill histograms MAIN
894 if(rate10cnt[0][0]==cntmltp){
895 counter1_m->Fill(rate10[0][0]/10.,1);
896 //printf("rate :%d\n",rate10[0][0]);
897 rate10cnt[0][0]=0;
898 rate10[0][0]=0;
899 }
900 if(rate10cnt[0][1]==cntmltp){
901 counter2_m->Fill(rate10[0][1]/10.,1);
902 rate10cnt[0][1]=0;
903 rate10[0][1]=0;
904 }
905 if(rate10cnt[0][2]==cntmltp){
906 counter3_m->Fill(rate10[0][2]/10.,1);
907 rate10cnt[0][2]=0;
908 rate10[0][2]=0;
909 }
910 if(rate10cnt[0][3]==cntmltp){
911 counter4_m->Fill(rate10[0][3]/10.,1);
912 rate10cnt[0][3]=0;
913 rate10[0][3]=0;
914 }
915 if(rate10cnt[0][4]==cntmltp){
916 counter5_m->Fill(rate10[0][4]/10.,1);
917 rate10cnt[0][4]=0;
918 rate10[0][4]=0;
919 }
920 if(rate10cnt[0][5]==cntmltp){
921 counter6_m->Fill(rate10[0][5]/10.,1);
922 rate10cnt[0][5]=0;
923 rate10[0][5]=0;
924 }
925 if(rate10cnt[0][6]==cntmltp){
926 counter7_m->Fill(rate10[0][6]/10.,1);
927 rate10cnt[0][6]=0;
928 rate10[0][6]=0;
929 }
930 if(rate10cnt[0][7]==cntmltp){
931 counter8_m->Fill(rate10[0][7]/10.,1);
932 rate10cnt[0][7]=0;
933 rate10[0][7]=0;
934 }
935 if(rate10cnt[0][8]==cntmltp){
936 counter9_m->Fill(rate10[0][8]/10.,1);
937 rate10cnt[0][8]=0;
938 rate10[0][8]=0;
939 }
940 if(rate10cnt[0][9]==cntmltp){
941 counter10_m->Fill(rate10[0][9]/10.,1);
942 rate10cnt[0][9]=0;
943 rate10[0][9]=0;
944 }
945 if(rate10cnt[0][10]==cntmltp){
946 counter11_m->Fill(rate10[0][10]/10.,1);
947 rate10cnt[0][10]=0;
948 rate10[0][10]=0;
949 }
950 if(rate10cnt[0][11]==cntmltp){
951 counter12_m->Fill(rate10[0][11]/10.,1);
952 rate10cnt[0][11]=0;
953 rate10[0][11]=0;
954 }
955 if(rate10cnt[0][12]==cntmltp){
956 counter13_m->Fill(rate10[0][12]/10.,1);
957 rate10cnt[0][12]=0;
958 rate10[0][12]=0;
959 }
960 if(rate10cnt[0][13]==cntmltp){
961 counter14_m->Fill(rate10[0][13]/10.,1);
962 rate10cnt[0][13]=0;
963 rate10[0][13]=0;
964 }
965 if(rate10cnt[0][14]==cntmltp){
966 counter15_m->Fill(rate10[0][14]/10.,1);
967 rate10cnt[0][14]=0;
968 rate10[0][14]=0;
969 }
970 if(rate10cnt[0][15]==cntmltp){
971 counter16_m->Fill(rate10[0][15]/10,1);
972 rate10cnt[0][15]=0;
973 rate10[0][15]=0;
974 }
975
976 }
977 }
978 //fill histograms EXTRA
979 if(((ace->CRCcheck[1])==1) && (ace->CRC[1]!=0)){
980 if((Header[1][0] != 0xACAC) || (Header[1][1] != 0xAC22)){
981 head_e->Fill(6.,1);
982 headerr_e->Fill(i,Trigger[1]);
983 //headerr_e->Fill(i,testtrigg);
984 //cout << "i: " << i << " Trigger: " << Trigger[1] << endl;
985 }
986 if((Status[1] & 0x8000) < 0x8000){
987 head_e->Fill(7.,1);
988 crcerr_e->Fill(i,Trigger[1]);}
989 if((Status[1] & 0x4000) < 0x4000){
990 head_e->Fill(8.,1);
991 dsperr_e->Fill(i,Trigger[1]);}
992 if((Status[1] & 0x01FF) < 0x01FF){
993 head_e->Fill(9.,1);
994 regerr_e->Fill(i,Trigger[1]);}
995 T_right_e->Fill(i,Temp[1][0]*2.8-273.);
996 T_actel_e->Fill(i,Temp[1][1]*2.8-273.);
997 T_dsp_e->Fill(i,Temp[1][2]*2.8-273.);
998 T_left_e->Fill(i,Temp[1][3]*2.8-273.);
999 trigg_e->Fill(i,Trigger[1]);
1000 dtrigg_e->Fill(Trigger[1]-Trigg_old[1],Trigg_old[1] == -1 ? 0 : 1);
1001 Trigg_old[1]=Trigger[1];
1002 timebtrigg_e->Fill(tid3[1],1.);
1003
1004 if(i!=minevent){
1005 //fill histograms EXTRA
1006 if(rate10cnt[1][0]==cntmltp){
1007 counter1_e->Fill(rate10[1][0]/10.,1);
1008 //printf("rate :%d\n",rate10[1][0]);
1009 rate10cnt[1][0]=0;
1010 rate10[1][0]=0;
1011 }
1012 if(rate10cnt[1][1]==cntmltp){
1013 counter2_e->Fill(rate10[1][1]/10.,1);
1014 rate10cnt[1][1]=0;
1015 rate10[1][1]=0;
1016 }
1017 if(rate10cnt[1][2]==cntmltp){
1018 counter3_e->Fill(rate10[1][2]/10.,1);
1019 rate10cnt[1][2]=0;
1020 rate10[1][2]=0;
1021 }
1022 if(rate10cnt[1][3]==cntmltp){
1023 counter4_e->Fill(rate10[1][3]/10.,1);
1024 rate10cnt[1][3]=0;
1025 rate10[1][3]=0;
1026 }
1027 if(rate10cnt[1][4]==cntmltp){
1028 counter5_e->Fill(rate10[1][4]/10.,1);
1029 rate10cnt[1][4]=0;
1030 rate10[1][4]=0;
1031 }
1032 if(rate10cnt[1][5]==cntmltp){
1033 counter6_e->Fill(rate10[1][5]/10.,1);
1034 rate10cnt[1][5]=0;
1035 rate10[1][5]=0;
1036 }
1037 if(rate10cnt[1][6]==cntmltp){
1038 counter7_e->Fill(rate10[1][6]/10.,1);
1039 rate10cnt[1][6]=0;
1040 rate10[1][6]=0;
1041 }
1042 if(rate10cnt[1][7]==cntmltp){
1043 counter8_e->Fill(rate10[1][7]/10.,1);
1044 rate10cnt[1][7]=0;
1045 rate10[1][7]=0;
1046 }
1047 if(rate10cnt[1][8]==cntmltp){
1048 counter9_e->Fill(rate10[1][8]/10.,1);
1049 rate10cnt[1][8]=0;
1050 rate10[1][8]=0;
1051 }
1052 if(rate10cnt[1][9]==cntmltp){
1053 counter10_e->Fill(rate10[1][9]/10.,1);
1054 rate10cnt[1][9]=0;
1055 rate10[1][9]=0;
1056 }
1057 if(rate10cnt[1][10]==cntmltp){
1058 counter11_e->Fill(rate10[1][10]/10.,1);
1059 rate10cnt[1][10]=0;
1060 rate10[1][10]=0;
1061 }
1062 if(rate10cnt[1][11]==cntmltp){
1063 counter12_e->Fill(rate10[1][11]/10.,1);
1064 rate10cnt[1][11]=0;
1065 rate10[1][11]=0;
1066 }
1067 if(rate10cnt[1][12]==cntmltp){
1068 counter13_e->Fill(rate10[1][12]/10.,1);
1069 rate10cnt[1][12]=0;
1070 rate10[1][12]=0;
1071 }
1072 if(rate10cnt[1][13]==cntmltp){
1073 counter14_e->Fill(rate10[1][13]/10.,1);
1074 rate10cnt[1][13]=0;
1075 rate10[1][13]=0;
1076 }
1077 if(rate10cnt[1][14]==cntmltp){
1078 counter15_e->Fill(rate10[1][14]/10.,1);
1079 rate10cnt[1][14]=0;
1080 rate10[1][14]=0;
1081 }
1082 if(rate10cnt[1][15]==cntmltp){
1083 counter16_e->Fill(rate10[1][15]/10,1);
1084 rate10cnt[1][15]=0;
1085 rate10[1][15]=0;
1086 }
1087 }
1088 }
1089 cnt=1;
1090 for(Int_t j = 0; j < 16; j++){
1091 if((ace->CRCcheck[0])==1)
1092 hitmap_m->Fill(j,(Hitmap[0] & cnt)>0 ? 1 : 0);
1093 if((ace->CRCcheck[1])==1)
1094 hitmap_e->Fill(j,(Hitmap[1] & cnt)>0 ? 1 : 0);
1095 cnt=cnt<<1;
1096 }
1097
1098 cnt=1;
1099 /*
1100 if((100*(i-minevent)/(maxevent-minevent))<10.)
1101 printf("%c%c",8,8);
1102 else
1103 printf("%c%c%c",8,8,8);
1104 */
1105 }
1106 }
1107
1108 if(!fullversion)
1109 {
1110 if(DEBUG)
1111 printf("Start looping over events (DUMMY VERSION)\n");
1112 for (Int_t i = minevent; i < maxevent; i++){
1113 //printf("1");
1114 //printf("%d%c",100*(i-minevent)/(maxevent-minevent),37);
1115 //printf("2");
1116 //fflush(stdout);
1117 ph = eh->GetPscuHeader();
1118 cputime = ph->GetOrbitalTime();
1119 if(DEBUG)
1120 printf("Processing event %d\n",i);
1121 tr->GetEntry(i);
1122
1123 totevents=totevents+1;
1124
1125 //CRC check
1126 CRCcheck[0]=ace->CRCcheck[0];
1127 CRCcheck[1]=ace->CRCcheck[1];
1128 if(CRCcheck[0]==0)
1129 {
1130 head_m->Fill(0.0);
1131 crcevents[0]++;
1132 }
1133 if(CRCcheck[1]==0)
1134 {
1135 head_e->Fill(5.0);
1136 crcevents[1]++;
1137 }
1138
1139 //fetch parameters
1140 for(int b = 0; b<2; b++){
1141 Status[b] = ace->status[b];
1142 for(Int_t j = 0; j < 6; j++)
1143 Reg[b][j] = ace->regist[b][j];
1144 Header[b][0] = ace->header[b][0];
1145 Header[b][1] = ace->header[b][1];
1146 Hitmap[b] = ace->hitmap[b];
1147 }
1148
1149 hitsCAS=hitsCAT=hitsCARD=0;
1150 for(int b=0;b<2;b++)
1151 {
1152 if((Hitmap[b] & 0x0001) > 0) hitsCARD++;
1153 if((Hitmap[b] & 0x0002) > 0) hitsCAT++;
1154 if((Hitmap[b] & 0x0004) > 0) hitsCAS++;
1155 if((Hitmap[b] & 0x0010) > 0) hitsCARD++;
1156 if((Hitmap[b] & 0x0020) > 0) hitsCAT++;
1157 if((Hitmap[b] & 0x0040) > 0) hitsCAS++;
1158 if((Hitmap[b] & 0x0100) > 0) hitsCARD++;
1159 if((Hitmap[b] & 0x0200) > 0) hitsCAT++;
1160 if((Hitmap[b] & 0x0400) > 0) hitsCAS++;
1161 if((Hitmap[b] & 0x1000) > 0) hitsCARD++;
1162 if((Hitmap[b] & 0x2000) > 0) hitsCAT++;
1163 if((Hitmap[b] & 0x4000) > 0) hitsCAS++;
1164 }
1165
1166 if(((ace->CRCcheck[0])==1) && (ace->CRC[0]!=0)){
1167 if((Header[0][0] != 0xACAC) || (Header[0][1] != 0xAC11)){
1168 head_m->Fill(1.,1);
1169 headerr_m->Fill(i,Trigger[0]);}
1170 if((Status[0] & 0x8000) < 0x8000){
1171 head_m->Fill(2.,1);
1172 crcerr_m->Fill(i,Trigger[0]);}
1173 if((Status[0] & 0x4000) < 0x4000){
1174 head_m->Fill(3.,1);
1175 dsperr_m->Fill(i,Trigger[0]);}
1176 if((Status[0] & 0x01FF) < 0x01FF){
1177 head_m->Fill(4.,1);
1178 regerr_m->Fill(i,Trigger[0]);}
1179 }
1180
1181 //fill histograms EXTRA
1182 if(((ace->CRCcheck[1])==1) && (ace->CRC[1]!=0)){
1183 if((Header[1][0] != 0xACAC) || (Header[1][1] != 0xAC22)){
1184 head_e->Fill(6.,1);
1185 headerr_e->Fill(i,Trigger[1]);
1186 //headerr_e->Fill(i,testtrigg);
1187 //cout << "i: " << i << " Trigger: " << Trigger[1] << endl;
1188 }
1189 if((Status[1] & 0x8000) < 0x8000){
1190 head_e->Fill(7.,1);
1191 crcerr_e->Fill(i,Trigger[1]);}
1192 if((Status[1] & 0x4000) < 0x4000){
1193 head_e->Fill(8.,1);
1194 dsperr_e->Fill(i,Trigger[1]);}
1195 if((Status[1] & 0x01FF) < 0x01FF){
1196 head_e->Fill(9.,1);
1197 regerr_e->Fill(i,Trigger[1]);}
1198
1199 cnt=1;
1200 for(Int_t j = 0; j < 16; j++){
1201 if((ace->CRCcheck[0])==1)
1202 hitmap_m->Fill(j,(Hitmap[0] & cnt)>0 ? 1 : 0);
1203 if((ace->CRCcheck[1])==1)
1204 hitmap_e->Fill(j,(Hitmap[1] & cnt)>0 ? 1 : 0);
1205 cnt=cnt<<1;
1206 }
1207
1208 cnt=1;
1209 }
1210 }
1211 }
1212
1213 //printf("%d%c\n",100,37);
1214 //fflush(stdout);
1215 //printf("\n********* QLOOK SHORT INFO **********\n\n");
1216 //printf("Events: %d\nCrc Main %d\nCrc Extra: %d\n",totevents,crcevents[0],crcevents[1]);
1217 //printf("Calibrations: %d\n",nCalibs);
1218 //printf("\n**************************************\n");
1219 //printf("\nOpening canvases...\n");
1220 //cout << "hits: " << what << endl;
1221 //Draw histograms
1222 //gStyle->SetPalette(1);
1223
1224 if(DEBUG)
1225 printf("Start plotting\n");
1226
1227 /***************************************** PLOTTING *****************************************/
1228
1229 //Variables
1230 TCanvas *Canv_report1,*Canv_report2,*Canv_report3,*Canv_report4;
1231 TLatex *t;
1232 TPad *pd1,*pd2,*pd3,*pd4,*pd5,*pd6,*pd7,*pd8,*pd9,*pd10,*pd11,*pd12;
1233 TLine *linje;
1234 TLegend *leg_m,*leg_e,*leg1_m;
1235 Int_t i;
1236 Double_t max1,max2;
1237 char *namn = "KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK";
1238 int mposition = 80;
1239 int eposition = 80;
1240 char *figsave = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
1241 char *mystring = "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD";
1242 //char *tmpchar = "JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ";
1243 TBox *b1,*b2,*b3,*b4,*b5;
1244 gStyle->SetOptDate(0);
1245 TString *merr = new TString[5];
1246 merr[0]="Event CRC";
1247 merr[1]="Headers";
1248 merr[2]="CRC";
1249 merr[3]="Dsp";
1250 merr[4]="Reg";
1251
1252 if(!fullversion)
1253 {
1254 Canv_report1 = new TCanvas("QL Report Sheet 1","QL Report Sheet 1", 1280, 1024); //base
1255 Canv_report1->Range(0,0,100,100);
1256 //Canv_report1->Divide(2,2);
1257 Canv_report1->Draw();
1258 b1 = new TBox(10,84.5,90,85.5);
1259 b2 = new TBox(49.5,95,50.5,5);
1260 b1->SetFillColor(1);
1261 b2->SetFillColor(1);
1262 b1->Draw();
1263 b2->Draw();
1264
1265
1266 t=new TLatex();
1267 t->SetTextFont(40);
1268 t->SetTextColor(1);
1269 t->SetTextAlign(12);
1270 t->SetTextSize(0.04);
1271 namn = "AntiCounter MAIN card";
1272 t->DrawLatex(10,90,namn);
1273 t->SetTextColor(1);
1274 namn = "AntiCounter EXTRA card";
1275 t->DrawLatex(58,90,namn);
1276 t->SetTextSize(0.025);
1277 //Canv_report1->cd(1);
1278 for(i=1;i<17;i++)
1279 {
1280 if(i!=4 && i!=8 && i!=12 && i!=16 && hitmap_m->GetBinContent(i)==0){
1281 mystring = Form("%s channel empty",mtitel[i-1].Data());
1282 t->SetTextColor(2);
1283 t->DrawLatex(15,mposition,mystring);
1284 mposition -= 4;
1285 }
1286 if(i!=4 && i!=8 && i!=12 && i!=16 && hitmap_e->GetBinContent(i)==0){
1287 mystring = Form("%s channel empty",etitel[i-1].Data());
1288 t->SetTextColor(2);
1289 t->DrawLatex(65,eposition,mystring);
1290 eposition -= 4;
1291 }
1292 }
1293 for(i=0;i<5;i++)
1294 {
1295 if(head_m->GetBinContent(i+1)>0){
1296 mposition -= 4;
1297 mystring = Form("%d %s errors",(int)head_m->GetBinContent(i+1),merr[i].Data());
1298 t->SetTextColor(2);
1299 t->DrawLatex(15,mposition,mystring);
1300 }
1301 if(head_e->GetBinContent(i+5+1)>0){
1302 eposition -= 4;
1303 mystring = Form("%d %s errors",(int)head_e->GetBinContent(i+5+1),merr[i].Data());
1304 t->SetTextColor(2);
1305 t->DrawLatex(65,eposition,mystring);
1306 }
1307 }
1308 //if no errors
1309 if(mposition==80)
1310 {
1311 namn = "AC main working";
1312 t->SetTextSize(0.035);
1313 t->SetTextColor(1);
1314 t->DrawLatex(15,50,namn);
1315 }
1316 if(eposition==80)
1317 {
1318 namn = "AC extra working";
1319 t->SetTextSize(0.035);
1320 t->SetTextColor(1);
1321 t->DrawLatex(65,50,namn);
1322 }
1323 if(mposition!=80 || eposition!=80)
1324 {
1325 namn = "AC malfunction";
1326 t->SetTextSize(0.035);
1327 t->SetTextColor(1);
1328 t->DrawLatex(41.5,97.3,namn);
1329 b3 = new TBox(10,96,40,98.5);
1330 b4 = new TBox(10,1.5,90,4);
1331 b5 = new TBox(60,96,90,98.5);
1332 b3->SetFillColor(2);
1333 b4->SetFillColor(2);
1334 b5->SetFillColor(2);
1335 b3->Draw();
1336 b4->Draw();
1337 b5->Draw();
1338 }
1339 //head_m->Draw();
1340 //head_e->Draw("SAME");
1341 //Canv_report1->cd(3);
1342 //hitmap_m->SetStats(kFALSE);
1343 //hitmap_m->Draw();
1344 //Canv_report1->cd(4);
1345 //hitmap_e->SetStats(kFALSE);
1346 //hitmap_e->Draw();
1347
1348 }
1349 if(fullversion)
1350 {
1351 //Anticounter report sheet 1
1352 Canv_report1 = new TCanvas("QL Report Sheet 1","QL Report Sheet 1", 1280, 1024); //base
1353 Canv_report1->Range(0,0,100,100);
1354 //tsf = (TSystemFile*)AcList->First();
1355
1356 //sprintf(error,"File: %s ",tsf->GetName());
1357 //printf("A3\n");
1358 t=new TLatex();
1359 t->SetTextFont(32);
1360 t->SetTextColor(1);
1361 t->SetTextAlign(12);
1362 t->SetTextSize(0.015);
1363 //t->DrawLatex(2.,99.,error);
1364 t->SetTextSize(0.02);
1365 namn = "MAIN";
1366 t->DrawLatex(82,99,namn);
1367 t->SetTextColor(2);
1368 namn="EXTRA";
1369 t->DrawLatex(89,99,namn);
1370 t->SetTextColor(1);
1371 pd1 = new TPad("pd1","This is pad1",0.02,0.02,0.49,0.49,17); //lower left
1372 pd2 = new TPad("pd2","This is pad2",0.51,0.02,0.98,0.49,17); //lower right
1373 //pd3 = new TPad("pd3","This is pad3",0.51,0.51,0.98,0.74,17); //upper-lower right
1374 pd4 = new TPad("pd4","This is pad4",0.02,0.51,0.49,0.98,17); //upper left
1375 //pd5 = new TPad("pd5","This is pad5",0.51,0.25,0.98,0.49,17); //lower-upper right
1376 pd3 = new TPad("pd3","This is pad3",0.51,0.51,0.98,0.98,17); //upper right
1377
1378 Canv_report1->cd();
1379 //pd1->Range(0,0,100,100);
1380 //pd2->Range(0,0,100,100);
1381 //pd3->Range(0,0,100,100);
1382 //pd4->Range(0,0,100,100);
1383 //pd5->Range(0,0,100,100);
1384 //pd6->Range(0,0,100,100);
1385 pd1->Draw();
1386 pd2->Draw();
1387 pd3->Draw();
1388 pd4->Draw();
1389 //pd5->Draw();
1390 //pd6->Draw();
1391
1392 pd3->cd(); //upper right
1393 if(head_m->GetMaximum()>head_e->GetMaximum())
1394 head_m->SetMaximum(1.1*head_m->GetMaximum());
1395 else
1396 head_m->SetMaximum(1.1*head_e->GetMaximum());
1397 head_m->SetLineColor(1);
1398 head_m->SetStats(kFALSE);
1399 head_m->Draw();
1400 head_e->SetLineColor(2);
1401 head_e->Draw("SAME");
1402 linje = new TLine(50,0,0,100);
1403 linje->SetLineColor(1);
1404 linje->Draw("SAME");
1405
1406
1407 //pmtstatus_m->SetLineColor(1);
1408 //pmtstatus_m->Draw();
1409 //hitmap_e->SetLineColor(2);
1410 //hitmap_e->Draw("SAME");
1411
1412 pd4->cd(); //lower right
1413 hitmap_m->SetLineColor(1);
1414 hitmap_m->SetStats(kFALSE);
1415 hitmap_m->Draw();
1416
1417 //pd5->cd(); //lower-upper right
1418 hitmap_e->SetLineColor(2);
1419 hitmap_e->SetStats(kFALSE);
1420 hitmap_e->Draw("SAME");
1421
1422 pd1->cd();
1423 T_right_m->SetLineColor(1);
1424 T_right_m->SetStats(kFALSE);
1425 T_right_m->Draw();
1426 T_actel_m->SetLineColor(2);
1427 T_actel_m->Draw("SAME");
1428 T_dsp_m->SetLineColor(3);
1429 T_dsp_m->Draw("SAME");
1430 T_left_m->SetLineColor(4);
1431 T_left_m->Draw("SAME");
1432
1433 leg_m = new TLegend(0.78,0.63,0.9,0.8);
1434 leg_m->AddEntry(T_right_m,"Right","l");
1435 leg_m->AddEntry(T_actel_m,"Actel","l");
1436 leg_m->AddEntry(T_dsp_m,"Dsp","l");
1437 leg_m->AddEntry(T_left_m,"Left","l");
1438 leg_m->Draw();
1439
1440
1441 //pd2->cd();
1442 //pmtstatus_e->SetLineColor(1);
1443 //pmtstatus_e->Draw();
1444 //TGraph *gr1 = new TGraph(antal,hits_x,hits_y_m);
1445 //gr1->Draw("AC*");
1446
1447 pd2->cd();
1448 T_right_e->SetLineColor(1);
1449 T_right_e->SetStats(kFALSE);
1450 T_right_e->Draw();
1451 T_actel_e->SetLineColor(2);
1452 T_actel_e->Draw("SAME");
1453 T_dsp_e->SetLineColor(3);
1454 T_dsp_e->Draw("SAME");
1455 T_left_e->SetLineColor(4);
1456 T_left_e->Draw("SAME");
1457
1458 leg_e = new TLegend(0.78,0.63,0.9,0.8);
1459 leg_e->AddEntry(T_right_e,"Right","l");
1460 leg_e->AddEntry(T_actel_e,"Actel","l");
1461 leg_e->AddEntry(T_dsp_e,"Dsp","l");
1462 leg_e->AddEntry(T_left_e,"Left","l");
1463 leg_e->Draw();
1464
1465 //pd6->cd(); //upper-upper right
1466 //hitmap_m->SetLineColor(1);
1467 //hitmap_m->Draw();
1468
1469 /*
1470 TA INTE MED
1471 pd4->cd();
1472 T_right_m->SetLineColor(1);
1473 T_right_m->Draw();
1474 T_actel_m->SetLineColor(1);
1475 T_actel_m->Draw("SAME");
1476 //T_dsp_m->SetLineColor(1);
1477 //T_dsp_m->Draw("SAME");
1478 T_left_m->SetLineColor(1);
1479 T_left_m->Draw("SAME");
1480 T_right_e->SetLineColor(2);
1481 T_right_e->Draw("SAME");
1482 T_actel_e->SetLineColor(2);
1483 T_actel_e->Draw("SAME");
1484 //T_dsp_e->SetLineColor(2);
1485 //T_dsp_e->Draw("SAME");
1486 T_left_e->SetLineColor(2);
1487 T_left_e->Draw("SAME");
1488 */
1489 //Canv_report1->Update();
1490
1491 //report sheet 2
1492 //ps->NewPage();
1493 Canv_report2 = new TCanvas("QL Report Sheet 2","QL Report Sheet 2", 1280, 1024);
1494 Canv_report2->Range(0,0,100,100);
1495 //tsf = (TSystemFile*)AcList->First();
1496 //sprintf(error,"File: %s ",tsf->GetName());
1497 //TLatex *t=new TLatex();
1498 t->SetTextFont(32);
1499 t->SetTextColor(1);
1500 t->SetTextAlign(12);
1501 t->SetTextSize(0.015);
1502 //t->DrawLatex(2.,99.,error);
1503 t->SetTextSize(0.02);
1504 namn="MAIN";
1505 t->DrawLatex(82,99,namn);
1506 t->SetTextColor(2);
1507 namn="EXTRA";
1508 t->DrawLatex(89,99,namn);
1509 t->SetTextColor(1);
1510 //TPad *pd1,*pd2,*pd3,*pd4,*pd5,*pd6,*pd7;
1511 pd1 = new TPad("pd1","This is pad1",0.02,0.51,0.49,0.98,17);
1512 pd2 = new TPad("pd2","This is pad2",0.51,0.51,0.98,0.98,17);
1513 pd3 = new TPad("pd3","This is pad3",0.02,0.02,0.49,0.49,17);
1514 pd4 = new TPad("pd4","This is pad4",0.51,0.02,0.74,0.24,17); //down-left
1515 pd5 = new TPad("pd5","This is pad5",0.76,0.02,0.98,0.24,17); //down-right
1516 pd6 = new TPad("pd6","This is pad6",0.51,0.24,0.74,0.49,17); //up-left
1517 pd7 = new TPad("pd7","This is pad7",0.76,0.24,0.98,0.49,17); //up-right
1518 Canv_report2->cd();
1519 //pd1->Range(0,0,100,100);
1520 //pd2->Range(0,0,100,100);
1521 //pd3->Range(0,0,100,100);
1522 //pd4->Range(0,0,100,100);
1523 //pd5->Range(0,0,100,100);
1524 //pd6->Range(0,0,100,100);
1525 //pd7->Range(0,0,100,100);
1526 pd1->Draw();
1527 pd2->Draw();
1528 pd3->Draw();
1529 pd4->Draw();
1530 pd5->Draw();
1531 pd6->Draw();
1532 pd7->Draw();
1533
1534 max1 = trigg_m->GetMaximum();
1535 max2 = trigg_e->GetMaximum();
1536 if(max1>max2)
1537 trigg_m->SetMaximum(1.03*max1);
1538 else
1539 trigg_m->SetMaximum(1.03*max2);
1540
1541 pd1->cd(); //lower left
1542 trigg_m->SetLineColor(1);
1543 trigg_m->SetStats(kFALSE);
1544 trigg_m->Draw();
1545
1546 crc_m->SetMarkerStyle(22);
1547 crc_m->SetMarkerSize(1.);
1548 crc_m->SetMarkerColor(9);
1549 crc_m->Draw("SAMEP");
1550
1551 headerr_m->SetMarkerStyle(5);
1552 headerr_m->SetMarkerSize(1.);
1553 headerr_m->SetMarkerColor(9);
1554 headerr_m->Draw("SAMEP");
1555
1556 crcerr_m->SetMarkerStyle(2);
1557 crcerr_m->SetMarkerSize(1.);
1558 crcerr_m->SetMarkerColor(9);
1559 crcerr_m->Draw("SAMEP");
1560
1561 dsperr_m->SetMarkerStyle(7);
1562 dsperr_m->SetMarkerSize(1.);
1563 dsperr_m->SetMarkerColor(9);
1564 dsperr_m->Draw("SAMEP");
1565
1566 regerr_m->SetMarkerStyle(4);
1567 regerr_m->SetMarkerSize(1.);
1568 regerr_m->SetMarkerColor(9);
1569 regerr_m->Draw("SAMEP");
1570
1571 leg1_m = new TLegend(0.7,0.5,0.87,0.7);
1572 leg1_m->AddEntry(crc_m,"CRC","p");
1573 leg1_m->AddEntry(headerr_m,"Headers","p");
1574 leg1_m->AddEntry(crcerr_m,"Cmd CRC","p");
1575 leg1_m->AddEntry(dsperr_m,"Dsp","p");
1576 leg1_m->AddEntry(regerr_m,"Reg","p");
1577 leg1_m->SetHeader("ERRORS");
1578 leg1_m->Draw();
1579
1580 //Canv_report1->Update();
1581
1582 trigg_e->SetLineColor(2);
1583 //trigg_e->SetMaximum(1.03*trigg_e->GetMaximum());
1584 trigg_e->SetStats(kFALSE);
1585 trigg_e->Draw("SAME");
1586
1587 //TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(),gPad->GetUxmax(),gPad->GetUymax(),0,rightmax,510,"+L");
1588 //axis->SetLineColor(2);
1589 //axis->Draw();
1590
1591 crc_e->SetMarkerStyle(22);
1592 crc_e->SetMarkerSize(1.);
1593 crc_e->SetMarkerColor(9);
1594 crc_e->Draw("SAMEP");
1595
1596 headerr_e->SetMarkerStyle(5);
1597 headerr_e->SetMarkerSize(1.);
1598 headerr_e->SetMarkerColor(9);
1599 headerr_e->Draw("SAMEP");
1600
1601 crcerr_e->SetMarkerStyle(2);
1602 crcerr_e->SetMarkerSize(1.);
1603 crcerr_e->SetMarkerColor(9);
1604 crcerr_e->Draw("SAMEP");
1605
1606 dsperr_e->SetMarkerStyle(7);
1607 dsperr_e->SetMarkerSize(1.);
1608 dsperr_e->SetMarkerColor(9);
1609 dsperr_e->Draw("SAMEP");
1610
1611 regerr_e->SetMarkerStyle(4);
1612 regerr_e->SetMarkerSize(1.);
1613 regerr_e->SetMarkerColor(9);
1614 regerr_e->Draw("SAMEP");
1615 /*
1616 TLegend *leg1_e = new TLegend(0.7,0.5,0.87,0.7);
1617 leg1_e->AddEntry(crc_e,"CRC","p");
1618 leg1_e->AddEntry(headerr_e,"Headers","p");
1619 leg1_e->AddEntry(crcerr_e,"Cmd CRC","p");
1620 leg1_e->AddEntry(dsperr_e,"Dsp","p");
1621 leg1_e->AddEntry(regerr_e,"Reg","p");
1622 leg1_e->SetHeader("Errors EXTRA");
1623 leg1_e->Draw();
1624 */
1625 /*
1626 pd4->cd(); //upper left
1627 int max1 = head_m->GetMaximum();
1628 int max2 = head_e->GetMaximum();
1629 if(max1>max2)
1630 head_m->SetMaximum(1.1*max1);
1631 else
1632 head_m->SetMaximum(1.1*max2);
1633
1634 head_m->SetLineColor(1);
1635 head_m->Draw();
1636 head_e->SetLineColor(2);
1637 head_e->Draw("SAME");
1638 */
1639 /*
1640 pd3->cd(); //upper right
1641 if(head_m->GetMaximum()>head_e->GetMaximum())
1642 head_m->SetMaximum(1.1*head_m->GetMaximum());
1643 else
1644 head_m->SetMaximum(1.1*head_e->GetMaximum());
1645 head_m->SetLineColor(1);
1646 head_m->SetStats(kFALSE);
1647 head_m->Draw();
1648 head_e->SetLineColor(2);
1649 head_e->Draw("SAME");
1650 TLine *linje = new TLine(50,0,0,100);
1651 linje->SetLineColor(1);
1652 linje->Draw("SAME");
1653 */
1654
1655 pd2->cd();
1656 pd2->SetLogy(1);
1657 dtrigg_m->SetLineColor(1);
1658 dtrigg_m->SetStats(kFALSE);
1659 dtrigg_m->Draw();
1660 dtrigg_e->SetLineColor(2);
1661 dtrigg_e->SetStats(kFALSE);
1662 dtrigg_e->Draw("SAME");
1663
1664 pd3->cd();
1665 pd3->SetLogy(1);
1666 timebtrigg_m->SetLineColor(1);
1667 //timebtrigg_m->SetStats(kFALSE);
1668 timebtrigg_m->Draw();
1669 timebtrigg_e->SetLineColor(2);
1670 timebtrigg_e->SetMarkerStyle(2);
1671 timebtrigg_e->SetMarkerSize(1.);
1672 timebtrigg_e->SetMarkerColor(2);
1673 //timebtrigg_e->SetPolyMarker(2)
1674 timebtrigg_e->SetStats(kFALSE);
1675 timebtrigg_e->Draw("PSAME");
1676
1677 pd4->cd();
1678 pd4->SetLogy(1);
1679 nmbhitpmtCAS->SetLineColor(1);
1680 nmbhitpmtCAS->SetStats(kFALSE);
1681 nmbhitpmtCAS->Draw();
1682
1683 pd7->cd();
1684 pd5->SetLogy(1);
1685 nmbhitpmtCAT->SetLineColor(1);
1686 nmbhitpmtCAT->SetStats(kFALSE);
1687 nmbhitpmtCAT->Draw();
1688
1689 pd6->cd();
1690 pd6->SetLogy(1);
1691 nmbhitpmtCARD->SetLineColor(1);
1692 nmbhitpmtCARD->SetStats(kFALSE);
1693 nmbhitpmtCARD->Draw();
1694
1695
1696 /*
1697 TLegend *hitpmt = new TLegend(0.7,0.5,0.87,0.7);
1698 hitpmt->AddEntry(nmbhitpmtCAS,"CAS","L");
1699 hitpmt->AddEntry(nmbhitpmtCAT,"CAT","L");
1700 hitpmt->AddEntry(nmbhitpmtCARD,"CARD","L");
1701 hitpmt->SetHeader("Detector");
1702 hitpmt->Draw();
1703 */
1704 //pd4->SetLogy(1);
1705 //timebtrigg_e->SetLineColor(2);
1706 //timebtrigg_e->SetStats(kFALSE);
1707 //timebtrigg_e->Draw();
1708
1709
1710 //report sheet 3
1711 //report sheet 1
1712 Canv_report3 = new TCanvas("QL Report Sheet 3","QL Report Sheet 3", 1280, 1024);
1713 //TCanvas *Counter_report1 = new TCanvas("COUNTER Report sheet", "COUNTER Report sheet", 1280, 1024);
1714 Canv_report3->Range(0,0,100,100);
1715 //tsf = (TSystemFile*) AcList->First();
1716 //sprintf(error,"File: %s ",tsf->GetName());
1717 //TLatex *t=new TLatex();
1718 t->SetTextFont(32);
1719 t->SetTextColor(1);
1720 t->SetTextAlign(12);
1721 t->SetTextSize(0.015);
1722 //t->DrawLatex(2.,99.,error);
1723 //char *namn;
1724 //TLatex *t2 = new TLatex();
1725 t->SetTextFont(32);
1726 t->SetTextColor(1);
1727 t->SetTextAlign(12);
1728 t->SetTextSize(0.035);
1729
1730 namn="Singles Counters";
1731 t->DrawLatex(40.,95,namn);
1732 namn="CAS";
1733 t->DrawLatex(4.,95.,namn);
1734 namn="CAT";
1735 t->DrawLatex(4.,65.,namn);
1736 namn="CARD";
1737 t->DrawLatex(4.,34.,namn);
1738
1739 t->SetTextFont(32);
1740 t->SetTextColor(1);
1741 t->SetTextAlign(12);
1742 t->SetTextSize(0.02);
1743 namn="MAIN";
1744 t->DrawLatex(85,98,namn);
1745 t->SetTextColor(2);
1746 namn="EXTRA";
1747 t->DrawLatex(85,95,namn);
1748 //TPad *pd1,*pd2,*pd3,*pd4,*pd5,*pd6,*pd7,*pd8,*pd9,*pd10,*pd11,*pd12;
1749 pd1 = new TPad("pd1","This is pad1",0.,0.68,0.25,.92);
1750 pd2 = new TPad("pd2","This is pad2",0.25,0.68,0.5,.92);
1751 pd3 = new TPad("pd3","This is pad3",0.5,0.68,0.75,.92);
1752 pd4 = new TPad("pd4","This is pad4",0.75,0.68,1.0,.92);
1753 pd5 = new TPad("pd5","This is pad5",0.,0.37,0.25,0.62);
1754 pd6 = new TPad("pd6","This is pad6",0.25,0.37,.5,0.62);
1755 pd7 = new TPad("pd7","This is pad7",0.5,0.37,0.75,0.62);
1756 pd8 = new TPad("pd8","This is pad8",0.75,0.37,1.0,0.62);
1757 pd9 = new TPad("pd9","This is pad9",0.0,0.06,0.25,0.31);
1758 pd10 = new TPad("pd10","This is pad10",0.25,0.06,.5,0.31);
1759 pd11 = new TPad("pd11","This is pad11",0.5,0.06,0.75,0.31);
1760 pd12 = new TPad("pd12","This is pad12",0.75,0.06,1.,0.31);
1761 //pd13 = new TPad("pd13","This is pad13",0.,0.0,0.25,0.25);
1762 //pd14 = new TPad("pd14","This is pad14",0.25,0.0,.5,0.25);
1763 //pd15 = new TPad("pd15","This is pad15",0.5,0.0,0.75,0.25);
1764 //pd16 = new TPad("pd16","This is pad16",0.75,0.0,1.0,0.25);
1765 Canv_report3->cd();
1766 //pd1->Range(0,0,100,100);
1767 //pd2->Range(0,0,100,100);
1768 //pd3->Range(0,0,100,100);
1769 //pd4->Range(0,0,100,100);
1770 //pd5->Range(0,0,100,100);
1771 //pd6->Range(0,0,100,100);
1772 //pd7->Range(0,0,100,100);
1773 //pd8->Range(0,0,100,100);
1774 //pd9->Range(0,0,100,100);
1775 //pd10->Range(0,0,100,100);
1776 //pd11->Range(0,0,100,100);
1777 //pd12->Range(0,0,100,100);
1778 //pd13->Range(0,0,100,100);
1779 //pd14->Range(0,0,100,100);
1780 //pd15->Range(0,0,100,100);
1781 //pd16->Range(0,0,100,100);
1782 pd1->Draw();
1783 pd2->Draw();
1784 pd3->Draw();
1785 pd4->Draw();
1786 pd5->Draw();
1787 pd6->Draw();
1788 pd7->Draw();
1789 pd8->Draw();
1790 pd9->Draw();
1791 pd10->Draw();
1792 pd11->Draw();
1793 pd12->Draw();
1794 //pd13->Draw();
1795 //pd14->Draw();
1796 //pd15->Draw();
1797 //pd16->Draw();
1798 pd1->cd();
1799 counter3_m->SetLineColor(1);
1800 counter3_m->Draw();
1801 counter3_e->SetLineColor(2);
1802 counter3_e->Draw("SAME");
1803 pd2->cd();
1804 counter15_m->SetLineColor(1);
1805 counter15_m->Draw();
1806 counter15_e->SetLineColor(2);
1807 counter15_e->Draw("SAME");
1808 pd3->cd();
1809 counter11_m->SetLineColor(1);
1810 counter11_m->Draw();
1811 counter11_e->SetLineColor(2);
1812 counter11_e->Draw("SAME");
1813 pd4->cd();
1814 counter7_m->SetLineColor(1);
1815 counter7_m->Draw();
1816 counter7_e->SetLineColor(2);
1817 counter7_e->Draw("SAME");
1818 pd5->cd();
1819 counter14_m->SetLineColor(1);
1820 counter14_m->Draw();
1821 counter14_e->SetLineColor(2);
1822 counter14_e->Draw("SAME");
1823 pd6->cd();
1824 counter2_m->SetLineColor(1);
1825 counter2_m->Draw();
1826 counter2_e->SetLineColor(2);
1827 counter2_e->Draw("SAME");
1828 pd7->cd();
1829 counter3_m->SetLineColor(1);
1830 counter10_m->Draw();
1831 counter10_e->SetLineColor(2);
1832 counter10_e->Draw("SAME");
1833 pd8->cd();
1834 counter6_m->SetLineColor(1);
1835 counter6_m->Draw();
1836 counter6_e->SetLineColor(2);
1837 counter6_e->Draw("SAME");
1838 pd9->cd();
1839 counter13_m->SetLineColor(1);
1840 counter13_m->Draw();
1841 counter13_e->SetLineColor(2);
1842 counter13_e->Draw("SAME");
1843 pd10->cd();
1844 counter5_m->SetLineColor(1);
1845 counter5_m->Draw();
1846 counter5_e->SetLineColor(2);
1847 counter5_e->Draw("SAME");
1848 pd11->cd();
1849 counter9_m->SetLineColor(1);
1850 counter9_m->Draw();
1851 counter9_e->SetLineColor(2);
1852 counter9_e->Draw("SAME");
1853 pd12->cd();
1854 counter1_m->SetLineColor(1);
1855 counter1_m->Draw();
1856 counter1_e->SetLineColor(2);
1857 counter1_e->Draw("SAME");
1858
1859 //report sheet 4
1860 Canv_report4 = new TCanvas("QL Report sheet 4", "QL Report sheet 4", 1280, 1024);
1861 Canv_report4->Range(0,0,100,100);
1862 //tsf = (TSystemFile*)AcList->First();
1863 //sprintf(error,"File: %s ",tsf->GetName());
1864 //TLatex *t=new TLatex();
1865 t->SetTextFont(32);
1866 t->SetTextColor(1);
1867 t->SetTextAlign(12);
1868 t->SetTextSize(0.015);
1869 //t->DrawLatex(2.,99.,error);
1870 //char *namn;
1871 //TLatex *t2 = new TLatex();
1872 t->SetTextFont(32);
1873 t->SetTextColor(1);
1874 t->SetTextAlign(12);
1875 t->SetTextSize(0.035);
1876
1877 namn="CAS";
1878 t->DrawLatex(4.,94.,namn);
1879 namn="CAT";
1880 t->DrawLatex(4.,65.,namn);
1881 namn="CARD";
1882 t->DrawLatex(4.,34.,namn);
1883 namn="Shift register content";
1884 t->DrawLatex(39.,95,namn);
1885 t->SetTextFont(32);
1886 t->SetTextColor(1);
1887 t->SetTextAlign(12);
1888 t->SetTextSize(0.02);
1889 namn="MAIN";
1890 t->DrawLatex(85,98,namn);
1891 t->SetTextColor(2);
1892 namn="EXTRA";
1893 t->DrawLatex(85,95,namn);
1894
1895 //TPad *pd1,*pd2,*pd3,*pd4,*pd5,*pd6,*pd7,*pd8,*pd9,*pd10,*pd11,*pd12;
1896 pd1 = new TPad("pd1","This is pad1",0.,0.68,0.25,.92);
1897 pd2 = new TPad("pd2","This is pad2",0.25,0.68,0.5,.92);
1898 pd3 = new TPad("pd3","This is pad3",0.5,0.68,0.75,.92);
1899 pd4 = new TPad("pd4","This is pad4",0.75,0.68,1.0,.92);
1900 pd5 = new TPad("pd5","This is pad5",0.,0.37,0.25,0.62);
1901 pd6 = new TPad("pd6","This is pad6",0.25,0.37,.5,0.62);
1902 pd7 = new TPad("pd7","This is pad7",0.5,0.37,0.75,0.62);
1903 pd8 = new TPad("pd8","This is pad8",0.75,0.37,1.0,0.62);
1904 pd9 = new TPad("pd9","This is pad9",0.0,0.06,0.25,0.31);
1905 pd10 = new TPad("pd10","This is pad10",0.25,0.06,.5,0.31);
1906 pd11 = new TPad("pd11","This is pad11",0.5,0.06,0.75,0.31);
1907 pd12 = new TPad("pd12","This is pad12",0.75,0.06,1.,0.31);
1908 //pd13 = new TPad("pd13","This is pad13",0.,0.0,0.25,0.25);
1909 //pd14 = new TPad("pd14","This is pad14",0.25,0.0,.5,0.25);
1910 //pd15 = new TPad("pd15","This is pad15",0.5,0.0,0.75,0.25);
1911 //pd16 = new TPad("pd16","This is pad16",0.75,0.0,1.0,0.25);
1912 Canv_report4->cd();
1913 //pd1->Range(0,0,100,100);
1914 pd1->SetLogy(1);
1915 //pd2->Range(0,0,100,100);
1916 pd2->SetLogy(1);
1917 //pd3->Range(0,0,100,100);
1918 pd3->SetLogy(1);
1919 // pd4->Range(0,0,100,100);
1920 pd4->SetLogy(1);
1921 //pd5->Range(0,0,100,100);
1922 pd5->SetLogy(1);
1923 //pd6->Range(0,0,100,100);
1924 pd6->SetLogy(1);
1925 //pd7->Range(0,0,100,100);
1926 pd7->SetLogy(1);
1927 //pd8->Range(0,0,100,100);
1928 pd8->SetLogy(1);
1929 //pd9->Range(0,0,100,100);
1930 pd9->SetLogy(1);
1931 //pd10->Range(0,0,100,100);
1932 pd10->SetLogy(1);
1933 //pd11->Range(0,0,100,100);
1934 pd11->SetLogy(1);
1935 //pd12->Range(0,0,100,100);
1936 pd12->SetLogy(1);
1937 //pd13->Range(0,0,100,100);
1938 //pd14->Range(0,0,100,100);
1939 //pd15->Range(0,0,100,100);
1940 //pd16->Range(0,0,100,100);
1941 pd1->Draw();
1942 pd2->Draw();
1943 pd3->Draw();
1944 pd4->Draw();
1945 pd5->Draw();
1946 pd6->Draw();
1947 pd7->Draw();
1948 pd8->Draw();
1949 pd9->Draw();
1950 pd10->Draw();
1951 pd11->Draw();
1952 pd12->Draw();
1953 //pd13->Draw();
1954 //pd14->Draw();
1955 //pd15->Draw();
1956 //pd16->Draw();
1957 pd1->cd();
1958 shift3_m->SetLineColor(1);
1959 shift3_m->Draw();
1960 shift3_e->SetLineColor(2);
1961 shift3_e->Draw("SAME");
1962 pd2->cd();
1963 shift15_m->SetLineColor(1);
1964 shift15_m->Draw();
1965 shift15_e->SetLineColor(2);
1966 shift15_e->Draw("SAME");
1967 pd3->cd();
1968 shift11_m->SetLineColor(1);
1969 shift11_m->Draw();
1970 shift11_e->SetLineColor(2);
1971 shift11_e->Draw("SAME");
1972 pd4->cd();
1973 shift7_m->SetLineColor(1);
1974 shift7_m->Draw();
1975 shift7_e->SetLineColor(2);
1976 shift7_e->Draw("SAME");
1977 pd5->cd();
1978 shift14_m->SetLineColor(1);
1979 shift14_m->Draw();
1980 shift14_e->SetLineColor(2);
1981 shift14_e->Draw("SAME");
1982 pd6->cd();
1983 shift2_m->SetLineColor(1);
1984 shift2_m->Draw();
1985 shift2_e->SetLineColor(2);
1986 shift2_e->Draw("SAME");
1987 pd7->cd();
1988 shift3_m->SetLineColor(1);
1989 shift10_m->Draw();
1990 shift10_e->SetLineColor(2);
1991 shift10_e->Draw("SAME");
1992 pd8->cd();
1993 shift6_m->SetLineColor(1);
1994 shift6_m->Draw();
1995 shift6_e->SetLineColor(2);
1996 shift6_e->Draw("SAME");
1997 pd9->cd();
1998 shift13_m->SetLineColor(1);
1999 shift13_m->Draw();
2000 shift13_e->SetLineColor(2);
2001 shift13_e->Draw("SAME");
2002 pd10->cd();
2003 shift5_m->SetLineColor(1);
2004 shift5_m->Draw();
2005 shift5_e->SetLineColor(2);
2006 shift5_e->Draw("SAME");
2007 pd11->cd();
2008 shift9_m->SetLineColor(1);
2009 shift9_m->Draw();
2010 shift9_e->SetLineColor(2);
2011 shift9_e->Draw("SAME");
2012 pd12->cd();
2013 shift1_m->SetLineColor(1);
2014 shift1_m->Draw();
2015 shift1_e->SetLineColor(2);
2016 shift1_e->Draw("SAME");
2017 }//if(fullversion)
2018
2019
2020 //Name the file
2021 //const string fil = (const char*)fileName;
2022
2023 //Int_t posiz = fil.find("dw_");
2024 //if ( posiz == -1 ) posiz = fil.find("DW_");
2025 //Int_t posiz2 = posiz+13;
2026 //TString file2;
2027 //stringcopy(file2,base,posiz,posiz2);
2028 //
2029 //const char *figrec = file2;
2030
2031 //string *outdir = new string(outDir);
2032 //string *Format = new string(format);
2033 //char *figsave = 0;
2034 if(fullversion)
2035 {
2036 figsave = Form("%s/AcQLOOK1_%s.%s",outDir.Data(),fileName.Data(),format.Data());
2037 Canv_report1->SaveAs(figsave);
2038 figsave = Form("%s/AcQLOOK2_%s.%s",outDir.Data(),fileName.Data(),format.Data());
2039 Canv_report2->SaveAs(figsave);
2040 figsave = Form("%s/AcQLOOK3_%s.%s",outDir.Data(),fileName.Data(),format.Data());
2041 Canv_report3->SaveAs(figsave);
2042 figsave = Form("%s/AcQLOOK4_%s.%s",outDir.Data(),fileName.Data(),format.Data());
2043 Canv_report4->SaveAs(figsave);
2044 }
2045 if(!fullversion)
2046 {
2047 figsave = Form("%s/AcQLOOK_%s.%s",outDir.Data(),fileName.Data(),format.Data());
2048 Canv_report1->SaveAs(figsave);
2049 }
2050
2051 //Delete variables
2052 //delete Canv_report1,Canv_report2,Canv_report3,Canv_report4;
2053 //delete t;
2054 //delete pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pd10,pd11,pd12;
2055 //delete linje;
2056 //delete leg_m,leg_e,leg1_m;
2057
2058 //delete nmbhitpmtCAS,nmbhitpmtCAT,nmbhitpmtCARD;
2059 //delete counter1_m,counter2_m,counter3_m,counter4_m,counter5_m,counter6_m,counter7_m,counter8_m,counter9_m,counter10_m,counter11_m,counter12_m,counter13_m,counter14_m,counter15_m,counter16_m;
2060 //delete counter1_e,counter2_e,counter3_e,counter4_e,counter5_e,counter6_e,counter7_e,counter8_e,counter9_e,counter10_e,counter11_e,counter12_e,counter13_e,counter14_e,counter15_e,counter16_e;
2061 //delete shift1_m,shift2_m,shift3_m,shift4_m,shift5_m,shift6_m,shift7_m,shift8_m,shift9_m,shift10_m,shift11_m,shift12_m,shift13_m,shift14_m,shift15_m,shift16_m;
2062 //delete shift1_e,shift2_e,shift3_e,shift4_e,shift5_e,shift6_e,shift7_e,shift8_e,shift9_e,shift10_e,shift11_e,shift12_e,shift13_e,shift14_e,shift15_e,shift16_e;
2063 //delete head_m,head_e,hitmap_m,hitmap_e;
2064 //delete pmtstatus_m,pmtstatus_e;
2065 //delete trigg_m,trigg_e,timebtrigg_m,timebtrigg_e,dtrigg_m,dtrigg_e;
2066 //delete crc_m,headerr_m,crcerr_m,dsperr_m,regerr_m;
2067 //delete crc_e,headerr_e,crcerr_e,dsperr_e,regerr_e;
2068 //delete T_right_m,T_actel_m,T_dsp_m,T_left_m;
2069 //delete T_right_e,T_actel_e,T_dsp_e,T_left_e;
2070 //delete rootFile;
2071 //delete mtitel,etitel;
2072
2073 return 0;
2074
2075 }
2076
2077 int main(int argc, char* argv[]){
2078 TString outDir = ".";
2079 TString format = "jpg";
2080 int from = 0;
2081 int to = 0;
2082 int mode = 0;
2083
2084 if (argc < 2){
2085 printf("You have to insert at least the file to analyze \n");
2086 printf("Try '--help' for more information. \n");
2087 exit(1);
2088 }
2089
2090 if (!strcmp(argv[1], "--help")){
2091 printf( "Usage: AcQLOOK FILE [OPTION] \n");
2092 printf( "\t --help Print this help and exit \n");
2093 printf( "\t -outDir[path] Path where to put the output [default ./] \n");
2094 printf( "\t -format[path] Set the format for the output file [default 'jpg']\n");
2095 printf( "\t -from # Set the starting event [default 0]\n");
2096 printf( "\t -to # Set the last event [default 0]\n");
2097 printf( "\t -mode # advanced (1) or dummy (0) mode [default 0]\n");
2098 exit(1);
2099 }
2100
2101 if (!strcmp(argv[1], "-v")){
2102 printf("Version %.2f\n",VERSION);
2103 exit(1);
2104 }
2105
2106 for (int i = 2; i < argc; i++){
2107 if (!strcmp(argv[i], "-outDir")){
2108 if (++i >= argc){
2109 printf( "-outDir needs arguments. \n");
2110 printf( "Try '--help' for more information. \n");
2111 exit(1);
2112 } else {
2113 outDir = argv[i];
2114 }
2115 }
2116
2117 if (!strcmp(argv[i], "-format")) {
2118 if (++i >= argc){
2119 printf( "-format needs arguments. \n");
2120 printf( "Try '--help' for more information. \n");
2121 exit(1);
2122 } else {
2123 format = argv[i];
2124 continue;
2125 }
2126 }
2127
2128 if (!strcmp(argv[i], "-mode")) {
2129 if (++i >= argc){
2130 printf( "-mode needs arguments. \n");
2131 printf( "Try '--help' for more information. \n");
2132 exit(1);
2133 } else {
2134 mode = atoi(argv[i]);
2135 continue;
2136 }
2137 }
2138
2139
2140 if (!strcmp(argv[i], "-to")) {
2141 if (++i >= argc){
2142 printf( "-to needs arguments. \n");
2143 printf( "Try '--help' for more information. \n");
2144 exit(1);
2145 }
2146 if (isdigit(*argv[i]) && (atoi(argv[i]) > 0)) {
2147 to = atoi(argv[i]);
2148 } else {
2149 cerr << "-to needs a integer value. \n";
2150 cout << "Try '--help' for more information. \n";
2151 exit(1);
2152 }
2153 }
2154
2155 if (!strcmp(argv[i], "-from")) {
2156 if (++i >= argc){
2157 printf( "-from needs arguments. \n");
2158 printf( "Try '--help' for more information. \n");
2159 exit(1);
2160 }
2161 if (isdigit(*argv[i]) && (atoi(argv[i]) > 0)) {
2162 to = atoi(argv[i]);
2163 } else {
2164 cerr << "-from needs a integer value. \n";
2165 cout << "Try '--help' for more information. \n";
2166 exit(1);
2167 }
2168 }
2169
2170 }
2171 AcQLOOK(argv[1], from, to, outDir, format,mode);
2172 }

  ViewVC Help
Powered by ViewVC 1.1.23