| 1 | /** | /** | 
| 2 | * FTrkCalibQLookExpert.cpp | * FTrkCalibQLookExpert.cxx | 
| 3 | * | * | 
| 4 | * autor: D.Fedele | * autor: D.Fedele | 
| 5 | * version 2.0 | * version v1r18 | 
| 6 | * Parameters: | * Parameters: | 
| 7 | *      file - the data file to analyze | *      file - the data file to analyze | 
| 8 | *      step - select =1 in order to analyze one event at time | *      step - select =1 in order to analyze one event at time | 
| 18 | #include <TPaveText.h> | #include <TPaveText.h> | 
| 19 | #include <TLatex.h> | #include <TLatex.h> | 
| 20 | #include <TCanvas.h> | #include <TCanvas.h> | 
| 21 |  | #include <TFile.h> | 
| 22 | #include <TTree.h> | #include <TTree.h> | 
| 23 | #include <TGraph.h> | #include <TGraph.h> | 
| 24 | #include <TStyle.h> | #include <TStyle.h> | 
| 30 | #include <CalibTrk2Event.h> | #include <CalibTrk2Event.h> | 
| 31 | // | // | 
| 32 |  |  | 
| 33 |  | typedef struct caltrk_def{ | 
|  | void stringcopy(TString& s1, const TString& s2, Int_t from=0, Int_t to=0){ |  | 
|  | if ( to == 0 ){ |  | 
|  | Int_t t2length = s2.Length(); |  | 
|  | s1 = ""; |  | 
|  | to = t2length; |  | 
|  | }; |  | 
|  | for (Int_t i = from; i<to; i++){ |  | 
|  | s1.Append(s2[i],1); |  | 
|  | }; |  | 
|  | }; |  | 
|  |  |  | 
|  | typedef struct caltrk_def{ |  | 
| 34 | Int_t good0[2]; | Int_t good0[2]; | 
| 35 | Int_t daqmode[12]; | Int_t daqmode[12]; | 
| 36 | Int_t dspnum[12]; | Int_t dspnum[12]; | 
| 58 | { | { | 
| 59 | // | // | 
| 60 | //   obtain information about the data file and select the output dir | //   obtain information about the data file and select the output dir | 
| 61 | const string filepath=file.Data(); | Int_t dwpos = file.Last('/'); | 
| 62 | Int_t dwpos = filepath.rfind("/"); | Int_t dwpos1 = file.Last('.'); | 
| 63 | Int_t dwpos1 = filepath.rfind(".root"); | TString base,ffile ; | 
| 64 | TString fpath=(filepath.c_str()); | ffile=file(dwpos+1,dwpos1-(dwpos+1)); | 
| 65 | TString base,ffile; | if(dwpos>0) base=file(0,dwpos); | 
|  | stringcopy(base,fpath,0,dwpos); |  | 
|  | stringcopy(ffile,fpath,dwpos+1,dwpos1); |  | 
|  | if(dwpos>0) base+="/"; |  | 
| 66 |  |  | 
| 67 | TString out; | TString out; | 
| 68 | if(outdir.Length()==0){ | if(outdir.Length()==0){ | 
| 70 | }else{ | }else{ | 
| 71 | out = outdir; | out = outdir; | 
| 72 | } | } | 
| 73 |  | if(out.Last('/')+1<out.Length()) out+="/"; | 
| 74 |  |  | 
| 75 | // | // | 
| 76 | // inizialise the variables and open the file | // inizialise the variables and open the file | 
| 77 | Int_t nevents=0; | Int_t nevents=0; | 
| 78 | Int_t minevent = 0; | Int_t minevent = 0; | 
| 79 | Int_t maxevent = 0; | Int_t maxevent = 0; | 
| 80 | ULong64_t FOBT[2], HOBT=0, TOBT=0; | ULong64_t FOBT[2]; | 
| 81 |  |  | 
| 82 | FOBT[0]=0; | FOBT[0]=0; | 
| 83 | FOBT[1]=0; | FOBT[1]=0; | 
| 121 | pamela::EventHeader *eh1=0,*eh2=0,*eh4=0,*eh3=0; | pamela::EventHeader *eh1=0,*eh2=0,*eh4=0,*eh3=0; | 
| 122 | pamela::PscuHeader *ph=0; | pamela::PscuHeader *ph=0; | 
| 123 | pamela::CalibTrk1Event *trk1 = 0; | pamela::CalibTrk1Event *trk1 = 0; | 
| 124 | pamela::CalibTrk2Event *trk2 = 0; | pamela::CalibTrk2Event *trk2 = 0; | 
| 125 |  | pamela::EventCounter *cod=0; | 
| 126 |  |  | 
| 127 |  | pamela::PacketType *pctp=0; | 
| 128 |  |  | 
| 129 | hotr = (TTree*)calibFile->Get("CalibHeader"); | hotr = (TTree*)calibFile->Get("CalibHeader"); | 
| 130 | hotr->SetBranchAddress("Header", &eh4); | hotr->SetBranchAddress("Header", &eh4); | 
| 176 | } else if (toevent > nevents) { | } else if (toevent > nevents) { | 
| 177 | maxevent = nevents; | maxevent = nevents; | 
| 178 | } else { | } else { | 
| 179 | maxevent = fromevent; | maxevent = nevents; | 
| 180 | }; | }; | 
| 181 | }; | }; | 
| 182 |  |  | 
| 186 | // | // | 
| 187 | //********************************************************************** | //********************************************************************** | 
| 188 |  |  | 
| 189 |  | Int_t hcevent=hotr->GetEntries(); | 
| 190 |  | Int_t tcevent=totr->GetEntries(); | 
| 191 |  | ULong64_t HOBT[hcevent], TOBT[tcevent]; | 
| 192 |  | for (Int_t i = 0; i < hcevent; i++){ | 
| 193 |  | hotr->GetEntry(i); | 
| 194 |  | ph = eh4->GetPscuHeader(); | 
| 195 |  | HOBT[i]= ph->GetOrbitalTime(); | 
| 196 |  | } | 
| 197 |  | for (Int_t i = 0; i < tcevent; i++){ | 
| 198 |  | totr->GetEntry(i); | 
| 199 |  | ph = eh3->GetPscuHeader(); | 
| 200 |  | TOBT[i]= ph->GetOrbitalTime(); | 
| 201 |  | } | 
| 202 |  |  | 
| 203 | printf("\n Scan of calibration packets from %i to %i ... \n\n",minevent+1,maxevent); | printf("\n Scan of calibration packets from %i to %i ... \n\n",minevent+1,maxevent); | 
| 204 | for (Int_t i = minevent; i < maxevent; i++){ | for (Int_t i = minevent; i < maxevent; i++){ | 
| 205 |  |  | 
| 206 | otr1->GetEntry(i); | otr1->GetEntry(i); | 
| 207 | otr2->GetEntry(i); | otr2->GetEntry(i); | 
| 208 | totr->GetEntry(i); |  | 
|  | hotr->GetEntry(i); |  | 
|  | ph = eh4->GetPscuHeader(); |  | 
|  | HOBT= ph->GetOrbitalTime(); |  | 
|  | ph = eh3->GetPscuHeader(); |  | 
|  | TOBT= ph->GetOrbitalTime(); |  | 
|  |  |  | 
| 209 | ctrk.good0[0]=trk1->good0; | ctrk.good0[0]=trk1->good0; | 
| 210 | ctrk.good0[1]=trk2->good0; | ctrk.good0[1]=trk2->good0; | 
| 211 | for (Int_t m = 0; m < 6; m++){ | for (Int_t m = 0; m < 6; m++){ | 
| 212 | ph = eh1->GetPscuHeader(); | ph = eh1->GetPscuHeader(); | 
| 213 |  | cod = eh1->GetCounter(); | 
| 214 | FOBT[0]= ph->GetOrbitalTime(); | FOBT[0]= ph->GetOrbitalTime(); | 
| 215 | ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m]; | if(trk1->DSPnumber[m]>0){ | 
| 216 | ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m]; | if(trk1->DSPnumber[m]<13){ | 
| 217 | ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m]; | ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m]; | 
| 218 | ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m]; | ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m]; | 
| 219 | ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m]; | ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m]; | 
| 220 | ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m]; | ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m]; | 
| 221 | ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m]; | ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m]; | 
| 222 | ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m]; | ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m]; | 
| 223 | ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m]; | ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m]; | 
| 224 | ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m]; | ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m]; | 
| 225 | ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m]; | ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m]; | 
| 226 | ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m]; | ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m]; | 
| 227 | ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m]; | ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m]; | 
| 228 | ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m]; | ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m]; | 
| 229 | ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0]; | ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m]; | 
| 230 | ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1]; | ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m]; | 
| 231 | ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2]; | ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0]; | 
| 232 | ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m]; | ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1]; | 
| 233 | for (Int_t j = 0; j < 3072; j++){ | ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2]; | 
| 234 | ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j]; | ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m]; | 
| 235 | ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j]; | for (Int_t j = 0; j < 3072; j++){ | 
| 236 | ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j]; | ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j]; | 
| 237 | }; | ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j]; | 
| 238 |  | ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j]; | 
| 239 |  | }; | 
| 240 |  | } | 
| 241 |  | } | 
| 242 | ph = eh2->GetPscuHeader(); | ph = eh2->GetPscuHeader(); | 
| 243 | FOBT[1]= ph->GetOrbitalTime(); | FOBT[1]= ph->GetOrbitalTime(); | 
| 244 | ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m]; | if(trk2->DSPnumber[m]>0){ | 
| 245 | ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m]; | if(trk2->DSPnumber[m]<13){ | 
| 246 | ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m]; | ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m]; | 
| 247 | ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m]; | ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m]; | 
| 248 | ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m]; | ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m]; | 
| 249 | ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m]; | ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m]; | 
| 250 | ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m]; | ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m]; | 
| 251 | ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m]; | ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m]; | 
| 252 | ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m]; | ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m]; | 
| 253 | ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m]; | ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m]; | 
| 254 | ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m]; | ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m]; | 
| 255 | ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m]; | ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m]; | 
| 256 | ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m]; | ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m]; | 
| 257 | ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m]; | ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m]; | 
| 258 | ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0]; | ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m]; | 
| 259 | ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1]; | ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m]; | 
| 260 | ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2]; | ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0]; | 
| 261 | ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m]; | ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1]; | 
| 262 | for (Int_t j = 0; j < 3072; j++){ | ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2]; | 
| 263 | ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j]; | ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m]; | 
| 264 | ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j]; | for (Int_t j = 0; j < 3072; j++){ | 
| 265 | ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j]; | ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j]; | 
| 266 | }; | ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j]; | 
| 267 | }; | ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j]; | 
| 268 |  | } | 
| 269 |  | } | 
| 270 |  | } | 
| 271 |  | } | 
| 272 |  |  | 
| 273 |  |  | 
| 274 | // | // | 
| 275 | // other variables definitions | // other variables definitions | 
| 276 |  |  | 
| 277 | Int_t risposta=0; | Int_t risposta=0; | 
| 278 | stringstream fromfile; | stringstream fromfile; | 
| 279 |  |  | 
| 280 | fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT<<" --"; | fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT[(cod->Get(pctp->CalibHeader))-1]<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT[(cod->Get(pctp->CalibTrailer))]<<" --"; | 
| 281 |  |  | 
| 282 | gStyle->SetLabelSize(0.08,"x"); | gStyle->SetLabelSize(0.07,"x"); | 
| 283 | gStyle->SetLabelSize(0.08,"y"); | gStyle->SetLabelSize(0.07,"y"); | 
| 284 | gStyle->SetTitleFillColor(10); | gStyle->SetTitleFillColor(10); | 
| 285 | gStyle->SetTitleFontSize(0.1); | gStyle->SetTitleFontSize(0.08); | 
| 286 | gStyle->SetTitleOffset(0.8,"y"); | gStyle->SetTitleOffset(0.8,"y"); | 
| 287 | gStyle->SetTitleOffset(1.,"x"); | gStyle->SetTitleOffset(0.9,"x"); | 
| 288 | gStyle->SetTitleSize(0.06,"y"); | gStyle->SetTitleSize(0.06,"y"); | 
| 289 | gStyle->SetTitleSize(0.06,"x"); | gStyle->SetTitleSize(0.06,"x"); | 
| 290 | gStyle->SetOptStat(0); | gStyle->SetOptStat(101110); | 
| 291 |  | gStyle->SetStatX(0.9); | 
| 292 |  | gStyle->SetStatW(0.4); | 
| 293 |  | gStyle->SetStatColor(10); | 
| 294 |  | gStyle->SetStatFontSize(0.1); | 
| 295 |  |  | 
| 296 | // | // | 
| 297 | //  draw display area | //  draw display area | 
| 298 |  |  | 
| 299 | TLatex *tzz=new TLatex(); | TLatex *tzz=new TLatex(); | 
| 300 | tzz->SetTextFont(32); | tzz->SetTextFont(32); | 
| 301 | tzz->SetTextColor(1); | tzz->SetTextColor(1); | 
| 312 | tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); | tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); | 
| 313 | tzz->DrawLatex(.90,0.98,"SIGMA"); | tzz->DrawLatex(.90,0.98,"SIGMA"); | 
| 314 |  |  | 
| 315 |  |  | 
| 316 |  | TCanvas *sig=new TCanvas("sig","FTrkCalibQLook_EXPERT_histosig",canvasx,canvasy); | 
| 317 |  | sig->SetFillColor(10); | 
| 318 |  | tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); | 
| 319 |  | tzz->DrawLatex(.85,0.97,"Histograms of the sigmas"); | 
| 320 |  |  | 
| 321 |  |  | 
| 322 |  |  | 
| 323 | //  draw pads | //  draw pads | 
| 324 | TPad *trkpad1[12],*trkpad2[12];        //pad for histos | TPad *trkpad1[12],*trkpad2[12],*trkpad3[36];        //pad for histos | 
| 325 | TPaveText *trkpadtext[12]; //pad for header | TPaveText *trkpadtext[12]; //pad for header | 
| 326 | TH1F *histosig[12];           //histos of sigma | TH1F *histosig[12];           //histos of sigma | 
| 327 | TH1F *histoped[12];          //histos of pedestals | TH1F *histoped[12];          //histos of pedestals | 
| 328 | TH1F *histoasig[12];           //histos of sigma | TH1F *histoasig[12];           //histos of sigma | 
| 329 | TH1F *histoaped[12];          //histos of pedestals | TH1F *histoaped[12];          //histos of pedestals | 
| 330 |  |  | 
| 331 |  | TH1F *histosiglad[12][3];           //histos of sigma | 
| 332 |  | stringstream title; | 
| 333 |  | stringstream hid; | 
| 334 |  |  | 
| 335 | Float_t posy = 0.95;    // up y-coord - top pads | Float_t posy = 0.95;    // up y-coord - top pads | 
| 336 | Float_t hpad = 0.15;   // pad height | Float_t hpad = 0.15;   // pad height | 
| 339 | Float_t posx0=0;          //       x-coord - column division | Float_t posx0=0;          //       x-coord - column division | 
| 340 | Float_t wrel = 0.6;     // relative x size of first sub-column | Float_t wrel = 0.6;     // relative x size of first sub-column | 
| 341 | Float_t marg = 0.004;   // margin among pads | Float_t marg = 0.004;   // margin among pads | 
|  | stringstream title; |  | 
|  | stringstream hid; |  | 
| 342 |  |  | 
| 343 |  |  | 
| 344 | for(Int_t n = 0; n<12; n++){ | for(Int_t n = 0; n<12; n++){ | 
| 345 | if ( (n+1)%2 ) { | if ( (n+1)%2 ) { | 
| 346 | if(n>1)posy = posy-(marg*2+hpad); | if(n>1)posy = posy-(marg*2+hpad); | 
| 347 | posx1 = marg; | posx1 = marg; | 
| 348 | posx2 = 0.5 - marg; | posx2 = 0.5 - marg; | 
| 349 | posx0 = 0.5*wrel; | posx0 = 0.5*wrel; | 
| 350 |  |  | 
| 351 | } else { | } else { | 
| 352 | posx1 = posx1 + 0.5; | posx1 = posx1 + 0.5; | 
| 353 | posx2 = posx2 + 0.5; | posx2 = posx2 + 0.5; | 
| 354 | posx0 = posx0 + 0.5; | posx0 = posx0 + 0.5; | 
| 355 |  |  | 
| 356 | }; | }; | 
| 357 | /* -----------> pad for histograms  */ | /* -----------> pad for histograms  */ | 
| 358 | trkpad1[n] = new TPad("pad1"," ",posx1,posy-hpad,posx0-marg,posy,18,0,0); | trkpad1[n] = new TPad("pad1"," ",posx1,posy-hpad,posx0-marg,posy,18,0,0); | 
| 362 | /* -----------> HISTOGRAMS          */ | /* -----------> HISTOGRAMS          */ | 
| 363 | /* calibration parameters */ | /* calibration parameters */ | 
| 364 | title<<"DSP "<<n+1; | title<<"DSP "<<n+1; | 
| 365 | hid<<"h"<<n; | hid<<"h"<<n<<"i"<<i; | 
| 366 | histosig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5); | histosig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5); | 
| 367 | hid.str(""); | hid.str(""); | 
| 368 | hid<<"hh"<<n; | hid<<"hh"<<n<<"i"<<i; | 
| 369 | histoped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5); | histoped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5); | 
| 370 | hid.str(""); | hid.str(""); | 
| 371 | hid<<"hhh"<<n; | hid<<"hhh"<<n<<"i"<<i; | 
|  | title.str(""); |  | 
| 372 | hid.str(""); | hid.str(""); | 
| 373 | /* AVERAGE calibration parameters */ | /* AVERAGE calibration parameters */ | 
| 374 | hid<<"ah"<<n; | hid<<"ah"<<n<<"i"<<i; | 
| 375 | histoasig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5); | histoasig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5); | 
| 376 | hid.str(""); | hid.str(""); | 
| 377 | hid<<"ahh"<<n; | hid<<"ahh"<<n<<"i"<<i; | 
| 378 | histoaped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5); | histoaped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5); | 
| 379 | hid.str(""); | hid.str(""); | 
| 380 |  | for(int ii=0;ii<3;ii++){ | 
| 381 |  | title.str(""); | 
| 382 |  | title<<"DSP "<<n+1<<" / Lad "<<ii+1; | 
| 383 |  | hid<<"hhhh"<<n<<"i"<<i<<"ii"<<ii; | 
| 384 |  | histosiglad[n][ii] = new TH1F(hid.str().c_str(),title.str().c_str(),32,-0.5,30.5); | 
| 385 |  | hid.str(""); | 
| 386 |  | } | 
| 387 |  | title.str(""); | 
| 388 | };                     //end loop on views | };                     //end loop on views | 
| 389 |  |  | 
| 390 |  | Float_t tposy = 0.95;    // up y-coord - top pads | 
| 391 |  | Float_t thpad = 0.;   // pad height | 
| 392 |  | Float_t tposx1=0;          // left  x-coord - pad column | 
| 393 |  | Float_t tposx0=0;          //       x-coord - column division | 
| 394 |  | Float_t twrel = 0.;     // relative x size of first sub-column | 
| 395 |  | Float_t tmarg = 0.002;   // margin among pads | 
| 396 |  | thpad = (tposy-tmarg*11)/6; | 
| 397 |  | twrel = (1-tmarg*12)/6; | 
| 398 |  |  | 
| 399 |  | for(Int_t n = 0; n<36; n++){ | 
| 400 |  | if ( (n+1)%6==1 ) { | 
| 401 |  | if(n>1) tposy = tposy-(tmarg*2+thpad); | 
| 402 |  | tposx1 = tmarg; | 
| 403 |  | tposx0 = tposx1 + twrel; | 
| 404 |  | } else { | 
| 405 |  | tposx1 = tposx0 + 2*tmarg; | 
| 406 |  | tposx0 = tposx1 + twrel; | 
| 407 |  | } | 
| 408 |  | trkpad3[n]= new TPad("pad3"," ",tposx1,tposy-thpad,tposx0,tposy,18,0,0); | 
| 409 |  | } | 
| 410 |  |  | 
| 411 |  |  | 
| 412 | stringstream message; | stringstream message; | 
| 413 |  |  | 
| 414 | //-------------------------------- | //-------------------------------- | 
| 415 | //CHECK CALIBRATION procedure | //CHECK CALIBRATION procedure | 
| 416 | //-------------------------------- | //-------------------------------- | 
| 418 | Int_t calok = 0;//BAD | Int_t calok = 0;//BAD | 
| 419 | for(Int_t n = 0; n<12; n++){ | for(Int_t n = 0; n<12; n++){ | 
| 420 | if(ctrk.ncalev[n]==0 && ctrk.calfl[n]==0)calok = 1;//GOOD | if(ctrk.ncalev[n]==0 && ctrk.calfl[n]==0)calok = 1;//GOOD | 
| 421 |  |  | 
| 422 |  | if(ctrk.dspnum[n]==0) | 
| 423 |  | continue; | 
| 424 |  |  | 
| 425 | nn=ctrk.dspnum[n]-1; | nn=ctrk.dspnum[n]-1; | 
| 426 | /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* | /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* | 
| 427 | * | * | 
| 494 | /******************************************************/ | /******************************************************/ | 
| 495 | /* fill histos */ | /* fill histos */ | 
| 496 | for(Int_t j = 0; j < 3072; j++){ | for(Int_t j = 0; j < 3072; j++){ | 
| 497 | histosig[nn]->Fill((Float_t)j,ctrk.dspsig[nn][j]); | histosig[nn]->Fill(j,ctrk.dspsig[n][j]); | 
| 498 | histoped[nn]->Fill((Float_t)j,ctrk.dspped[nn][j]); | histoped[nn]->Fill(j,ctrk.dspped[n][j]); | 
| 499 |  | if(j<1024) histosiglad[nn][0]->Fill(ctrk.dspsig[n][j]); | 
| 500 |  | if(j>=1024 && j<2048) histosiglad[nn][1]->Fill(ctrk.dspsig[n][j]); | 
| 501 |  | if(j>=2048 && j<3072) histosiglad[nn][2]->Fill(ctrk.dspsig[n][j]); | 
| 502 | }; | }; | 
| 503 | histoasig[nn]->Fill(1,ctrk.sig1[nn]); | histoasig[nn]->Fill(1,ctrk.sig1[n]); | 
| 504 | histoasig[nn]->Fill(1025,ctrk.sig2[nn]); | histoasig[nn]->Fill(1025,ctrk.sig2[n]); | 
| 505 | histoasig[nn]->Fill(2049,ctrk.sig3[nn]); | histoasig[nn]->Fill(2049,ctrk.sig3[n]); | 
| 506 | histoaped[nn]->Fill(1,ctrk.ped1[nn]); | histoaped[nn]->Fill(1,ctrk.ped1[nn]); | 
| 507 | histoaped[nn]->Fill(1025,ctrk.ped2[nn]); | histoaped[nn]->Fill(1025,ctrk.ped2[n]); | 
| 508 | histoaped[nn]->Fill(2049,ctrk.ped3[nn]); | histoaped[nn]->Fill(2049,ctrk.ped3[n]); | 
| 509 | /******************************************************/ | /******************************************************/ | 
| 510 |  |  | 
| 511 | TLine li; | TLine li,liva1; | 
| 512 | li.SetLineColor(38); | li.SetLineColor(38); | 
| 513 | li.SetLineStyle(3); | li.SetLineStyle(4); | 
| 514 | li.SetLineWidth(2); | li.SetLineWidth(2); | 
| 515 |  | liva1.SetLineColor(42); | 
| 516 | Float_t maxhist=0; | liva1.SetLineStyle(3); | 
| 517 |  | liva1.SetLineWidth(1); | 
| 518 |  |  | 
| 519 |  | Float_t maxhist=0,va1x=0; | 
| 520 | TBox b; | TBox b; | 
|  | b.SetFillColor(6); |  | 
|  | b.SetFillStyle(3945); |  | 
| 521 | /* plot PEDESTAL */ | /* plot PEDESTAL */ | 
| 522 | c1->cd(); | c1->cd(); | 
| 523 | trkpadtext[nn]->Draw(); | trkpadtext[nn]->Draw(); | 
| 525 | trkpad1[nn]->cd(); | trkpad1[nn]->cd(); | 
| 526 | trkpad1[nn]->SetFillColor(10); | trkpad1[nn]->SetFillColor(10); | 
| 527 | trkpad1[nn]->SetFrameFillColor(10); | trkpad1[nn]->SetFrameFillColor(10); | 
| 528 |  | histoped[nn]->SetStats(kFALSE); | 
| 529 | histoped[nn]->SetLineColor(1); | histoped[nn]->SetLineColor(1); | 
| 530 | histoped[nn]->SetFillColor(12); | histoped[nn]->SetFillColor(12); | 
| 531 | histoped[nn]->SetLineWidth(1); | histoped[nn]->SetLineWidth(1); | 
| 535 | if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(700,1700); | if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(700,1700); | 
| 536 | histoaped[nn]->SetLineColor(5); | histoaped[nn]->SetLineColor(5); | 
| 537 | histoaped[nn]->SetLineWidth(1); | histoaped[nn]->SetLineWidth(1); | 
| 538 | if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ | //       if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ | 
| 539 | histoped[nn]->Draw("b"); | histoped[nn]->Draw("b"); | 
| 540 | if(nn==1){ | maxhist=histoped[nn]->GetMaximum(); | 
| 541 | maxhist=histoped[nn]->GetMaximum(); | if(nn==0){ | 
| 542 | b.DrawBox(2816.,700.,3060.,maxhist); | b.SetFillColor(107); | 
| 543 |  | b.SetFillStyle(3945); | 
| 544 |  | b.DrawBox(768.,2200.,2047.,maxhist); | 
| 545 |  | } | 
| 546 |  | else if(nn==1){ | 
| 547 |  | b.SetFillColor(6); | 
| 548 |  | b.SetFillStyle(3945); | 
| 549 |  | b.DrawBox(2944.,700.,3060.,maxhist); | 
| 550 |  |  | 
| 551 |  | b.SetFillColor(107); | 
| 552 |  | b.SetFillStyle(3954); | 
| 553 |  | b.DrawBox(2816.,700.,2944.,maxhist); | 
| 554 |  | b.DrawBox(2048.,700.,2176.,maxhist); | 
| 555 |  | } | 
| 556 |  | else if(nn==4){ | 
| 557 |  | b.SetFillColor(107); | 
| 558 |  | b.SetFillStyle(3954); | 
| 559 |  | b.DrawBox(384.,2200.,512.,maxhist); | 
| 560 | } | } | 
| 561 | else if(nn==6){ | else if(nn==6){ | 
| 562 | maxhist=histoped[nn]->GetMaximum(); | b.SetFillColor(6); | 
| 563 |  | b.SetFillStyle(3945); | 
| 564 | b.DrawBox(2560.,2200.,2816.,maxhist); | b.DrawBox(2560.,2200.,2816.,maxhist); | 
| 565 |  | b.DrawBox(1024.,2200.,1535.,maxhist); | 
| 566 |  |  | 
| 567 |  | b.SetFillColor(107); | 
| 568 |  | b.SetFillStyle(3954); | 
| 569 | b.DrawBox(512.,2200.,768.,maxhist); | b.DrawBox(512.,2200.,768.,maxhist); | 
| 570 | b.DrawBox(1024.,2200.,1792.,maxhist); | b.DrawBox(1536.,2200.,1792.,maxhist); | 
| 571 |  | } | 
| 572 |  | else if(nn==7){ | 
| 573 |  | b.SetFillColor(107); | 
| 574 |  | b.SetFillStyle(3954); | 
| 575 |  | b.DrawBox(512.,700.,768.,maxhist); | 
| 576 |  | } | 
| 577 |  | else if(nn==8){ | 
| 578 |  | b.SetFillColor(107); | 
| 579 |  | b.SetFillStyle(3954); | 
| 580 |  | b.DrawBox(512.,2200.,768.,maxhist); | 
| 581 |  | } | 
| 582 |  | else if(nn==9){ | 
| 583 |  | b.SetFillColor(107); | 
| 584 |  | b.SetFillStyle(3954); | 
| 585 |  | b.DrawBox(256.,700.,384.,maxhist); | 
| 586 |  | } | 
| 587 |  | else if(nn==10){ | 
| 588 |  | b.SetFillColor(107); | 
| 589 |  | b.SetFillStyle(3954); | 
| 590 |  | b.DrawBox(2560.,2200.,3070.,maxhist); | 
| 591 | } | } | 
| 592 | else if(nn==11){ | else if(nn==11){ | 
| 593 | maxhist=histoped[nn]->GetMaximum(); | b.SetFillColor(6); | 
| 594 |  | b.SetFillStyle(3945); | 
| 595 | b.DrawBox(768.,700.,1024.,maxhist); | b.DrawBox(768.,700.,1024.,maxhist); | 
| 596 |  |  | 
| 597 |  | b.SetFillColor(107); | 
| 598 |  | b.SetFillStyle(3954); | 
| 599 |  | b.DrawBox(0.,700.,512.,maxhist); | 
| 600 |  | b.DrawBox(1920.,700.,2560.,maxhist); | 
| 601 | } | } | 
| 602 | } | //     } | 
| 603 | else histoped[nn]->Draw("axis"); | //       else histoped[nn]->Draw("axis"); | 
| 604 | histoaped[nn]->Draw("same"); | histoaped[nn]->Draw("same"); | 
| 605 | if((nn+1)%2==1) { | if((nn+1)%2==1) { | 
| 606 | li.DrawLine(1024.5,2200,1024.5,3200); | for(int va=1; va<24; va++){ | 
| 607 | li.DrawLine(2048.5,2200,2048.5,3200); | va1x=128*va; | 
| 608 |  | liva1.DrawLine(va1x,2200.,va1x,3200.); | 
| 609 |  | } | 
| 610 |  | li.DrawLine(1024.5,2200.,1024.5,3200.); | 
| 611 |  | li.DrawLine(2048.5,2200.,2048.5,3200.); | 
| 612 | } | } | 
| 613 | if((nn+1)%2==0) { | if((nn+1)%2==0) { | 
| 614 |  | for(int va=1; va<24; va++){ | 
| 615 |  | va1x=128*va; | 
| 616 |  | liva1.DrawLine(va1x,700.,va1x,1700.); | 
| 617 |  | } | 
| 618 | li.DrawLine(1024.5,700,1024.5,1700); | li.DrawLine(1024.5,700,1024.5,1700); | 
| 619 | li.DrawLine(2048.5,700,2048.5,1700); | li.DrawLine(2048.5,700,2048.5,1700); | 
| 620 | } | } | 
| 621 |  | c1->Update();//draw pads in canvas | 
| 622 |  |  | 
| 623 |  |  | 
| 624 |  |  | 
| 631 | trkpad2[nn]->cd(); | trkpad2[nn]->cd(); | 
| 632 | trkpad2[nn]->SetFillColor(10); | trkpad2[nn]->SetFillColor(10); | 
| 633 | trkpad2[nn]->SetFrameFillColor(10); | trkpad2[nn]->SetFrameFillColor(10); | 
| 634 |  | histosig[nn]->SetStats(kFALSE); | 
| 635 | histosig[nn]->SetLineColor(1); | histosig[nn]->SetLineColor(1); | 
| 636 | histosig[nn]->SetFillColor(12); | histosig[nn]->SetFillColor(12); | 
| 637 | histosig[nn]->SetLineWidth(1); | histosig[nn]->SetLineWidth(1); | 
| 641 | histosig[nn]->GetYaxis()->CenterTitle(); | histosig[nn]->GetYaxis()->CenterTitle(); | 
| 642 | histoasig[nn]->SetLineColor(5); | histoasig[nn]->SetLineColor(5); | 
| 643 | histoasig[nn]->SetLineWidth(1); | histoasig[nn]->SetLineWidth(1); | 
| 644 | if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ | //      if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ | 
| 645 | histosig[nn]->Draw("b"); | histosig[nn]->Draw("b"); | 
| 646 | if(nn==1){ | maxhist=histosig[nn]->GetMaximum(); | 
| 647 | maxhist=histosig[nn]->GetMaximum(); | if(nn==0){ | 
| 648 | b.DrawBox(2816.,0.,3060.,maxhist); | b.SetFillColor(107); | 
| 649 |  | b.SetFillStyle(3945); | 
| 650 |  | b.DrawBox(768.,0.,2047.,maxhist); | 
| 651 |  | } | 
| 652 |  | else if(nn==1){ | 
| 653 |  | b.SetFillColor(6); | 
| 654 |  | b.SetFillStyle(3945); | 
| 655 |  | b.DrawBox(2944.,0.,3070.,maxhist); | 
| 656 |  |  | 
| 657 |  | b.SetFillColor(107); | 
| 658 |  | b.SetFillStyle(3954); | 
| 659 |  | b.DrawBox(2816.,0.,2944.,maxhist); | 
| 660 |  | b.DrawBox(2048.,0.,2176.,maxhist); | 
| 661 |  | } | 
| 662 |  | else if(nn==4){ | 
| 663 |  | b.SetFillColor(107); | 
| 664 |  | b.SetFillStyle(3954); | 
| 665 |  | b.DrawBox(384.,0.,512.,maxhist); | 
| 666 | } | } | 
| 667 | else if(nn==6){ | else if(nn==6){ | 
| 668 | maxhist=histosig[nn]->GetMaximum(); | b.SetFillColor(6); | 
| 669 |  | b.SetFillStyle(3945); | 
| 670 | b.DrawBox(2560.,0.,2816.,maxhist); | b.DrawBox(2560.,0.,2816.,maxhist); | 
| 671 |  | b.DrawBox(1024.,0.,1535.,maxhist); | 
| 672 |  |  | 
| 673 |  | b.SetFillColor(107); | 
| 674 |  | b.SetFillStyle(3954); | 
| 675 | b.DrawBox(512.,0.,768.,maxhist); | b.DrawBox(512.,0.,768.,maxhist); | 
| 676 | b.DrawBox(1024.,0.,1792.,maxhist); | b.DrawBox(1536.,0.,1792.,maxhist); | 
| 677 |  | } | 
| 678 |  | else if(nn==7){ | 
| 679 |  | b.SetFillColor(107); | 
| 680 |  | b.SetFillStyle(3954); | 
| 681 |  | b.DrawBox(512.,0.,768.,maxhist); | 
| 682 |  | } | 
| 683 |  | else if(nn==8){ | 
| 684 |  | b.SetFillColor(107); | 
| 685 |  | b.SetFillStyle(3954); | 
| 686 |  | b.DrawBox(512.,0.,768.,maxhist); | 
| 687 |  | } | 
| 688 |  | else if(nn==9){ | 
| 689 |  | b.SetFillColor(107); | 
| 690 |  | b.SetFillStyle(3954); | 
| 691 |  | b.DrawBox(256.,0.,384.,maxhist); | 
| 692 |  | } | 
| 693 |  | else if(nn==10){ | 
| 694 |  | b.SetFillColor(107); | 
| 695 |  | b.SetFillStyle(3954); | 
| 696 |  | b.DrawBox(2560.,0.,3070.,maxhist); | 
| 697 | } | } | 
| 698 | else if(nn==11){ | else if(nn==11){ | 
| 699 | maxhist=histosig[nn]->GetMaximum(); | b.SetFillColor(6); | 
| 700 |  | b.SetFillStyle(3945); | 
| 701 | b.DrawBox(768.,0.,1024.,maxhist); | b.DrawBox(768.,0.,1024.,maxhist); | 
| 702 |  |  | 
| 703 |  | b.SetFillColor(107); | 
| 704 |  | b.SetFillStyle(3954); | 
| 705 |  | b.DrawBox(0.,0.,512.,maxhist); | 
| 706 |  | b.DrawBox(1920.,0.,2560.,maxhist); | 
| 707 | } | } | 
| 708 | } | //       } | 
| 709 | else histosig[nn]->Draw("axis"); | //       else histosig[nn]->Draw("axis"); | 
| 710 | histoasig[nn]->Draw("same"); | histoasig[nn]->Draw("same"); | 
| 711 |  | for(int va=1; va<24; va++){ | 
| 712 |  | va1x=128*va; | 
| 713 |  | liva1.DrawLine(va1x,0.,va1x,max); | 
| 714 |  | } | 
| 715 | li.DrawLine(1024.5,0,1024.5,max); | li.DrawLine(1024.5,0,1024.5,max); | 
| 716 | li.DrawLine(2048.5,0,2048.5,max); | li.DrawLine(2048.5,0,2048.5,max); | 
| 717 |  | c2->Update();//draw pads in canvas | 
| 718 |  |  | 
| 719 |  | for(int ii=0;ii<3;ii++){ | 
| 720 |  | sig->cd(); | 
| 721 |  | trkpad3[nn*3+ii]->Draw(); | 
| 722 |  | trkpad3[nn*3+ii]->cd(); | 
| 723 |  | trkpad3[nn*3+ii]->SetFillColor(10); | 
| 724 |  | trkpad3[nn*3+ii]->SetFrameFillColor(10); | 
| 725 |  | trkpad3[nn*3+ii]->SetLogy(); | 
| 726 |  | histosiglad[nn][ii]->SetLineColor(1); | 
| 727 |  | histosiglad[nn][ii]->SetFillColor(1); | 
| 728 |  | histosiglad[nn][ii]->SetLineWidth(1); | 
| 729 |  | histosiglad[nn][ii]->GetXaxis()->SetTitle("SIG (ADC channels)"); | 
| 730 |  | histosiglad[nn][ii]->GetXaxis()->CenterTitle(); | 
| 731 |  | histosiglad[nn][ii]->Draw(""); | 
| 732 |  | } | 
| 733 |  |  | 
| 734 | };//end loop on views | };//end loop on views | 
|  |  |  | 
| 735 | c1->Update();//draw pads in canvas | c1->Update();//draw pads in canvas | 
| 736 | c2->Update();//draw pads in canvas | c2->Update();//draw pads in canvas | 
| 737 |  | sig->Update();//draw pads in canvas | 
| 738 | stringstream nom1; |  | 
| 739 | stringstream nom2; | stringstream nom1,nom2,nom3; | 
| 740 |  |  | 
| 741 | if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){ | if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){ | 
| 742 | nom1.str(""); | nom1.str(""); | 
| 743 | nom2.str(""); | nom2.str(""); | 
| 744 |  | nom3.str(""); | 
| 745 | nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps("; | nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps("; | 
| 746 | nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps)"; | nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps"; | 
| 747 |  | nom3<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps)"; | 
| 748 | c1->Print(nom1.str().c_str(),"Landscape"); | c1->Print(nom1.str().c_str(),"Landscape"); | 
| 749 | c2->Print(nom2.str().c_str(),"Landscape"); | c2->Print(nom2.str().c_str(),"Landscape"); | 
| 750 |  | sig->Print(nom3.str().c_str(),"Landscape"); | 
| 751 |  |  | 
| 752 | if(!strcmp(outfile.Data(),"pdf")){ | if(!strcmp(outfile.Data(),"pdf")){ | 
| 753 | stringstream com; | stringstream com; | 
| 754 | com<<"ps2pdf13 "<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps "<<out<<ffile<<"_FTrkCalibQlook_EXPERT-pkt"<<i+1<<".pdf"; | com<<"ps2pdf13 "<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps "<<out<<ffile<<"_FTrkCalibQlook_EXPERT-pkt"<<i+1<<".pdf"; | 
| 764 | else{ | else{ | 
| 765 | nom1.str(""); | nom1.str(""); | 
| 766 | nom2.str(""); | nom2.str(""); | 
| 767 |  | nom3.str(""); | 
| 768 | nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-ped-pkt"<<i+1<<"."<<outfile.Data(); | nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-ped-pkt"<<i+1<<"."<<outfile.Data(); | 
| 769 | nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-sig-pkt"<<i+1<<"."<<outfile.Data(); | nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-sig-pkt"<<i+1<<"."<<outfile.Data(); | 
| 770 |  | nom3<<out<<ffile<<"_FTrkCalibQLook_EXPERT-histosig-pkt"<<i+1<<"."<<outfile.Data(); | 
| 771 | c1->Print(nom1.str().c_str()); | c1->Print(nom1.str().c_str()); | 
| 772 | c2->Print(nom2.str().c_str()); | c2->Print(nom2.str().c_str()); | 
| 773 |  | sig->Print(nom3.str().c_str()); | 
| 774 | } | } | 
| 775 |  |  | 
| 776 | if(step==1 && i!=maxevent-1 ){ | if(step==1 && i!=maxevent-1 ){ | 
| 777 | printf("\n Press 1<enter> to continue, 2<enter> to quit.\n"); | printf("\n Press 1<enter> to continue, 2<enter> to quit.\n"); | 
| 778 | cin>>risposta; | cin>>risposta; |