--- ../ana/errDev2.C 2019-01-03 13:06:05.930538884 +0100 +++ errDev2.C 2018-10-21 15:07:46.953809740 +0200 @@ -1,44 +1,29 @@ void errDev(const char *desc="") { char fname[100]; - sprintf(fname, "result.root"); + sprintf(fname, "result%s.root", desc); TFile *inFile = TFile::Open(fname); - // select which detector option we use - const int kTPC = 1; - const int kMuCh = 2; - const int kDet = kMuCh; - const int debug = 1; const bool kTimeFormat = false; //const bool kTimeFormat = true; // can't seem to get the time format to work... - const int kSelectNoise = 1; // 1: first measurement, 2: 2nd measurement, 3: best of 1 and 2 + const int kSelectNoise = 3; // 1: first measurement, 2: 2nd measurement, 3: best of 1 and 2 const int kMassive = 4; // const int kMassive = 30; - const int kNSta = 2; // cuts on channel level: should be same as in checklog.pl const float kMinPed = 40; const float kMaxPed = 110; const float kMinRms = 0.6; - const float kMaxRms = 1.4; + const float kMaxRms = 1.3; const float kMaxRms31 = 2.0; const float kMinGain20mV = 18.8; - const float kMaxGain20mV[kNSta] = { 20.2, 20.5 }; - const float kMinGain30mV = 25; - const float kMaxGain30mV = 35; - const float kMinGain4mV = 3.9; - const float kMaxGain4mV = 4.3; - - const float kMinRT20mV = 155; - const float kMaxRT20mV = 180; - const float kMinRT4mV = 300; - const float kMaxRT4mV = 350; + const float kMaxGain20mV = 20.2; - // constants for arrays + // constants for arrays const int kNChan = 32; const int kNQR = 26; const int kNVRef = 6; @@ -62,31 +47,22 @@ Float_t fACurr[kNACurr]; Float_t fGain20mV[32]; Float_t fGain30mV[32]; - Float_t fGain4mV[32]; Float_t fGainRT20mV[32]; Float_t fGainRT30mV[32]; - Float_t fGainRT4mV[32]; Float_t fRT20mV[32]; Float_t fRT30mV[32]; - Float_t fRT4mV[32]; Float_t fPed20mV[32]; Float_t fPed30mV[32]; - Float_t fPed4mV[32]; Float_t fRms20mV[32]; Float_t fRms30mV[32]; - Float_t fRms4mV[32]; Float_t fPedAna20mV[32]; Float_t fPedAna30mV[32]; - Float_t fPedAna4mV[32]; Float_t fRmsAna20mV[32]; Float_t fRmsAna30mV[32]; - Float_t fRmsAna4mV[32]; Float_t fX20mVeven; Float_t fX20mVodd; Float_t fX30mVeven; Float_t fX30mVodd; - Float_t fX4mVeven; - Float_t fX4mVodd; Int_t iSync[kNSync]; Int_t iDFT; Int_t iJtag; @@ -121,55 +97,40 @@ tree->SetBranchAddress("fACurr",fACurr); tree->SetBranchAddress("fGain20mV",fGain20mV); tree->SetBranchAddress("fGain30mV",fGain30mV); - tree->SetBranchAddress("fGain4mV",fGain4mV); - if (kDet == kTPC) { - tree->SetBranchAddress("fGainRT20mV",fGainRT20mV); - tree->SetBranchAddress("fGainRT30mV",fGainRT30mV); - tree->SetBranchAddress("fRT20mV",fRT20mV); - tree->SetBranchAddress("fRT30mV",fRT30mV); } - else { - tree->SetBranchAddress("fGainRT4mV",fGainRT4mV); - tree->SetBranchAddress("fRT4mV",fRT4mV); - } - + tree->SetBranchAddress("fGainRT20mV",fGainRT20mV); + tree->SetBranchAddress("fGainRT30mV",fGainRT30mV); + tree->SetBranchAddress("fRT20mV",fRT20mV); + tree->SetBranchAddress("fRT30mV",fRT30mV); tree->SetBranchAddress("fPed20mV",fPed20mV); tree->SetBranchAddress("fPed30mV",fPed30mV); - tree->SetBranchAddress("fPed4mV",fPed4mV); tree->SetBranchAddress("fRms20mV",fRms20mV); tree->SetBranchAddress("fRms30mV",fRms30mV); - tree->SetBranchAddress("fRms4mV",fRms4mV); tree->SetBranchAddress("fPedAna20mV",fPedAna20mV); tree->SetBranchAddress("fPedAna30mV",fPedAna30mV); - tree->SetBranchAddress("fPedAna4mV",fPedAna4mV); tree->SetBranchAddress("fRmsAna20mV",fRmsAna20mV); tree->SetBranchAddress("fRmsAna30mV",fRmsAna30mV); - tree->SetBranchAddress("fRmsAna4mV",fRmsAna4mV); tree->SetBranchAddress("fX20mVeven",&fX20mVeven); tree->SetBranchAddress("fX20mVodd",&fX20mVodd); tree->SetBranchAddress("fX30mVeven",&fX30mVeven); tree->SetBranchAddress("fX30mVodd",&fX30mVodd); - tree->SetBranchAddress("fX4mVeven",&fX4mVeven); - tree->SetBranchAddress("fX4mVodd",&fX4mVodd); tree->SetBranchAddress("iSync",iSync); tree->SetBranchAddress("iDFT",&iDFT); tree->SetBranchAddress("iJtag",&iJtag); tree->SetBranchAddress("iMem",&iMem); tree->SetBranchAddress("fRingOsc",&fRingOsc); tree->SetBranchAddress("i2cErr",&i2cErr); - if (kDet == kTPC) { - tree->SetBranchAddress("iSync2",iSync2); - tree->SetBranchAddress("iMem2",&iMem2); - tree->SetBranchAddress("fRingOsc2",&fRingOsc2); - tree->SetBranchAddress("i2cErr2",&i2cErr2); - tree->SetBranchAddress("fPed20mV2",fPed20mV2); - tree->SetBranchAddress("fPed30mV2",fPed30mV2); - tree->SetBranchAddress("fRms20mV2",fRms20mV2); - tree->SetBranchAddress("fRms30mV2",fRms30mV2); - tree->SetBranchAddress("fPedAna20mV2",fPedAna20mV2); - tree->SetBranchAddress("fPedAna30mV2",fPedAna30mV2); - tree->SetBranchAddress("fRmsAna20mV2",fRmsAna20mV2); - tree->SetBranchAddress("fRmsAna30mV2",fRmsAna30mV2); - } + tree->SetBranchAddress("iSync2",iSync2); + tree->SetBranchAddress("iMem2",&iMem2); + tree->SetBranchAddress("fRingOsc2",&fRingOsc2); + tree->SetBranchAddress("i2cErr2",&i2cErr2); + tree->SetBranchAddress("fPed20mV2",fPed20mV2); + tree->SetBranchAddress("fPed30mV2",fPed30mV2); + tree->SetBranchAddress("fRms20mV2",fRms20mV2); + tree->SetBranchAddress("fRms30mV2",fRms30mV2); + tree->SetBranchAddress("fPedAna20mV2",fPedAna20mV2); + tree->SetBranchAddress("fPedAna30mV2",fPedAna30mV2); + tree->SetBranchAddress("fRmsAna20mV2",fRmsAna20mV2); + tree->SetBranchAddress("fRmsAna30mV2",fRmsAna30mV2); tree->SetBranchAddress("iErrCode",&iErrCode); tree->SetBranchAddress("iRCode",&iRCode); @@ -188,18 +149,13 @@ int totDiffTimeMin = diffTimeMin; cout << " diffTime : sec " << diffTimeSec << " min " << diffTimeMin << endl; - const int kNReturnCodes = 7; // negative values for not used ones - const int kReturnCode[kNReturnCodes] = { 0, -1, 2, -3, -4, 5, 6}; - const char *kReturnCodeStr[] = {"OK", "", "Bad2", "", "", "C1", "C2"}; - const char *kReturnCodeDescStr[] = {"Green", "", "Discard", "", "", "Retest", "Spare"}; - + const int kNSta = 2; const int kNErrBits = 15; // check for 15 different errors const char *kBitStr[] = { "FileCount", "VRef", "ACurr", "Sync", // 0x1, 0x2, 0x4, 0x8 "PedAna", "RmsAna", "Gain", "RiseTime", // 0x10, 0x20, 0x40, 0x80 "Xtalk", "RingOsc", "i2c", "Jtag", // 0x100, 0x200, 0x400, 0x800 "Mem", "DFT", "BitCheck" // 0x1000, 0x2000, 0x4000 }; - const int kFirstErrBit = 2; const int kFirstErrBitVal = 2; @@ -208,14 +164,7 @@ TGraphErrors *gGainChan[kNSta][kNChan]; int nGainChan[kNSta][kNChan] = {0}; - TH2F *hGainV750[kNSta]; - TH2F *hGainRTV750[kNSta]; - TH2F *hRTV750[kNSta]; - TH2F *hPedV750[kNSta]; - TH2F *hRmsV750[kNSta]; - - TH2F *hRmsGain[kNSta]; - TH2F *hRmsGainRT[kNSta]; + TH2F *hGainRms[kNSta]; TH2F *hGainGainRT[kNSta]; TH2F *hRTGain[kNSta]; TH2F *hRTGainRT[kNSta]; @@ -232,26 +181,8 @@ int nFailBit[kNSta][kNErrBits] = {0}; int nFailChan[kNSta][kNChan] = {0}; - int nReturnCode[kNSta][kNReturnCodes] = {0}; - - const float kMinV750 = 0.7; - const float kMaxV750 = 0.85; - const float kMinRmsPlot = 0.0; - const float kMaxRmsPlot = 2.0; - float kMinGainPlot = 17.5; - float kMaxGainPlot = 22.5; - float kMinRTPlot = 150; - float kMaxRTPlot = 200; - if (kDet == kMuCh) { - kMinGainPlot = 2.0; - kMaxGainPlot = 6.0; - kMinRTPlot = 250; - kMaxRTPlot = 400; - } - int ista = 0; int ibit = 0; - int iretcode = 0; int ichan = 0; for (ista=0; istaSetTitle( Form("Gain vs Time - Station %d Chan %d", ista+1, ichan) ); nGainChan[ista][ichan] = 0; } - - hGainV750[ista] = new TH2F( Form("hGainV750Sta%d", ista+1), - Form("Gain vs V750 - Station %d", ista+1), - 200, kMinV750, kMaxV750, - 200, kMinGainPlot, kMaxGainPlot); - - hGainRTV750[ista] = new TH2F( Form("hGainRTV750Sta%d", ista+1), - Form("GainRT vs V750 - Station %d", ista+1), - 200, kMinV750, kMaxV750, - 200, kMinGainPlot, kMaxGainPlot); - - hRTV750[ista] = new TH2F( Form("hRTV750Sta%d", ista+1), - Form("RiseTime vs V750 - Station %d", ista+1), - 200, kMinV750, kMaxV750, - 200, kMinRTPlot, kMaxRTPlot ); - - hPedV750[ista] = new TH2F( Form("hPedV750Sta%d", ista+1), - Form("Ped vs V750 - Station %d", ista+1), - 200, kMinV750, kMaxV750, - 151, -0.5, 150.5 ); - - hRmsV750[ista] = new TH2F( Form("hRmsV750Sta%d", ista+1), - Form("Rms vs V750 - Station %d", ista+1), - 200, kMinV750, kMaxV750, - 200, kMinRmsPlot, kMaxRmsPlot); - - // - hRmsGain[ista] = new TH2F( Form("hRmsGainSta%d", ista+1), - Form("Rms vs Gain - Station %d", ista+1), - 200, kMinGainPlot, kMaxGainPlot, - 200, kMinRmsPlot, kMaxRmsPlot); - - hRmsGainRT[ista] = new TH2F( Form("hRmsGainRTSta%d", ista+1), - Form("Rms vs GainRT - Station %d", ista+1), - 200, kMinGainPlot, kMaxGainPlot, - 200, kMinRmsPlot, kMaxRmsPlot); + hGainRms[ista] = new TH2F( Form("hGainRmsSta%d", ista+1), + Form("Gain vs Rms - Station %d", ista+1), + 200, 0, 2, + 200, 17.5, 22.5 ); hGainGainRT[ista] = new TH2F( Form("hGainGainRTSta%d", ista+1), Form("Gain vs GainRT - Station %d", ista+1), - 200, kMinGainPlot, kMaxGainPlot, - 200, kMinGainPlot, kMaxGainPlot); + 200, 17.5, 22.5, + 200, 17.5, 22.5 ); hRTGain[ista] = new TH2F( Form("hRTGainSta%d", ista+1), Form("RiseTime vs Gain - Station %d", ista+1), - 200, kMinGainPlot, kMaxGainPlot, - 200, kMinRTPlot, kMaxRTPlot ); + 200, 17.5, 22.5, + 200, 150, 200 ); hRTGainRT[ista] = new TH2F( Form("hRTGainRTSta%d", ista+1), - Form("RiseTime vs GainRT - Station %d", ista+1), - 200, kMinGainPlot, kMaxGainPlot, - 200, kMinRTPlot, kMaxRTPlot ); + Form("RiseTime vs GainRT - Station %d", ista+1), + 200, 17.5, 22.5, + 200, 150, 200 ); hRTRms[ista] = new TH2F( Form("hRTRmsSta%d", ista+1), Form("RiseTime vs Rms - Station %d", ista+1), - 200, kMinRmsPlot, kMaxRmsPlot, - 200, kMinRTPlot, kMaxRTPlot ); + 200, 0, 2, + 200, 150, 200 ); } int minChip = 999999; @@ -380,43 +275,27 @@ if (fRmsAna20mV2[ichan] < fRmsAna20mV[ichan]) mynoise = fRmsAna20mV2[ichan]; } - float mygain = fGain20mV[ichan]; - float mygainRT = fGainRT20mV[ichan]; - float myRT = fRT20mV[ichan]; - if (kDet == kMuCh) { - mygain = fGain4mV[ichan]; - mygainRT = fGainRT4mV[ichan]; - myRT = fRT4mV[ichan]; - } - // if ( (mynoisekMaxRms) ) nChanRmsErr++; if ( (mynoise>kMaxRms) ) nChanRmsErr++; if (kTimeFormat) { gRmsChan[ista][ichan]->SetPoint(nRmsChan[ista][ichan], mytime, mynoise); - gGainChan[ista][ichan]->SetPoint(nGainChan[ista][ichan], mytime, mygain); + gGainChan[ista][ichan]->SetPoint(nGainChan[ista][ichan], mytime, fGain20mV[ichan]); } else { gRmsChan[ista][ichan]->SetPoint(nRmsChan[ista][ichan], diffTimeMin, mynoise); - gGainChan[ista][ichan]->SetPoint(nGainChan[ista][ichan], diffTimeMin, mygain); + gGainChan[ista][ichan]->SetPoint(nGainChan[ista][ichan], diffTimeMin, fGain20mV[ichan]); } gRmsChan[ista][ichan]->SetPointError(nRmsChan[ista][ichan], 0.3, 0.01); nRmsChan[ista][ichan]++; gGainChan[ista][ichan]->SetPointError(nGainChan[ista][ichan], 0.3, 0.25); nGainChan[ista][ichan]++; - hGainV750[ista]->Fill(fVRef[5], mygain); - hGainRTV750[ista]->Fill(fVRef[5], mygainRT); - hRTV750[ista]->Fill(fVRef[5], mynoise); - hPedV750[ista]->Fill(fVRef[5], fPedAna20mV[ichan]); - hRmsV750[ista]->Fill(fVRef[5], fRmsAna20mV[ichan]); - - hRmsGain[ista]->Fill(mygain, mynoise); - hRmsGainRT[ista]->Fill(mygainRT, mynoise); - hGainGainRT[ista]->Fill(mygainRT, mygain); - hRTGain[ista]->Fill(mygain, myRT); - hRTGainRT[ista]->Fill(mygainRT, myRT); - hRTRms[ista]->Fill(mynoise, myRT); + hGainRms[ista]->Fill(mynoise, fGain20mV[ichan]); + hGainGainRT[ista]->Fill(fGainRT20mV[ichan], fGain20mV[ichan]); + hRTGain[ista]->Fill(fGain20mV[ichan], fRT20mV[ichan]); + hRTGainRT[ista]->Fill(fGainRT20mV[ichan], fRT20mV[ichan]); + hRTRms[ista]->Fill(mynoise, fRT20mV[ichan]); } if (nChanRmsErr>0) nFailRms++; @@ -426,11 +305,7 @@ } nTests[ista]++; - - iretcode = iRCode; - nReturnCode[ista][iretcode]++; - - if (iErrCode > kFirstErrBitVal) { // skip FileCount & VRef check + if (iErrCode > kFirstErrBitVal) { // skip FileCount & VRef checks nFail[ista]++; for (ibit=kFirstErrBit; ibit0) && ((iErrCode & 0x0008)==0) ) { // some channel issue: check pedestal, gain and rms values, and not any Sync errors int nChanErr = 0; for (ichan=0; ichankMaxPed) || - (fRmsAna20mV[ichan]kMaxRms)) || ((ichan>=30) && (fRmsAna20mV[ichan]>kMaxRms31)) ) || - (fGain20mV[ichan]kMaxGain20mV[ista]) || - ( (kDet==kMuCh) && ( (fGain4mV[ichan]kMaxGain4mV) ) ) - ) { + if ( (fPedAna20mV[ichan]kMaxPed) || + (fRmsAna20mV[ichan]kMaxRms)) || ((ichan>=30) && (fRmsAna20mV[ichan]>kMaxRms31)) ) || + (fGain20mV[ichan]kMaxGain20mV) ) { nChanErr++; } } @@ -456,7 +328,7 @@ for (ichan=0; ichankMaxPed) || (fRmsAna20mV[ichan]kMaxRms)) || ((ichan>=30) && (fRmsAna20mV[ichan]>kMaxRms31)) ) || - (fGain20mV[ichan]kMaxGain20mV[ista]) ) { + (fGain20mV[ichan]kMaxGain20mV) ) { nFailChan[ista][ichan]++; } } @@ -475,18 +347,9 @@ // report for (ista=0; ista 0) { - - int nOK = nReturnCode[ista][0]; + int nOK = nTests[ista] - nFail[ista]; float percPass = (100.0 * nOK) / nTests[ista]; - printf("\nStation %d nTests %d nPass %d -- pass rate %5.2f %% \n", ista+1, nTests[ista], nOK, percPass); - for (iretcode=0; iretcode -1) { - float perc = (100.0 * nReturnCode[ista][iretcode]) / nTests[ista]; - printf("nRCode %3d : %5.2f %% - %s (%s)\n", nReturnCode[ista][iretcode], perc, kReturnCodeStr[iretcode], kReturnCodeDescStr[iretcode]); - } - } - printf("\nStation %d nTests %d nFail %d -- pass rate %5.2f %% \n", ista+1, nTests[ista], nFail[ista], percPass); for (ibit=kFirstErrBit; ibit 0) { + float percFail = (100.0 * nFailBit[ista][ibit]) / nTests[ista]; + printf(" & %3d (%5.2f \\%%)", nFailBit[ista][ibit], percFail); + } + } + printf("\\\\ \n"); + } + printf(" \\end{tabular}\n \\end{center} \n \\end{table} \n"); + printf("\nminChip %d maxChip %d\n", minChip+kChipOffset, maxChip+kChipOffset); int nTestedChips = 0; int nOKOnly = 0; @@ -629,69 +512,11 @@ c1->cd(); c1->SetLogz(0); - - hGainV750[ista]->GetXaxis()->SetTitle("V750 (V)"); - hGainV750[ista]->GetYaxis()->SetTitle("Gain (mV/fC)"); - hGainV750[ista]->Draw("colz"); + hGainRms[ista]->GetXaxis()->SetTitle("RMS (ADC)"); + hGainRms[ista]->GetYaxis()->SetTitle("Gain (mV/fC)"); + hGainRms[ista]->Draw("colz"); c1->Modified(); - sprintf(name, "png/%s/liny/gain_vs_V750_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/gain_vs_V750_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - hGainRTV750[ista]->GetXaxis()->SetTitle("V750 (V)"); - hGainRTV750[ista]->GetYaxis()->SetTitle("GainRT (mV/fC)"); - hGainRTV750[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/gainrt_vs_V750_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/gainrt_vs_V750_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - hRTV750[ista]->GetXaxis()->SetTitle("V750 (V)"); - hRTV750[ista]->GetYaxis()->SetTitle("RiseTime (ns)"); - hRTV750[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/risetime_vs_V750_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/risetime_vs_V750_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - hPedV750[ista]->GetXaxis()->SetTitle("V750 (V)"); - hPedV750[ista]->GetYaxis()->SetTitle("Ped (ADC)"); - hPedV750[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/ped_vs_V750_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/ped_vs_V750_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - hRmsV750[ista]->GetXaxis()->SetTitle("V750 (V)"); - hRmsV750[ista]->GetYaxis()->SetTitle("RMS (ADC)"); - hRmsV750[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/rms_vs_V750_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/rms_vs_V750_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - // - hRmsGain[ista]->GetYaxis()->SetTitle("RMS (ADC)"); - hRmsGain[ista]->GetXaxis()->SetTitle("Gain (mV/fC)"); - hRmsGain[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/rms_vs_gain_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/rms_vs_gain_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); - - hRmsGainRT[ista]->GetYaxis()->SetTitle("RMS (ADC)"); - hRmsGainRT[ista]->GetXaxis()->SetTitle("GainRT (mV/fC)"); - hRmsGainRT[ista]->Draw("colz"); - c1->Modified(); - sprintf(name, "png/%s/liny/rms_vs_gainrt_sta%d.png", desc, ista+1); - c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/rms_vs_gainrt_sta%d.pdf", desc, ista+1); + sprintf(name, "png/%s/liny/gain_vs_rms_sta%d.png", desc, ista+1); c1->SaveAs(name); hGainGainRT[ista]->GetXaxis()->SetTitle("GainRT (mV/fC)"); @@ -700,8 +525,6 @@ c1->Modified(); sprintf(name, "png/%s/liny/gain_vs_gainrt_sta%d.png", desc, ista+1); c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/gain_vs_gainrt_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); hRTGain[ista]->GetXaxis()->SetTitle("Gain (mV/fC)"); hRTGain[ista]->GetYaxis()->SetTitle("RiseTime (ns)"); @@ -709,8 +532,6 @@ c1->Modified(); sprintf(name, "png/%s/liny/risetime_vs_gain_sta%d.png", desc, ista+1); c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/risetime_vs_gain_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); hRTGainRT[ista]->GetXaxis()->SetTitle("GainRT (mV/fC)"); hRTGainRT[ista]->GetYaxis()->SetTitle("RiseTime (ns)"); @@ -718,8 +539,6 @@ c1->Modified(); sprintf(name, "png/%s/liny/risetime_vs_gainrt_sta%d.png", desc, ista+1); c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/risetime_vs_gainrt_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); hRTRms[ista]->GetXaxis()->SetTitle("RMS (ADC)"); hRTRms[ista]->GetYaxis()->SetTitle("RiseTime (ns)"); @@ -727,8 +546,6 @@ c1->Modified(); sprintf(name, "png/%s/liny/risetime_vs_rms_sta%d.png", desc, ista+1); c1->SaveAs(name); - sprintf(name, "pdf/%s/liny/risetime_vs_rms_sta%d.pdf", desc, ista+1); - c1->SaveAs(name); c1->SetLogz(0);