#include <SexyPedAna.h>
|
|
Definition at line 41 of file SexyPedAna.cxx. References ferrorNot2, fFile, gCheckError2, gComparePedTable, gCompareSparTable, gDebugTable, gDoOutliersAnalysis, gOutputPedestalTable, gOutputSparsTable, gPlotEachPage, gPlots, gQuickPlots, gSparsFactor, gTolerancePedTable, gToleranceSparTable, gTruncLimit, and gTruncType. Referenced by InstantiateMe(). 00041 {
00042
00043 //cout << "I got to the Constructor... Yeah!!" << endl;
00044
00045 gTruncType = 2;
00046 gSparsFactor = 5;
00047 gTruncLimit = 5;
00048
00049 gPlotEachPage = false;
00050 gPlots = true;
00051 gQuickPlots = false; //Basic plots ONLY!!!
00052
00053 gOutputPedestalTable = false;
00054 gOutputSparsTable = false;
00055 gDebugTable = false;
00056
00057 gCheckError2 = true;
00058
00059 gDoOutliersAnalysis = true;
00060
00061 gComparePedTable = true;
00062 gCompareSparTable = true;
00063 gTolerancePedTable = 1;
00064 gToleranceSparTable = 10;
00065
00066 fFile = 0;
00067 gErrorIgnoreLevel = 1;
00068 gStyle->SetOptStat(111111);
00069 gStyle->SetPalette(1);
00070
00071 //Counter of exceptions to error=2 for pedestal data:
00072 ferrorNot2 = 0;
00073 }
|
|
|
Definition at line 30 of file SexyPedAna.cxx. References fReportFile, and mySP. 00030 {
00031
00032 mySP.clear();
00033
00034 fReportFile.close();
00035
00036 delete mySexyPedAna;
00037 }
|
|
|
Definition at line 251 of file SexyPedAna.cxx. References ferror, ferrorNot2, fReportFile, gCheckError2, and ReportThisGuy(). Referenced by GetSPData(). 00251 {
00252
00253 //Pedestal Data has ALWAYS error=2 associated
00254 if(gCheckError2 && ferror!=2) {
00255 fReportFile << "\tFound entry with errro!=2.(" << "Exception #: " << ferrorNot2 << ")." << endl;
00256 this->ReportThisGuy();
00257 ferrorNot2++;
00258 }
00259
00260 //Too high/low pedestal values:
00261 if(fadc < ADCMIN || fadc > ADCMAX) {
00262 fReportFile << "\tFound pedestal with ADC too high/low" << endl;
00263 this->ReportThisGuy();
00264 }
00265
00266 return;
00267 }
|
|
|
Definition at line 665 of file SexyPedAna.cxx. References SexyPedestal::EncriptMeAKey(), fDeltaCompMean_h, fDeltaMean_h, fDeltaSparc_h, fDeltaSparcMap_h, fPedDAQTree, fReportFile, fSparDAQTree, GetTPMTsparTh(), gTolerancePedTable, gToleranceSparTable, MSG, mySP, pedadc, pedcrate, pedva, pedvach, pedvarc, pedvfb, pedvmm, sparadc, sparcrate, sparva, sparvach, sparvarc, sparvfb, and sparvmm. Referenced by DoOfflineAnalysis(). 00665 {
00666
00667 if(gComparePedTable) {
00668 for(Int_t ientry = 0; ientry < fPedDAQTree->GetEntries(); ientry++) {
00669 Int_t suc = fPedDAQTree->GetEvent(ientry);
00670 if(suc<0) {
00671 MSG("SexyPedAna",Msg::kInfo) << "Failed: " << suc << "\t" << ientry << endl;
00672 continue;
00673 }
00674
00675 Int_t key = SexyPedestal::EncriptMeAKey(pedcrate,
00676 pedvarc,
00677 pedvmm,
00678 pedvfb,
00679 pedva,
00680 pedvach );
00681 Int_t pedSP = -1;
00682
00683 if(mySP[key]) pedSP = (Int_t)mySP[key]->GetRawMean();
00684 else pedSP = 1;
00685
00686 MSG("SexyPedAna",Msg::kInfo) << "PedComp: "
00687 << pedSP
00688 << "-"
00689 << pedadc
00690 << "-"
00691 << pedSP - pedadc
00692 << endl;
00693
00694 fDeltaMean_h->Fill(Int_t(pedSP - pedadc));
00695
00696 fDeltaCompMean_h->Fill(6*3*2*pedcrate+6*2*pedvarc+2*pedvmm+pedvfb,
00697 30*pedva+pedvach,
00698 Int_t(pedSP - pedadc));
00699
00700 //If discrepancies-> Report it:
00701 if(pedadc>1
00702 &&
00703 //mySP[key]->GetRawMean()> 0
00704 //&&
00705 TMath::Abs(pedSP-pedadc)>gTolerancePedTable) {
00706
00707 fReportFile << "\tDiscrepacy between pedestal values > "
00708 << gTolerancePedTable
00709 << " ADCs." << endl
00710 << "\t\tmyPed-tablePed ("
00711 << pedSP << "-" << pedadc <<") =\t"
00712 << pedSP - pedadc
00713 << " @ "
00714 << pedcrate <<"_"
00715 << pedvarc <<"_"
00716 << pedvmm <<"_"
00717 << pedvfb <<"_"
00718 << pedva <<"_"
00719 << pedvach << endl;
00720 }
00721 }
00722 }
00723
00724 if(gCompareSparTable) {
00725 for(Int_t ientry = 0; ientry < fSparDAQTree->GetEntries(); ientry++) {
00726 Int_t suc = fSparDAQTree->GetEvent(ientry);
00727 if(suc<0) {
00728 MSG("SexyPedAna",Msg::kInfo) << "Failed: " << suc << "\t" << ientry << endl;
00729 continue;
00730 }
00731
00732 Int_t key = SexyPedestal::EncriptMeAKey(sparcrate,
00733 sparvarc,
00734 sparvmm,
00735 sparvfb,
00736 sparva,
00737 sparvach );
00738 Int_t sparThreshold = -1;
00739 Float_t rms = -1;
00740 if( mySP.find(key) == mySP.end() ) {
00741 //if(!mySP[key]) {
00742 sparThreshold = 16383;
00743 rms = 0.5;
00744 }
00745 else {
00746 //TPMT channel:
00747 if(mySP[key]->IsTPMTchannel()) {
00748 sparThreshold = this->GetTPMTsparTh();
00749 rms = 0.5;
00750 }
00751 //(*,*,*,*,*,0) && (*,*,*,*,2,18) || (*,*,*,*,*,1,19,20,21)
00752 else if(mySP[key]->SparsifiedChannel()
00753 ||
00754 mySP[key]->IsCMchannel()) {
00755 sparThreshold = 16383;
00756 rms = 0.5;
00757 }
00758 //PMT channel:
00759 else {
00760 switch(gTruncType) {
00761 case 1:
00762 sparThreshold = (Int_t) mySP[key]->GetSparsLevelT1();
00763 rms = mySP[key]->GetRawRms();
00764 break;
00765 case 2:
00766 sparThreshold = (Int_t) mySP[key]->GetSparsLevelT2();
00767 rms = mySP[key]->GetRawRms();
00768 break;
00769 }
00770 }
00771 }
00772
00773 MSG("SexyPedAna",Msg::kInfo) << "SparComp: "
00774 << sparThreshold
00775 << "-"
00776 << sparadc
00777 << "-"
00778 << sparThreshold - sparadc
00779 << endl;
00780
00781 if(TMath::Abs(sparThreshold - sparadc) < 15000) {
00782
00783 fDeltaSparc_h->Fill(Int_t(sparThreshold-sparadc));
00784
00785 fDeltaSparcMap_h->Fill(6*3*2*sparcrate+6*2*sparvarc+2*sparvmm+sparvfb,
00786 30*sparva+sparvach,
00787 Int_t(sparThreshold-sparadc));
00788
00789 if( rms >0 && TMath::Abs(sparThreshold - sparadc) > gToleranceSparTable) {
00790
00791 fReportFile << "\tDiscrepacy between sparsification thresholds values > "
00792 << gToleranceSparTable
00793 << " ADCs." << endl
00794 << "\t\tmySparTh-tableSparTh ("
00795 << sparThreshold << "-" << sparadc <<") =\t"
00796 << sparThreshold - sparadc
00797 << " @ "
00798 << sparcrate <<"_"
00799 << sparvarc <<"_"
00800 << sparvmm <<"_"
00801 << sparvfb <<"_"
00802 << sparva <<"_"
00803 << sparvach << endl;
00804 }
00805 }
00806 //else cout << "found one!" << endl;
00807 }
00808 }
00809 return;
00810 }
|
|
|
Definition at line 194 of file SexyPedAna.cxx. References Form(), fReportFile, and frun. 00194 {
00195
00196 string fileName = "SexyPedestalReport_";
00197 fileName += Form("%i",frun);
00198
00199 fReportFile.open(fileName.c_str(),ofstream::out | ofstream::app);
00200
00201 return;
00202 }
|
|
|
Definition at line 118 of file SexyPedAna.cxx. References CompareDAQTables(), gCompareSparTable, GetPlots(), GetSPData(), gOutputPedestalTable, gQuickPlots, gSparsFactor, gTruncLimit, gTruncType, InitAnaVariables(), LoadDAQTrees(), LoadPedTree(), MSG, OutputTables(), ProcessSexyPedestals(), SexyPedestal::SetSparsFactor(), SexyPedestal::SetTruncFactor(), and SexyPedestal::SetTruncFlag(). 00118 {
00119
00120 //Configure SexyPedestals:
00121 SexyPedestal::SetTruncFlag(gTruncType);
00122 SexyPedestal::SetTruncFactor(gTruncLimit);
00123 SexyPedestal::SetSparsFactor(gSparsFactor);
00124 //Do not do quick plots:
00125 this->gQuickPlots = false;
00126
00127 MSG("SexyPedAna",Msg::kInfo) << "\tGetting SexyPedestal TTrees..." << endl;
00128 Int_t success = this->LoadPedTree();
00129 if(!success) {
00130 MSG("SexyPedAna",Msg::kError) << "ERROR: Input TTree could not be loaded." << endl;
00131 return;
00132 }
00133 //Get the pedestals from the SexyPedReco TTree:
00134 MSG("SexyPedAna",Msg::kInfo) << "\tGetting data from SexyPedestal TTrees..." << endl;
00135 Int_t SPcounter = this->GetSPData(entriesMax);
00136 MSG("SexyPedAna",Msg::kInfo) << "\t\tGot "<< SPcounter << " SexyPedestals! " << endl;
00137
00138 MSG("SexyPedAna",Msg::kInfo) << "\tInitialising analysis variables..." << endl;
00139 this->InitAnaVariables();
00140
00141 MSG("SexyPedAna",Msg::kInfo) << "\tAnalysis starts...\n\n\tGetting MEANs and RMSs..." << endl;
00142 this->ProcessSexyPedestals();
00143
00144 delete fPedRawTree;
00145
00146 if(gCompareSparTable || gComparePedTable) {
00147 MSG("SexyPedAna",Msg::kInfo) << "\tComparing SexyPedestals and previous DAQ Tables..." << endl;
00148 this->LoadDAQTrees();
00149 this->CompareDAQTables();
00150 }
00151
00152 delete fPedDAQTree;
00153 delete fSparDAQTree;
00154
00155 //Output Tables into files (crate-wise):
00156 if(gOutputPedestalTable || gOutputSparsTable) {
00157 MSG("SexyPedAna",Msg::kInfo) << "\tOutputting a la online Tables..." << endl;
00158 this->OutputTables();
00159 }
00160
00161 //MSG("SexyPedAna",Msg::kInfo) << "\tReporting..." << endl;
00162 //this->Report();
00163
00164 MSG("SexyPedAna",Msg::kInfo) << "\tEt voila! Plotting at last...\n" << endl;
00165 if(gPlots) this->GetPlots();
00166 }
|
|
|
Definition at line 77 of file SexyPedAna.cxx. References gCheckError2, gComparePedTable, gCompareSparTable, gDoOutliersAnalysis, GetPlots(), gOutputPedestalTable, gOutputSparsTable, gPlots, gQuickPlots, gSparsFactor, gTruncLimit, gTruncType, InitAnaVariables(), MSG, OutputTables(), and ProcessSexyPedestals(). Referenced by SexyPedReco::EndJob(). 00077 {
00078
00079
00080 //
00081 // Configure SexyPedAna options:
00082 //
00083 this->gOutputSparsTable = true;
00084 this->gOutputPedestalTable = false;
00085 this->gComparePedTable = false;
00086 this->gCompareSparTable = false;
00087 this->gCheckError2 = false;
00088 this->gDoOutliersAnalysis = false;
00089 this->gPlots = true;
00090 this->gQuickPlots = true;
00091
00092 //Truncation options:
00093 this->gTruncType = 2; //1=(based on raw sigma) & 2=(studied fixed values)
00094 this->gTruncLimit = 5; //Truncation level (for method 1 only)
00095 this->gSparsFactor = 5; //Number of sigmas for sparsification threshold
00096
00097 //Execute function to get SexyPedestal analysis:
00098 MSG("SexyPedAna",Msg::kInfo) << "\tInitialising analysis variables..." << endl;
00099 this->InitAnaVariables();
00100
00101
00102 MSG("SexyPedAna",Msg::kInfo) << "\tAnalysis starts here...\n\n\tGetting MEANs and RMSs..." << endl;
00103 this->ProcessSexyPedestals();
00104
00105 if(gOutputPedestalTable || gOutputSparsTable) {
00106 MSG("SexyPedAna",Msg::kInfo) << "\tOutputing SexyPedestal Tables (a la online)..." << endl;
00107 this->OutputTables();
00108 }
00109
00110 MSG("SexyPedAna",Msg::kInfo) << "\tEt voila! Plotting at last...\n" << endl;
00111 if(this->gPlots) this->GetPlots();
00112
00113 return;
00114 }
|
|
|
Definition at line 1584 of file SexyPedAna.cxx. 01584 {
01585
01586 Int_t lowestBin = 0;
01587 Int_t allBin = histogram->GetNbinsX();
01588
01589 for (Int_t iBin = 1; iBin <= allBin; iBin++) {
01590 if ( histogram->GetBinContent( iBin ) > 0 ) {
01591 lowestBin = iBin;
01592 break;
01593 }
01594 }
01595 return histogram->GetBinCenter( lowestBin );
01596 }
|
|
|
Definition at line 1602 of file SexyPedAna.cxx. 01602 {
01603
01604 Int_t allBin = histogram->GetNbinsX();
01605 Int_t highestBin = allBin;
01606
01607 for (Int_t iBin = allBin; iBin >= 1; iBin--) {
01608 if( histogram->GetBinContent( iBin ) > 0 ) {
01609 highestBin = iBin;
01610 break;
01611 }
01612 }
01613 return histogram->GetBinCenter( highestBin );
01614 }
|
|
|
Definition at line 839 of file SexyPedAna.cxx. References fDeltaCompMean_h, fDeltaMean_h, fDeltaMeanMapT_h, fDeltaRmsMapT_h, fDeltaSparc_h, fDeltaSparcMap_h, fEntriesMap_h, fErrorMap_h, fLines, fMeanMap_h, fMeanRaw_h, Form(), fOutDetMap_h, fOutMap_h, fPerTrunc_h, fplotFile_c, fRmsCM_h, fRmsMap_h, fRmsMapT_h, fRmsPINHG_h, fRmsPINLG_h, fRmsPMT_h, fRmsRaw_h, fRmsRawCM_h, fRmsRawPINHG_h, fRmsRawPINLG_h, fRmsRawPMT_h, fRmsT1_h, fRmsT2_h, frun, fSparc_h, fSparcHGPIN_h, fSparcLGPIN_h, fSparcMap_h, fSparcRaw_h, fTruncOccCM_h, fTruncOccVA_h, gPlotEachPage, gSparsFactor, gSystem(), gTruncType, and MSG. Referenced by DoOfflineAnalysis(), and DoOnlineAnalysis(). 00839 {
00840
00841 //Drawing in File:
00842 fplotFile_c = new TCanvas("plotFile_c","",1200,800);
00843 TLegend* leg = new TLegend(0.4,0.6,0.89,0.89);
00844
00845 Int_t plotCounter = 1;
00846
00847 string bookName = "SexyPedPlots_";
00848 bookName += Form("t%i_s%i_%i.ps",gTruncType,gSparsFactor,frun);
00849
00850 string bookNameStart = bookName + "(";
00851 string bookNameEnd = bookName + ")";
00852
00853 string plotNameEps;
00854 string plotNameGif;
00855
00856 //Create directory
00857 if(gPlotEachPage) {
00858 plotNameGif = gSystem->pwd();
00859 plotNameGif += "SexyPedestalPlotsAll_";
00860 plotNameGif += Form("%i/",frun);
00861
00862 MSG("SexyPedAna",Msg::kInfo) << "Plots will be @ " << plotNameGif.c_str() << endl;
00863
00864 plotNameEps = plotNameGif;
00865
00866 Int_t suc = gSystem->MakeDirectory( plotNameGif.c_str() );
00867
00868 if(suc==-1) {
00869 MSG("SexyPedAna",Msg::kError) << endl << "ERROR: Directory could not be created" << endl << endl;
00870 gPlotEachPage = false;
00871 }
00872 }
00873
00874
00875 //Means
00876 fplotFile_c->cd();
00877 gPad->SetLogy(0);
00878 fMeanRaw_h->SetXTitle("Pedestal Means [ADC]");
00879 fMeanRaw_h->Draw();
00880 fplotFile_c->Update();
00881 fplotFile_c->Print(bookNameStart.c_str());
00882 if(gPlotEachPage) {
00883 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
00884 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
00885
00886 fplotFile_c->Print(plotNameGif.c_str());
00887 fplotFile_c->Print(plotNameEps.c_str());
00888 }
00889 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
00890 plotCounter++;
00891 fplotFile_c->Clear();
00892
00893
00894 if(!gQuickPlots) {
00895 //RMS: truncation vs no truncation:
00896 fplotFile_c->cd();
00897 gPad->SetLogy(1);
00898 fRmsRaw_h->SetXTitle("Pedestal RMSs [ADC]");
00899 fRmsRaw_h->Draw();
00900 switch(gTruncType) {
00901 case 1:
00902 fRmsT1_h->SetLineColor(4);
00903 fRmsT1_h->Draw("same");
00904 break;
00905 case 2:
00906 fRmsT2_h->SetLineColor(4);
00907 fRmsT2_h->Draw("same");
00908 break;
00909 }
00910 fplotFile_c->Update();
00911 fplotFile_c->Print(bookName.c_str());
00912 if(gPlotEachPage) {
00913 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
00914 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
00915
00916 fplotFile_c->Print(plotNameGif.c_str());
00917 fplotFile_c->Print(plotNameEps.c_str());
00918 }
00919 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
00920 plotCounter++;
00921 fplotFile_c->Clear();
00922 }
00923
00924
00925 //non-truncated RMS - populations:
00926 fplotFile_c->cd();
00927 gPad->SetLogy(1);
00928 fRmsRaw_h->SetStats(0);
00929 fRmsRaw_h->SetXTitle("Non-truncated Pedestal RMSs [ADC]");
00930 fRmsRaw_h->SetLineColor(1);
00931 fRmsRaw_h->Draw();
00932 fRmsRawPMT_h->SetLineColor(4);
00933 fRmsRawPMT_h->Draw("same");
00934 fRmsRawCM_h->SetLineColor(3);
00935 fRmsRawCM_h->Draw("same");
00936 fRmsRawPINLG_h->SetLineColor(6);
00937 fRmsRawPINLG_h->Draw("same");
00938 fRmsRawPINHG_h->SetLineColor(15);
00939 fRmsRawPINHG_h->Draw("same");
00940 leg->AddEntry(fRmsRaw_h,"All Channels","l");
00941 leg->AddEntry(fRmsRawPMT_h,"PMT Channels","l");
00942 leg->AddEntry(fRmsRawPINHG_h,"HIGH GAIN PINs","l");
00943 leg->AddEntry(fRmsRawPINLG_h,"LOW GAIN PINs","l");
00944 leg->AddEntry(fRmsRawCM_h,"CM Channels","l");
00945 //leg->SetHeader("The Legend Title");
00946 leg->Draw("same");
00947 fplotFile_c->Update();
00948 fplotFile_c->Print(bookName.c_str());
00949 if(gPlotEachPage) {
00950 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
00951 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
00952
00953 fplotFile_c->Print(plotNameGif.c_str());
00954 fplotFile_c->Print(plotNameEps.c_str());
00955 }
00956 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
00957 plotCounter++;
00958 fplotFile_c->Clear();
00959
00960
00961
00962 //truncated RMS - populations:
00963 fplotFile_c->cd();
00964 gPad->SetLogy(1);
00965 switch (gTruncType) {
00966 case 1:
00967 fRmsT1_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
00968 fRmsT1_h->SetLineColor(1);
00969 fRmsT1_h->SetStats(0);
00970 fRmsT1_h->Draw();
00971 break;
00972 case 2:
00973 fRmsT2_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
00974 fRmsT2_h->SetLineColor(1);
00975 fRmsT2_h->SetStats(0);
00976 fRmsT2_h->Draw();
00977 break;
00978 }
00979 fRmsPMT_h->SetLineColor(4);
00980 fRmsPMT_h->Draw("same");
00981 fRmsCM_h->SetLineColor(3);
00982 fRmsCM_h->Draw("same");
00983 fRmsPINLG_h->SetLineColor(6);
00984 fRmsPINLG_h->Draw("same");
00985 fRmsPINHG_h->SetLineColor(15);
00986 fRmsPINHG_h->Draw("same");
00987 leg->Clear();
00988 switch (gTruncType) {
00989 case 1:
00990 leg->AddEntry(fRmsT1_h,"All Channels","l");
00991 break;
00992 case 2:
00993 leg->AddEntry(fRmsT2_h,"All Channels","l");
00994 break;
00995 }
00996 leg->AddEntry(fRmsPMT_h,"PMT Channels","l");
00997 leg->AddEntry(fRmsPINHG_h,"HIGH GAIN PINs","l");
00998 leg->AddEntry(fRmsPINLG_h,"LOW GAIN PINs","l");
00999 leg->AddEntry(fRmsCM_h,"CM Channels","l");
01000 //leg->SetHeader("The Legend Title");
01001 leg->Draw("same");
01002 fplotFile_c->Update();
01003 fplotFile_c->Print(bookName.c_str());
01004 if(gPlotEachPage) {
01005 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01006 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01007
01008 fplotFile_c->Print(plotNameGif.c_str());
01009 fplotFile_c->Print(plotNameEps.c_str());
01010
01011 }
01012 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01013 plotCounter++;
01014 fplotFile_c->Clear();
01015
01016
01017 if(!gQuickPlots) {
01018 //PMTs RMSs
01019 fplotFile_c->cd();
01020 gPad->SetLogy(1);
01021 fRmsRawPMT_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
01022 fRmsRawPMT_h->SetLineColor(1);
01023 fRmsRawPMT_h->Draw();
01024 fRmsPMT_h->SetLineColor(4);
01025 fRmsPMT_h->Draw("sames");
01026 fplotFile_c->Update();
01027 fplotFile_c->Print(bookName.c_str());
01028 if(gPlotEachPage) {
01029 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01030 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01031
01032 fplotFile_c->Print(plotNameGif.c_str());
01033 fplotFile_c->Print(plotNameEps.c_str());
01034 }
01035 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01036 plotCounter++;
01037 fplotFile_c->Clear();
01038
01039
01040 //LG PIN RMSs
01041 fplotFile_c->cd();
01042 gPad->SetLogy(0);
01043 fRmsRawPINLG_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
01044 fRmsRawPINLG_h->SetLineColor(1);
01045 fRmsRawPINLG_h->Draw();
01046 fRmsPINLG_h->SetLineColor(4);
01047 fRmsPINLG_h->Draw("sames");
01048 fplotFile_c->Update();
01049 fplotFile_c->Print(bookName.c_str());
01050 if(gPlotEachPage) {
01051 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01052 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01053
01054 fplotFile_c->Print(plotNameGif.c_str());
01055 fplotFile_c->Print(plotNameEps.c_str());
01056 }
01057 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01058 plotCounter++;
01059 fplotFile_c->Clear();
01060
01061 //HG PINs RMSs
01062 fplotFile_c->cd();
01063 gPad->SetLogy(0);
01064 fRmsRawPINHG_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
01065 fRmsRawPINHG_h->SetLineColor(1);
01066 fRmsRawPINHG_h->Draw();
01067 fRmsPINHG_h->SetLineColor(4);
01068 fRmsPINHG_h->Draw("sames");
01069 fplotFile_c->Update();
01070 fplotFile_c->Print(bookName.c_str());
01071 if(gPlotEachPage) {
01072 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01073 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01074
01075 fplotFile_c->Print(plotNameGif.c_str());
01076 fplotFile_c->Print(plotNameEps.c_str());
01077 }
01078 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01079 plotCounter++;
01080 fplotFile_c->Clear();
01081
01082 //CM RMSs
01083 fplotFile_c->cd();
01084 gPad->SetLogy(1);
01085 fRmsRawCM_h->SetXTitle("Truncated Pedestal RMSs [ADC]");
01086 fRmsRawCM_h->SetLineColor(1);
01087 fRmsRawCM_h->SetMinimum(.5);
01088 fRmsRawCM_h->Draw();
01089 fRmsCM_h->SetLineColor(4);
01090 fRmsCM_h->Draw("sames");
01091 fplotFile_c->Update();
01092 fplotFile_c->Print(bookName.c_str());
01093 if(gPlotEachPage) {
01094 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01095 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01096
01097 fplotFile_c->Print(plotNameGif.c_str());
01098 fplotFile_c->Print(plotNameEps.c_str());
01099 }
01100 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01101 plotCounter++;
01102 fplotFile_c->Clear();
01103
01104
01105 //
01106 // Maps..
01107 //
01108
01109
01110 //Map of the pedestals:
01111 fplotFile_c->Clear();
01112 gPad->SetLogz(1);
01113 gPad->SetLogy(0);
01114 gPad->SetLogx(0);
01115 //fMeanMap_h->SetMinimum(.5);
01116 fMeanMap_h->SetStats(0);
01117 fMeanMap_h->Draw("colz");
01118 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01119 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01120 fLines[icrate][ivarc]->Draw("same");
01121 fplotFile_c->Update();
01122 fplotFile_c->Print(bookName.c_str());
01123 if(gPlotEachPage) {
01124 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01125 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01126
01127 fplotFile_c->Print(plotNameGif.c_str());
01128 fplotFile_c->Print(plotNameEps.c_str());
01129 }
01130 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01131 plotCounter++;
01132 fplotFile_c->Clear();
01133 }
01134
01135
01136 //Map of truncation effect on pedestal (pedestalRaw - pedestalTRUNC):
01137 fplotFile_c->Clear();
01138 gPad->SetLogy(0);
01139 gPad->SetLogx(0);
01140 gPad->SetLogz(0);
01141 fDeltaMeanMapT_h->SetStats(0);
01142 fDeltaMeanMapT_h->SetMinimum(0.1);
01143 fDeltaMeanMapT_h->Draw("colz");
01144 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01145 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01146 fLines[icrate][ivarc]->Draw("same");
01147 fplotFile_c->Update();
01148 fplotFile_c->Print(bookName.c_str());
01149 if(gPlotEachPage) {
01150 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01151 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01152
01153 fplotFile_c->Print(plotNameGif.c_str());
01154 fplotFile_c->Print(plotNameEps.c_str());
01155 }
01156 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01157 plotCounter++;
01158 fplotFile_c->Clear();
01159
01160
01161 if(!gQuickPlots) {
01162 //Map of RMSs - no truncated:
01163 fplotFile_c->Clear();
01164 gPad->SetLogy(0);
01165 gPad->SetLogx(0);
01166 gPad->SetLogz(0);
01167 //fRmsMap_h->SetMinimum(.5);
01168 fRmsMap_h->SetMaximum(25);
01169 fRmsMap_h->SetStats(0);
01170 fRmsMap_h->Draw("colz");
01171 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01172 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01173 fLines[icrate][ivarc]->Draw("same");
01174 fplotFile_c->Update();
01175 fplotFile_c->Print(bookName.c_str());
01176 if(gPlotEachPage) {
01177 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01178 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01179
01180 fplotFile_c->Print(plotNameGif.c_str());
01181 fplotFile_c->Print(plotNameEps.c_str());
01182 }
01183 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01184 plotCounter++;
01185 fplotFile_c->Clear();
01186 }
01187
01188
01189 //Map of RMSs - truncated:
01190 fplotFile_c->Clear();
01191 gPad->SetLogy(0);
01192 gPad->SetLogx(0);
01193 gPad->SetLogz(0);
01194 //fRmsMapT_h->SetMinimum(.5);
01195 //fRmsMapT_h->SetMaximum(25);
01196 fRmsMapT_h->SetStats(0);
01197 fRmsMapT_h->Draw("colz");
01198 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01199 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01200 fLines[icrate][ivarc]->Draw("same");
01201 fplotFile_c->Update();
01202 fplotFile_c->Print(bookName.c_str());
01203 if(gPlotEachPage) {
01204 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01205 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01206
01207 fplotFile_c->Print(plotNameGif.c_str());
01208 fplotFile_c->Print(plotNameEps.c_str());
01209 }
01210 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01211 plotCounter++;
01212 fplotFile_c->Clear();
01213
01214
01215 //Map of truncation effect on RMSs (RMS_RAW - RMS_TRUNC)
01216 fplotFile_c->Clear();
01217 gPad->SetLogy(0);
01218 gPad->SetLogx(0);
01219 gPad->SetLogz(0);
01220 fDeltaRmsMapT_h->SetStats(0);
01221 fDeltaRmsMapT_h->Draw("colz");
01222 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01223 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01224 fLines[icrate][ivarc]->Draw("same");
01225 fplotFile_c->Update();
01226 fplotFile_c->Print(bookName.c_str());
01227 if(gPlotEachPage) {
01228 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01229 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01230
01231 fplotFile_c->Print(plotNameGif.c_str());
01232 fplotFile_c->Print(plotNameEps.c_str());
01233 }
01234 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01235 plotCounter++;
01236 fplotFile_c->Clear();
01237
01238
01239 if(!gQuickPlots) {
01240 //Map of Entries:
01241 fplotFile_c->Clear();
01242 gPad->SetLogy(0);
01243 gPad->SetLogx(0);
01244 gPad->SetLogz(0);
01245 fEntriesMap_h->SetStats(0);
01246 fEntriesMap_h->Draw("colz");
01247 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01248 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01249 fLines[icrate][ivarc]->Draw("same");
01250 fplotFile_c->Update();
01251 fplotFile_c->Print(bookName.c_str());
01252 if(gPlotEachPage) {
01253 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01254 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01255
01256 fplotFile_c->Print(plotNameGif.c_str());
01257 fplotFile_c->Print(plotNameEps.c_str());
01258 }
01259 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01260 plotCounter++;
01261
01262
01263 //Map of errors:
01264 fplotFile_c->Clear();
01265 fplotFile_c->Clear();
01266 gPad->SetLogy(0);
01267 gPad->SetLogx(0);
01268 gPad->SetLogz(0);
01269 fErrorMap_h->SetStats(0);
01270 fErrorMap_h->Draw("colz");
01271 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01272 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01273 fLines[icrate][ivarc]->Draw("same");
01274 fplotFile_c->Update();
01275 fplotFile_c->Print(bookName.c_str());
01276 if(gPlotEachPage) {
01277 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01278 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01279
01280 fplotFile_c->Print(plotNameGif.c_str());
01281 fplotFile_c->Print(plotNameEps.c_str());
01282 }
01283 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01284 plotCounter++;
01285 fplotFile_c->Clear();
01286 }
01287
01288
01289 //Sparsification Threshold 1D:
01290 string histName;
01291 histName = "Sparsification Thresholds Histograms";
01292 histName += Form(" (%i Sigmas)",SexyPedestal::GetSparsFactor());
01293 histName += Form(" - Run %i",frun);
01294
01295 fplotFile_c->cd();
01296 gPad->SetLogy(1);
01297 fSparcRaw_h->SetXTitle("ADC Counts");
01298 fSparcRaw_h->SetTitle(histName.c_str());
01299 fSparcRaw_h->SetStats(0);
01300 fSparcRaw_h->SetLineStyle(3);
01301 fSparcRaw_h->Draw();
01302 fSparc_h->SetLineColor(4);
01303 fSparc_h->Draw("same");
01304 fSparcLGPIN_h->SetLineColor(6);
01305 fSparcLGPIN_h->Draw("same");
01306 fSparcHGPIN_h->SetLineColor(15);
01307 fSparcHGPIN_h->Draw("same");
01308 leg->Clear();
01309 leg->AddEntry(fSparcRaw_h,"No Truncation","l");
01310 leg->AddEntry(fSparc_h,"PMT Channels","l");
01311 leg->AddEntry(fSparcHGPIN_h,"HIGH GAIN PINs","l");
01312 leg->AddEntry(fSparcLGPIN_h,"LOW GAIN PINs","l");
01313 //leg->SetHeader("The Legend Title");
01314 leg->Draw("same");
01315 fplotFile_c->Update();
01316
01317 if(!gQuickPlots) fplotFile_c->Print(bookName.c_str());
01318 else fplotFile_c->Print("LastSparsificationTable.eps");
01319
01320 if(gPlotEachPage) {
01321 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01322 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01323
01324 fplotFile_c->Print(plotNameGif.c_str());
01325 fplotFile_c->Print(plotNameEps.c_str());
01326 }
01327 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01328 plotCounter++;
01329 fplotFile_c->Clear();
01330
01331
01332 if(!gQuickPlots) {
01333 //Map of sparsification thresholds:
01334 fplotFile_c->Clear();
01335 gPad->SetLogy(0);
01336 gPad->SetLogx(0);
01337 gPad->SetLogz(0);
01338 fSparcMap_h->SetStats(0);
01339 //fSparcMap_h->SetMaximum(50);
01340 fSparcMap_h->Draw("colz");
01341 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01342 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01343 fLines[icrate][ivarc]->Draw("same");
01344 fplotFile_c->Update();
01345 fplotFile_c->Print(bookName.c_str());
01346 if(gPlotEachPage) {
01347 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01348 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01349
01350 fplotFile_c->Print(plotNameGif.c_str());
01351 fplotFile_c->Print(plotNameEps.c_str());
01352 }
01353 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01354 plotCounter++;
01355 fplotFile_c->Clear();
01356 }
01357
01358 //
01359 //OUTLIERS ANALYSIS PLOTS:
01360 //
01361
01362
01363 if(!gQuickPlots) {
01364
01365 //Multiplicity of Truncation Outliers per channel
01366 fplotFile_c->cd();
01367 gPad->SetLogy(1);
01368 fPerTrunc_h->SetXTitle("# of Outliers Per Channel");
01369 fPerTrunc_h->SetMinimum(0.5);
01370 fPerTrunc_h->Draw();
01371 fplotFile_c->Update();
01372 fplotFile_c->Print(bookName.c_str());
01373 if(gPlotEachPage) {
01374 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01375 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01376
01377 fplotFile_c->Print(plotNameGif.c_str());
01378 fplotFile_c->Print(plotNameEps.c_str());
01379 }
01380 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01381 plotCounter++;
01382 fplotFile_c->Clear();
01383
01384
01385 //Crate Occupancy of Outliers:
01386 fplotFile_c->cd();
01387 gPad->SetLogy(0);
01388 fTruncOccCM_h->SetXTitle("Crate#");
01389 fTruncOccCM_h->Draw();
01390 fplotFile_c->Update();
01391 fplotFile_c->Print(bookName.c_str());
01392 if(gPlotEachPage) {
01393
01394 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01395 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01396
01397 fplotFile_c->Print(plotNameGif.c_str());
01398 fplotFile_c->Print(plotNameEps.c_str());
01399 }
01400 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01401 plotCounter++;
01402 fplotFile_c->Clear();
01403
01404
01405 //VA channels Occupancy of Outliers:
01406 fplotFile_c->cd();
01407 gPad->SetLogy(0);
01408 fTruncOccVA_h->SetXTitle("VA Chip Channels");
01409 fTruncOccVA_h->Draw();
01410 fplotFile_c->Update();
01411 fplotFile_c->Print(bookName.c_str());
01412 if(gPlotEachPage) {
01413 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01414 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01415
01416 fplotFile_c->Print(plotNameGif.c_str());
01417 fplotFile_c->Print(plotNameEps.c_str());
01418 }
01419 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01420 plotCounter++;
01421 fplotFile_c->Clear();
01422
01423
01424 //Plane occupancy of outliers:
01425 fplotFile_c->cd();
01426 gPad->SetLogy(0);
01427 fOutDetMap_h->SetXTitle("Plane#");
01428 fOutDetMap_h->SetTitle("Plane Occupancy of Outliers");
01429 fOutDetMap_h->Draw();
01430 fplotFile_c->Update();
01431 fplotFile_c->Print(bookName.c_str());
01432 if(gPlotEachPage) {
01433 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01434 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01435
01436 fplotFile_c->Print(plotNameGif.c_str());
01437 fplotFile_c->Print(plotNameEps.c_str());
01438 }
01439 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01440 plotCounter++;
01441 fplotFile_c->Clear();
01442
01443
01444 //Map of outliers in FEE space:
01445 fplotFile_c->cd();
01446 gPad->SetLogy(0);
01447 gPad->SetLogx(0);
01448 gPad->SetLogz(0);
01449 fOutMap_h->SetMaximum(15);
01450 fOutMap_h->SetStats(0);
01451 fOutMap_h->Draw("colz");
01452 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01453 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01454 fLines[icrate][ivarc]->Draw("same");
01455 fplotFile_c->Update();
01456 fplotFile_c->Print(bookName.c_str());
01457 if(gPlotEachPage) {
01458 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01459 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01460
01461 fplotFile_c->Print(plotNameGif.c_str());
01462 fplotFile_c->Print(plotNameEps.c_str());
01463 }
01464 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01465 plotCounter++;
01466 fplotFile_c->Clear();
01467 }
01468
01469
01470 //
01471 // COMPARISON BETWEEN SP TABLES AND DAQ TABLES:
01472 //
01473
01474
01475 if(!gQuickPlots) {
01476 if(gCompareSparTable) {
01477
01478 //Histogram of Pedestal difference between SP values and online values
01479 fplotFile_c->Clear();
01480 gPad->SetLogx(0);
01481 gPad->SetLogy(0);
01482 fDeltaMean_h->SetStats(1);
01483 fDeltaMean_h->Draw();
01484 fplotFile_c->Update();
01485 fplotFile_c->Print(bookName.c_str());
01486 if(gPlotEachPage) {
01487 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01488 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01489
01490 fplotFile_c->Print(plotNameGif.c_str());
01491 fplotFile_c->Print(plotNameEps.c_str());
01492 }
01493 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01494 plotCounter++;
01495 fplotFile_c->Clear();
01496
01497 //Map of pedestal variation:
01498 fplotFile_c->Clear();
01499 gPad->SetLogz(0);
01500 gPad->SetLogx(0);
01501 gPad->SetLogy(0);
01502 fDeltaCompMean_h->SetStats(0);
01503 fDeltaCompMean_h->Draw("colz");
01504 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01505 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01506 fLines[icrate][ivarc]->Draw("same");
01507 fplotFile_c->Update();
01508 fplotFile_c->Print(bookName.c_str());
01509 if(gPlotEachPage) {
01510 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01511 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01512
01513 fplotFile_c->Print(plotNameGif.c_str());
01514 fplotFile_c->Print(plotNameEps.c_str());
01515 }
01516 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01517 plotCounter++;
01518 fplotFile_c->Clear();
01519
01520 //Sparsification Variation Histogram:
01521 fplotFile_c->Clear();
01522 gPad->SetLogy(1);
01523 fDeltaSparc_h->SetStats(1);
01524 fDeltaSparc_h->Draw();
01525 fplotFile_c->Update();
01526 fplotFile_c->Print(bookName.c_str());
01527 if(gPlotEachPage) {
01528 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01529 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01530
01531 fplotFile_c->Print(plotNameGif.c_str());
01532 fplotFile_c->Print(plotNameEps.c_str());
01533 }
01534 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01535 plotCounter++;
01536 fplotFile_c->Clear();
01537
01538 //Map of Sparsification Variation (spar_SP - spar_DAQ)
01539 fplotFile_c->Clear();
01540 gPad->SetLogz(0);
01541 gPad->SetLogx(0);
01542 gPad->SetLogy(0);
01543 fDeltaSparcMap_h->SetStats(0);
01544 //fDeltaSparcMap_h->SetMaximum(20);
01545 //fDeltaSparcMap_h->SetMinimum(-10);
01546 fDeltaSparcMap_h->Draw("colz");
01547 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++)
01548 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++)
01549 fLines[icrate][ivarc]->Draw("same");
01550 fplotFile_c->Update();
01551 fplotFile_c->Print(bookName.c_str());
01552 if(gPlotEachPage) {
01553 plotNameGif += Form("SPplotAtPage%i.gif",plotCounter);
01554 plotNameEps += Form("SPplotAtPage%i.eps",plotCounter);
01555
01556 fplotFile_c->Print(plotNameGif.c_str());
01557 fplotFile_c->Print(plotNameEps.c_str());
01558 }
01559 MSG("SexyPedAna",Msg::kInfo) << "Included Page " << plotCounter << endl;
01560 plotCounter++;
01561 fplotFile_c->Clear();
01562 }
01563 }
01564
01565 //Last page:
01566 fplotFile_c->Clear();
01567 fplotFile_c->Update();
01568 fplotFile_c->Print(bookNameEnd.c_str());
01569 fplotFile_c->Clear();
01570
01571 MSG("SexyPedAna",Msg::kInfo) << "All Plots are done!" << endl;
01572
01573 delete fplotFile_c;
01574 }
|
|
|
Definition at line 271 of file SexyPedAna.cxx. References CheckDataQuality(), SexyPedestal::EncriptMeAKey(), fadc, fcrate, ferror, fPedRawTree, fplane, fva, fvach, fvarc, fvfb, fvmm, and mySP. Referenced by DoOfflineAnalysis(). 00271 {
00272
00273 Int_t nentries = 0;
00274
00275 //LOOP over the SexyPedestal TTree.
00276 if (entriesMax == -1) nentries = Int_t(fPedRawTree->GetEntries());
00277 else nentries = entriesMax;
00278
00279 for (Int_t jentry=0; jentry<nentries;jentry++) {
00280 fPedRawTree->GetEvent(jentry);
00281
00282 this->CheckDataQuality();
00283
00284 Int_t key = SexyPedestal::EncriptMeAKey(fcrate,fvarc,fvmm,fvfb,fva,fvach);
00285
00286 //If it does not found (i.e. iter points to end) -> then create it:
00287 if( mySP.find(key) == mySP.end() ) mySP[key] = new SexyPedestal();
00288
00289 mySP[key]->AddressMe(fcrate,fvarc,fvmm,fvfb,fva,fvach);
00290 //mySP[key]->SetTime(ftUTC);
00291 mySP[key]->SetPlane(fplane);
00292 mySP[key]->SetError(ferror);
00293 mySP[key]->InputSPEntry(fadc);
00294 }
00295
00296 return mySP.size();
00297
00298 }
|
|
|
Definition at line 62 of file SexyPedAna.h. Referenced by CompareDAQTables(), and OutputTables(). 00062 {return 99;}
|
|
|
Definition at line 1618 of file SexyPedAna.cxx. References fDeltaCompMean_h, fDeltaMean_h, fDeltaMeanMapT_h, fDeltaRmsMapT_h, fDeltaSparc_h, fDeltaSparcMap_h, fEntriesMap_h, fErrorMap_h, fLines, fMeanMap_h, fMeanRaw_h, fMeanT1_h, fMeanT2_h, fOutDetMap_h, fOutMap_h, fPerTrunc_h, fRmsCM_h, fRmsMap_h, fRmsMapT_h, fRmsPINHG_h, fRmsPINLG_h, fRmsPMT_h, fRmsRaw_h, fRmsRawCM_h, fRmsRawPINHG_h, fRmsRawPINLG_h, fRmsRawPMT_h, fRmsT1_h, fRmsT2_h, fSparc_h, fSparcHGPIN_h, fSparcLGPIN_h, fSparcMap_h, fSparcRaw_h, fTruncOcc_h, fTruncOccCM_h, and fTruncOccVA_h. Referenced by DoOfflineAnalysis(), and DoOnlineAnalysis(). 01618 {
01619
01620 //Initialising members:
01621 fMeanT1_h = new TH1F("fMeanT1_h","Distribution of the Pedestals's Means",600,0,1200);
01622 fRmsT1_h = new TH1F("fRmsT1_h", "Distribution of the Pedestals's RMSs (ALL channels)", 31,-0.5,30.5);
01623
01624 fMeanT2_h = new TH1F("fMeanT2_h","Distribution of the Pedestals's Means",600,0,1200);
01625 fRmsT2_h = new TH1F("fRmsT2_h", "Distribution of the Pedestals's RMSs (ALL channels)", 31,-0.5,30.5);
01626
01627 fMeanRaw_h = new TH1F("fMeanRaw_h","Distribution of the Pedestals's Means",600,0,1200);
01628 fRmsRaw_h = new TH1F("fRmsRaw_h", "Distribution of the Pedestals's RMSs (ALL channels)", 51,-0.5,50.5);
01629
01630 fRmsPMT_h = new TH1F("fRmsPMT_h", "Distribution of the Pedestals's RMSs (PMT channels)", 31,-0.5,30.5);
01631 fRmsCM_h = new TH1F("fRmsCM_h", "Distribution of the Pedestals's RMSs (CM channels)", 31,-0.5,30.5);
01632 fRmsPINLG_h = new TH1F("fRmsPINLG_h", "Distribution of the Pedestals's RMSs (LG PIN)", 31,-0.5,30.5);
01633 fRmsPINHG_h = new TH1F("fRmsPINHG_h", "Distribution of the Pedestals's RMSs (HG PIN)", 31,-0.5,30.5);
01634
01635 fRmsRawPMT_h = new TH1F("fRmsRawPMT_h", "Distribution of the Pedestals's RMSs (PMT channels)", 51,-0.5,50.5);
01636 fRmsRawCM_h = new TH1F("fRmsRawCM_h", "Distribution of the Pedestals's RMSs (CM channels)", 31,-0.5,30.5);
01637 fRmsRawPINLG_h = new TH1F("fRmsRawPINLG_h", "Distribution of the Pedestals's RMSs (LG PIN)", 31,-0.5,30.5);
01638 fRmsRawPINHG_h = new TH1F("fRmsRawPINHG_h", "Distribution of the Pedestals's RMSs (HG PIN)", 31,-0.5,30.5);
01639
01640 //Truncation Outliers distributions:
01641 fTruncOcc_h = new TH1F("fTruncOcc_h", "Pedestal Occupancy",15,0,15);
01642 fTruncOccCM_h = new TH1F("fTruncOccCM1_h","Truncated Outliers Occupancy wrt Crate#",16,0,16);
01643 fTruncOccVA_h = new TH1F("fTruncOccVA1_h","Truncated Outliers Occupancy wrt VA-channel#",22,0,22);
01644 fPerTrunc_h = new TH1F("fPerTrunc_h", "Truncated Outliers Multiplicity Per Channel", 15,0,15);
01645 fOutDetMap_h = new TH1F("fOutDetMap_h", "Truncated Outliers Occupancy wrt Plane#", 125,0,500);
01646
01647 //Maps:
01648 fMeanMap_h = new TH2S("fMeanMap_h","Mapping of the MEAN per Channels without Truncation",576,0,576,90,0,90);
01649 fMeanMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01650 fMeanMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01651
01652 fRmsMap_h = new TH2S("fRmsMap_h", "Mapping of the RMS (no Truncation) {if RMS < 25}",576,0,576,90,0,90);
01653 fRmsMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01654 fRmsMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01655
01656 fRmsMapT_h = new TH2S("fRmsMapT_h", "Mapping of the RMS (truncated)",576,0,576,90,0,90);
01657 fRmsMapT_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01658 fRmsMapT_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01659
01660 fOutMap_h = new TH2S("fOutMap_h","Map of Outliers Occupancy",576,0,576,90,0,90);
01661 fOutMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01662 fOutMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01663
01664 fEntriesMap_h = new TH2S("fEntriesMap_h",
01665 "Mapping of the number of triggers per Channels (no truncation)",
01666 576,0,576,90,0,90);
01667 fEntriesMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01668 fEntriesMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01669
01670 fSparcMap_h = new TH2S("fSparcMap_h",
01671 "Mapping of the Sparsification Threshold per Channels with Truncation",
01672 576,0,576,90,0,90);
01673 fSparcMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01674 fSparcMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01675
01676 fDeltaSparcMap_h= new TH2S("fDeltaSparcMap_h",
01677 "Mapping of the Sparsification Threshold Variation ('MyValues'-'TableValues')",
01678 576,0,576,90,0,90);
01679 fDeltaSparcMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01680 fDeltaSparcMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01681
01682 fDeltaMeanMapT_h = new TH2S("fDeltaMeanMapT_h",
01683 "Effect of truncation on the MEAN {Mean(non-truncated) - MEAN(truncated)}",
01684 576,0,576,90,0,90);
01685 fDeltaMeanMapT_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01686 fDeltaMeanMapT_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01687
01688 //Sparsification threshoold histogram:
01689 fSparc_h = new TH1F("fSparc_h","",95,0,95);
01690 fSparcRaw_h = new TH1F("fSparcRaw_h","",95,0,95);
01691 fSparcLGPIN_h = new TH1F("fSparcLGPIN_h","",95,0,95);
01692 fSparcHGPIN_h = new TH1F("fSparcHGPIN_h","",95,0,95);
01693
01694 //Creating the TLines:
01695 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++) {
01696 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++) {
01697
01698 fLines[icrate][ivarc] = new TLine(3*6*2*icrate+6*2*ivarc,0,
01699 3*6*2*icrate+6*2*ivarc,90);
01700
01701 fLines[icrate][ivarc]->SetLineColor(6);
01702 fLines[icrate][ivarc]->SetLineWidth(2);
01703 fLines[icrate][ivarc]->SetLineStyle(3);
01704 }
01705 }
01706
01707 //Comparison Tables histograms:
01708
01709
01710 //Pedestal:
01711
01712 fDeltaMean_h = new TH1F("fDeltaMean_h",
01713 "Difference between SexyPedestal Table and online Tables MEANs",10,-5,5);
01714 fDeltaMean_h->SetXTitle("#Delta MEAN('SexyPedestalValues'-'OnlineTablesValues')");
01715
01716 fDeltaCompMean_h = new TH2S("fDeltaCompMean_h",
01717 "Difference between SexyPedestal Table and online Table MEANs",
01718 576,0,576,90,0,90);
01719 fDeltaCompMean_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01720 fDeltaCompMean_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01721
01722
01723 //Sparsification:
01724
01725 fDeltaSparc_h = new TH1F("fDeltaSparc_h",
01726 "Difference between SexyPedestal Table and online Tables RMSs",50,-25,25);
01727 //2*gToleranceSparTable+1,
01728 //-gToleranceSparTable-0.5,
01729 //gToleranceSparTable+0.5);
01730 fDeltaSparc_h->SetXTitle("#Delta RMS('SexyPedestalValues'-'OnlineTablesValues')");
01731
01732 fDeltaRmsMapT_h = new TH2S("fDeltaRmsMapT_h",
01733 "Effect of Truncation on pedestals width {RMS(non-truncated) - RMS(truncated)}",
01734 576,0,576,90,0,90);
01735 fDeltaRmsMapT_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01736 fDeltaRmsMapT_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01737
01738 fErrorMap_h = new TH2S("fErrorMap_h",
01739 "Error Code Map",
01740 576,0,576,90,0,90);
01741 fErrorMap_h->SetXTitle("3x6x2xCrate# + 6x2xVARC# + 2xVMM# + VFB#");
01742 fErrorMap_h->SetYTitle("22xVA-chip# + VA-chip-Channel#");
01743
01744 }
|
|
|
Definition at line 21 of file SexyPedAna.cxx. References mySexyPedAna, and SexyPedAna(). Referenced by SexyPedReco::GetSexyPedestals(). 00021 {
00022 if(!mySexyPedAna) {
00023 mySexyPedAna = new SexyPedAna();
00024 }
00025 return mySexyPedAna;
00026 }
|
|
|
Definition at line 206 of file SexyPedAna.cxx. References fFile, fPedDAQTree, fSparDAQTree, gFileName, pedadc, pedcrate, pedva, pedvach, pedvarc, pedvfb, pedvmm, sparadc, sparcrate, sparva, sparvach, sparvarc, sparvfb, and sparvmm. Referenced by DoOfflineAnalysis(). 00206 {
00207
00208 TFile* fFile = TFile::Open(gFileName.c_str());
00209 fPedDAQTree = (TTree*) fFile->Get("pedTableTree");
00210
00211 fPedDAQTree->SetBranchAddress("crate",&pedcrate);
00212 fPedDAQTree->SetBranchAddress("varc", &pedvarc);
00213 fPedDAQTree->SetBranchAddress("vmm", &pedvmm);
00214 fPedDAQTree->SetBranchAddress("vfb", &pedvfb);
00215 fPedDAQTree->SetBranchAddress("va", &pedva);
00216 fPedDAQTree->SetBranchAddress("vach", &pedvach);
00217 fPedDAQTree->SetBranchAddress("adc", &pedadc);
00218 //fPedDAQTree->SetBranchAddress("time", &pedLoadTime);
00219
00220 fSparDAQTree = (TTree*) fFile->Get("sparTableTree");
00221
00222 fSparDAQTree->SetBranchAddress("crate",&sparcrate);
00223 fSparDAQTree->SetBranchAddress("varc", &sparvarc);
00224 fSparDAQTree->SetBranchAddress("vmm", &sparvmm);
00225 fSparDAQTree->SetBranchAddress("vfb", &sparvfb);
00226 fSparDAQTree->SetBranchAddress("va", &sparva);
00227 fSparDAQTree->SetBranchAddress("vach", &sparvach);
00228 fSparDAQTree->SetBranchAddress("adc", &sparadc);
00229 //fSparDAQTree->SetBranchAddress("time", &sparLoadTime);
00230
00231 return true;
00232 }
|
|
|
Definition at line 170 of file SexyPedAna.cxx. References fadc, fcrate, ferror, fFile, fPedRawTree, fplane, frun, ftUTC, fva, fvach, fvarc, fvfb, fvmm, and gFileName. Referenced by DoOfflineAnalysis(). 00170 {
00171
00172 fFile = TFile::Open(gFileName.c_str());
00173 fPedRawTree = (TTree*) fFile->Get("sexyPedTree");
00174
00175 fPedRawTree->SetBranchAddress("run", &frun);
00176 fPedRawTree->SetBranchAddress("error",&ferror);
00177 fPedRawTree->SetBranchAddress("crate",&fcrate);
00178 fPedRawTree->SetBranchAddress("varc", &fvarc);
00179 fPedRawTree->SetBranchAddress("vmm", &fvmm);
00180 fPedRawTree->SetBranchAddress("vfb", &fvfb);
00181 fPedRawTree->SetBranchAddress("va", &fva);
00182 fPedRawTree->SetBranchAddress("vach", &fvach);
00183 fPedRawTree->SetBranchAddress("adc", &fadc);
00184 //fPedRawTree->SetBranchAddress("tdc", &ftdc);
00185 fPedRawTree->SetBranchAddress("plane",&fplane);
00186 fPedRawTree->SetBranchAddress("tUTC", &ftUTC);
00187
00188 return true;
00189 }
|
|
|
Definition at line 542 of file SexyPedAna.cxx. References SexyPedestal::EncriptMeAKey(), Form(), gDebugTable, GetTPMTsparTh(), MSG, and mySP. Referenced by DoOfflineAnalysis(), and DoOnlineAnalysis(). 00542 {
00543
00544 //Loop over the crates (because of one file per crate)
00545 for(Int_t icrate = 0; icrate < SexyPedestal::CRATEMAX; icrate++) {
00546
00547 ofstream sparFile;
00548 ofstream pedFile;
00549
00550 if(gOutputSparsTable) {
00551 string sparFileName = "recentSparsifierTable_rop";
00552 sparFileName += Form("%i",icrate);
00553 //sparFileName += "_bySexyPedestal";
00554
00555 sparFile.open(sparFileName.c_str(),ofstream::out );
00556 }
00557
00558
00559 if(gOutputPedestalTable) {
00560 string pedFileName = "recentPedTable_rop";
00561 pedFileName += Form("%i",icrate);
00562 //pedFileName += "_bySexyPedestal";
00563
00564 pedFile.open(pedFileName.c_str(),ofstream::out );
00565 }
00566
00567 Int_t sparThreshold = -1;
00568 Int_t pedThreshold = -1;
00569
00570 for(Int_t ivarc = 0; ivarc < SexyPedestal::VARCMAX; ivarc++) {
00571 for(Int_t ivmm = 0; ivmm < SexyPedestal::VMMMAX; ivmm++) {
00572 for(Int_t ivfb = 0; ivfb < SexyPedestal::VFBMAX; ivfb++) {
00573 for(Int_t iva = 0; iva < SexyPedestal::VAMAX; iva++) {
00574 for(Int_t ivach = 0; ivach < SexyPedestal::VACHMAX; ivach++) {
00575
00576
00577 Int_t key = SexyPedestal::EncriptMeAKey(icrate,
00578 ivarc,
00579 ivmm,
00580 ivfb,
00581 iva,
00582 ivach);
00583
00584 //Some physical FEE location have no electronics connected (null SexyPedestals):
00585 if( mySP.find(key) == mySP.end() ) {
00586 //if(mySP.find(key) ) {
00587 MSG("SexyPedAna",Msg::kDebug) << "Empty Entry at:"
00588 << icrate
00589 << "-"
00590 << ivarc
00591 << "-"
00592 << ivmm
00593 << "-"
00594 << ivfb
00595 << "-"
00596 << iva
00597 << "-"
00598 << ivach
00599 << endl;
00600
00601 //Not connected electronic, hence:
00602 sparThreshold = 16383;
00603 pedThreshold = 1;
00604 }
00605 else {
00606 switch(gTruncType) {
00607 case 1:
00608 sparThreshold = (Int_t) mySP[key]->GetSparsLevelT1();
00609 break;
00610 case 2:
00611 sparThreshold = (Int_t) mySP[key]->GetSparsLevelT2();
00612 break;
00613 }
00614
00615 if(mySP[key]->IsTPMTchannel()) sparThreshold = this->GetTPMTsparTh();
00616
00617 //(*,*,*,*,*,0) && (*,*,*,*,2,18) || (*,*,*,*,*,1,19,20,21)
00618 if(mySP[key]->SparsifiedChannel()
00619 ||
00620 mySP[key]->IsCMchannel()) {
00621
00622 sparThreshold = 16383;
00623 pedThreshold = (Int_t) mySP[key]->GetRawMean();
00624 }
00625 }
00626
00627 //Sparsification Table stuff:
00628 if(gOutputSparsTable) {
00629 if(gDebugTable && ivach==0) sparFile << icrate << "_"
00630 << ivarc <<"_"
00631 << ivmm <<"_"
00632 << ivfb <<"_"
00633 << iva <<">> ";
00634
00635 //sparFile << " " << (Int_t) (sparThreshold);
00636 sparFile << (Int_t) (sparThreshold) << " ";
00637 if(ivach == 21) sparFile << endl;
00638 }
00639
00640 //Pedestal Table stuff:
00641 if(gOutputPedestalTable) {
00642 if(gDebugTable && ivach==0) pedFile << icrate << "_"
00643 << ivarc <<"_"
00644 << ivmm <<"_"
00645 << ivfb <<"_"
00646 << iva <<">> ";
00647
00648 pedFile << pedThreshold << " " ;
00649 if(ivach == 21) pedFile << endl;
00650 }
00651 }
00652 }
00653 }
00654 }
00655 }
00656
00657 if(gOutputSparsTable) sparFile.close();
00658 if(gOutputPedestalTable) pedFile.close();
00659 }
00660 return;
00661 }
|
|
|
Definition at line 302 of file SexyPedAna.cxx. References fDeltaMeanMapT_h, fDeltaRmsMapT_h, fEntriesMap_h, fErrorMap_h, fMeanMap_h, fMeanRaw_h, fMeanT1_h, fMeanT2_h, fOutDetMap_h, fOutMap_h, fPerTrunc_h, fRmsCM_h, fRmsMap_h, fRmsMapT_h, fRmsPINHG_h, fRmsPINLG_h, fRmsPMT_h, fRmsRaw_h, fRmsRawCM_h, fRmsRawPINHG_h, fRmsRawPINLG_h, fRmsRawPMT_h, fRmsT1_h, fRmsT2_h, fSparc_h, fSparcHGPIN_h, fSparcLGPIN_h, fSparcMap_h, fSparcRaw_h, fTruncOccCM_h, fTruncOccVA_h, MSG, and mySP. Referenced by DoOfflineAnalysis(), and DoOnlineAnalysis(). 00302 {
00303
00304 //Iterate over the entries in the vector:
00305 map<Int_t,SexyPedestal*>::iterator iterSP = mySP.begin();
00306
00307 while(iterSP != mySP.end()) {
00308
00309
00310 //Process all the MEANs and RMSs - for each SexyPedestal at the time:
00311 iterSP->second->GetSTAT();
00312
00313 //Cleares off the arrays of each Sexy Pedestal - free up memory.
00314 iterSP->second->FlushSexyPedestals();
00315
00316 if( (iterSP->second->SparsifiedChannel()) ) {
00317 iterSP++;
00318 continue;
00319 }
00320
00321 MSG("SexyPedAna", Msg::kDebug) << iterSP->second->GetCrate()
00322 << "-"
00323 << iterSP->second->GetVarc()
00324 << "-"
00325 << iterSP->second->GetVmm()
00326 << "-"
00327 << iterSP->second->GetVfb()
00328 << "-"
00329 << iterSP->second->GetVA()
00330 << "-"
00331 << iterSP->second->GetVAch()
00332 << endl
00333 << iterSP->second->GetRawMean()
00334 << endl
00335 << iterSP->second->GetRawRms()
00336 << endl
00337 << iterSP->second->GetEntries()
00338 << endl
00339 << iterSP->second->GetRmsT2()
00340 << endl
00341 << iterSP->second->GetEntriesT2()
00342 << endl;
00343
00344 //MEAN distribution
00345 fMeanRaw_h->Fill((iterSP->second->GetRawMean()));
00346
00347 switch(gTruncType) {
00348 case 1:
00349 fMeanT1_h->Fill((iterSP->second->GetMeanT1()));
00350 break;
00351 case 2:
00352 fMeanT2_h->Fill( (iterSP->second->GetMeanT2()) );
00353 break;
00354 }
00355
00356 //RMS ALL channels
00357 fRmsRaw_h->Fill((iterSP->second->GetRawRms()));
00358
00359 //Sparsification Threshold without truncation:
00360 fSparcRaw_h->Fill( (iterSP->second->GetRawSparsLevel()) );
00361
00362 switch(gTruncType) {
00363 case 1:
00364 fRmsT1_h->Fill((iterSP->second->GetRmsT1()));
00365 break;
00366 case 2:
00367 fRmsT2_h->Fill((iterSP->second->GetRmsT2()));
00368 break;
00369 }
00370
00371 //RMS distribution for the different readout types in FEE @ FD:
00372 if( (iterSP->second->IsLGPIN()) ) {
00373 //LG PIN CHANNELs - no truncation:
00374 fRmsRawPINLG_h->Fill((iterSP->second->GetRawRms()));
00375 switch(gTruncType) {
00376 case 1:
00377 //LG PIN CHANNELs - truncated:
00378 fRmsPINLG_h->Fill((iterSP->second->GetRmsT1()));
00379 //Sparsification thrshold:
00380 fSparcLGPIN_h->Fill((iterSP->second->GetSparsLevelT1()));
00381 break;
00382 case 2:
00383 //LG PIN CHANNELs - truncated:
00384 fRmsPINLG_h->Fill((iterSP->second->GetRmsT2()));
00385 //Sparsification thrshold:
00386 fSparcLGPIN_h->Fill((iterSP->second->GetSparsLevelT2()));
00387 break;
00388 }
00389 }
00390 else if( (iterSP->second->IsHGPIN()) ) {
00391 //HG PIN CHANNELs:
00392 fRmsRawPINHG_h->Fill((iterSP->second->GetRawRms()));
00393 switch(gTruncType) {
00394 case 1:
00395 //HG PIN CHANNELs - truncated:
00396 fRmsPINHG_h->Fill((iterSP->second->GetRmsT1()));
00397 //Sparsification thrshold:
00398 fSparcHGPIN_h->Fill((iterSP->second->GetSparsLevelT1()));
00399 break;
00400 case 2:
00401 //HG PIN CHANNELs - truncated:
00402 fRmsPINHG_h->Fill((iterSP->second->GetRmsT2()));
00403 //Sparsification thrshold:
00404 fSparcHGPIN_h->Fill((iterSP->second->GetSparsLevelT2()));
00405 break;
00406 }
00407 }
00408 else if( (iterSP->second->IsCMchannel()) ) {
00409 //CM CHANNELs:
00410 fRmsRawCM_h->Fill( (iterSP->second->GetRawRms()) );
00411 switch(gTruncType) {
00412 case 1:
00413 fRmsCM_h->Fill((iterSP->second->GetRmsT1()));
00414 break;
00415 case 2:
00416 fRmsCM_h->Fill((iterSP->second->GetRmsT2()));
00417 break;
00418 }
00419 }
00420 else {
00421 //PMT CHANNELs:
00422 //Raw RMS distribution:
00423 fRmsRawPMT_h->Fill( (iterSP->second->GetRawRms()) );
00424
00425 switch(gTruncType) {
00426 case 1:
00427 fRmsPMT_h->Fill( (iterSP->second->GetRmsT1()) );
00428 //Sparsification threshold:
00429 fSparc_h->Fill( (iterSP->second->GetSparsLevelT1()) );
00430 break;
00431 case 2:
00432 fRmsPMT_h->Fill( (iterSP->second->GetRmsT2()) );
00433 //Sparsification threshold:
00434 fSparc_h->Fill( (iterSP->second->GetSparsLevelT2()) );
00435 break;
00436 }
00437 }
00438
00439 const Int_t icrate = iterSP->second->GetCrate();
00440 const Int_t ivarc = iterSP->second->GetVarc();
00441 const Int_t ivmm = iterSP->second->GetVmm();
00442 const Int_t ivfb = iterSP->second->GetVfb();
00443 const Int_t iva = iterSP->second->GetVA();
00444 const Int_t ivach = iterSP->second->GetVAch();
00445
00446 //Mapping of MEAN and RMS per each channel:
00447 fMeanMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00448 30*iva+ivach,
00449 (iterSP->second->GetRawMean()) );
00450 fRmsMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00451 30*iva+ivach,
00452 (iterSP->second->GetRawRms()) );
00453
00454 fEntriesMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00455 30*iva+ivach,
00456 (iterSP->second->GetEntries()) );
00457
00458 //Mapping with truncation:
00459 switch(gTruncType) {
00460 case 1:
00461 fRmsMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00462 30*iva+ivach,
00463 (iterSP->second->GetRmsT1()) );
00464 //Truncated - nonTruncated values:
00465 fDeltaMeanMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00466 30*iva+ivach,
00467 TMath::Abs(iterSP->second->GetRawMean()-iterSP->second->GetMeanT1()) );
00468 fDeltaRmsMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00469 30*iva+ivach,
00470 (iterSP->second->GetRawRms())-(iterSP->second->GetRmsT1()));
00471
00472 fSparcMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00473 30*iva+ivach,
00474 (iterSP->second->GetSparsLevelT1()) );
00475 break;
00476 case 2:
00477 fRmsMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00478 30*iva+ivach,
00479 (iterSP->second->GetRmsT2()) );
00480 //Truncated - nonTruncated values:
00481 fDeltaMeanMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00482 30*iva+ivach,
00483 TMath::Abs(iterSP->second->GetRawMean()-iterSP->second->GetMeanT2()) );
00484 fDeltaRmsMapT_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00485 30*iva+ivach,
00486 (iterSP->second->GetRawRms())-(iterSP->second->GetRmsT2()) );
00487
00488 fSparcMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00489 30*iva+ivach,
00490 (iterSP->second->GetSparsLevelT2()));
00491 break;
00492 }
00493
00494 //cout << iterSP->second->GetError() << endl;
00495 fErrorMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00496 30*iva+ivach,
00497 iterSP->second->GetError());
00498
00499 //OUTLIERS analysis:
00500 if(gDoOutliersAnalysis) {
00501
00502 const Int_t iplane = iterSP->second->GetPlane();
00503
00504 Int_t outliersNum = 0;
00505
00506 switch(gTruncType) {
00507 case 1:
00508 outliersNum = iterSP->second->GetEntries()-iterSP->second->GetEntriesT1();
00509 break;
00510 case 2:
00511 outliersNum = iterSP->second->GetEntries()-iterSP->second->GetEntriesT2();
00512 break;
00513 }
00514
00515 //Multiplicity of outliers per channel:
00516 fPerTrunc_h->Fill(outliersNum);
00517
00518
00519 //Map of outliers in FEE space:
00520 fOutMap_h->Fill(6*3*2*icrate+6*2*ivarc+2*ivmm+ivfb,
00521 30*iva+ivach,
00522 outliersNum);
00523
00524 //Plane occupancy
00525 fOutDetMap_h->Fill(iplane,outliersNum);
00526
00527 //VA channels occupancy:
00528 fTruncOccVA_h->Fill(ivach,outliersNum);
00529
00530 //Crate occupancy:
00531 fTruncOccCM_h->Fill(icrate,outliersNum);
00532
00533 //Spectra of Outliers (not yet implemented)
00534 }
00535 iterSP++;
00536 }
00537 return;
00538 }
|
|
|
Definition at line 815 of file SexyPedAna.cxx. References fReportFile, fSparc_h, fSparcHGPIN_h, fSparcLGPIN_h, and fSparcRaw_h. 00815 {
00816
00817 fReportFile << endl
00818 << "Sparsification Thresholds Summaries: "
00819 << endl
00820 << endl
00821 << "\tFor PMTs truncated: " << fSparc_h->GetMean()
00822 << "+/_" << fSparc_h->GetRMS() << endl
00823
00824 << "\tFor PMTs non-truncated: " << fSparcRaw_h->GetMean()
00825 << "+/_" << fSparcRaw_h->GetRMS() << endl
00826
00827 << "\tFor LG PIN truncated: " << fSparcLGPIN_h->GetMean()
00828 << "+/_" << fSparcLGPIN_h->GetRMS() << endl
00829
00830 << "\tFor HG PIN truncated: " << fSparcHGPIN_h->GetMean()
00831 << "+/_" << fSparcHGPIN_h->GetRMS() << endl
00832 << endl;
00833
00834 return;
00835 }
|
|
|
Definition at line 236 of file SexyPedAna.cxx. References fadc, ferror, fReportFile, ftdc, fva, fvach, fvarc, fvfb, and fvmm. Referenced by CheckDataQuality(). 00236 {
00237
00238 //MSG("SexyPedAna",Msg::kInfo)
00239 fReportFile << "\t@: " << fvarc << "-" << fvmm << "-"
00240 << fvfb << "-" << fva << "-" << fvach
00241 << "\t"
00242 << "(Error: " << ferror << " ADC: " << fadc
00243 << " Time: " << ftdc << ")"
00244 << endl << endl;
00245
00246 return;
00247 }
|
|
|
Definition at line 112 of file SexyPedAna.h. |
|
|
Definition at line 113 of file SexyPedAna.h. |
|
|
Definition at line 139 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 133 of file SexyPedAna.h. Referenced by GetSPData(), and LoadPedTree(). |
|
|
Definition at line 220 of file SexyPedAna.h. Referenced by CompareDAQTables(), GetPlots(), and InitAnaVariables(). |
|
|
Definition at line 219 of file SexyPedAna.h. Referenced by CompareDAQTables(), GetPlots(), and InitAnaVariables(). |
|
|
Definition at line 222 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 223 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 216 of file SexyPedAna.h. Referenced by CompareDAQTables(), GetPlots(), and InitAnaVariables(). |
|
|
Definition at line 217 of file SexyPedAna.h. Referenced by CompareDAQTables(), GetPlots(), and InitAnaVariables(). |
|
|
Definition at line 210 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 132 of file SexyPedAna.h. Referenced by CheckDataQuality(), GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 225 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 129 of file SexyPedAna.h. Referenced by CheckDataQuality(), and SexyPedAna(). |
|
|
Definition at line 118 of file SexyPedAna.h. Referenced by LoadDAQTrees(), LoadPedTree(), and SexyPedAna(). |
|
|
Definition at line 227 of file SexyPedAna.h. Referenced by GetPlots(), and InitAnaVariables(). |
|
|
Definition at line 205 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 180 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 166 of file SexyPedAna.h. Referenced by InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 170 of file SexyPedAna.h. Referenced by InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 193 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 214 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 124 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 122 of file SexyPedAna.h. Referenced by GetSPData(), and LoadPedTree(). |
|
|
Definition at line 196 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 141 of file SexyPedAna.h. Referenced by GetSPData(), and LoadPedTree(). |
|
|
Definition at line 120 of file SexyPedAna.h. Referenced by GetPlots(). |
|
|
Definition at line 110 of file SexyPedAna.h. Referenced by CheckDataQuality(), CompareDAQTables(), CreateReportFile(), Report(), ReportThisGuy(), and ~SexyPedAna(). |
|
|
Definition at line 175 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 206 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 208 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 177 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 176 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 174 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 181 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 185 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 187 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 186 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 184 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 167 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 171 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 103 of file SexyPedAna.h. Referenced by CreateReportFile(), GetPlots(), SexyPedReco::GetSexyPedestals(), and LoadPedTree(). |
|
|
Definition at line 199 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), ProcessSexyPedestals(), and Report(). |
|
|
Definition at line 202 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), ProcessSexyPedestals(), and Report(). |
|
|
Definition at line 201 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), ProcessSexyPedestals(), and Report(). |
|
|
Definition at line 212 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 200 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), ProcessSexyPedestals(), and Report(). |
|
|
Definition at line 125 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 140 of file SexyPedAna.h. Referenced by ReportThisGuy(). |
|
|
Definition at line 190 of file SexyPedAna.h. Referenced by InitAnaVariables(). |
|
|
Definition at line 191 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 192 of file SexyPedAna.h. Referenced by GetPlots(), InitAnaVariables(), and ProcessSexyPedestals(). |
|
|
Definition at line 142 of file SexyPedAna.h. Referenced by LoadPedTree(). |
|
|
Definition at line 137 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 138 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 134 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 136 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 135 of file SexyPedAna.h. Referenced by GetSPData(), LoadPedTree(), and ReportThisGuy(). |
|
|
Definition at line 84 of file SexyPedAna.h. Referenced by CheckDataQuality(), DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 87 of file SexyPedAna.h. Referenced by DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 88 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 80 of file SexyPedAna.h. Referenced by OutputTables(), and SexyPedAna(). |
|
|
Definition at line 93 of file SexyPedAna.h. Referenced by DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 99 of file SexyPedAna.h. Referenced by LoadDAQTrees(), and LoadPedTree(). |
|
|
Definition at line 78 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 79 of file SexyPedAna.h. Referenced by DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 75 of file SexyPedAna.h. Referenced by GetPlots(), and SexyPedAna(). |
|
|
Definition at line 95 of file SexyPedAna.h. Referenced by DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 96 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 73 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), GetPlots(), and SexyPedAna(). |
|
|
Definition at line 90 of file SexyPedAna.h. Referenced by CompareDAQTables(), and SexyPedAna(). |
|
|
Definition at line 91 of file SexyPedAna.h. Referenced by CompareDAQTables(), and SexyPedAna(). |
|
|
Definition at line 74 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), and SexyPedAna(). |
|
|
Definition at line 72 of file SexyPedAna.h. Referenced by DoOfflineAnalysis(), DoOnlineAnalysis(), GetPlots(), and SexyPedAna(). |
|
|
Definition at line 15 of file SexyPedAna.cxx. Referenced by InstantiateMe(). |
|
|
Definition at line 101 of file SexyPedAna.h. Referenced by CompareDAQTables(), SexyPedReco::GetSexyPedestals(), GetSPData(), OutputTables(), ProcessSexyPedestals(), and ~SexyPedAna(). |
|
|
Definition at line 150 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 144 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 151 of file SexyPedAna.h. |
|
|
Definition at line 148 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 149 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 145 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 147 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 146 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 159 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 153 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 160 of file SexyPedAna.h. |
|
|
Definition at line 157 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 158 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 154 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 156 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
|
|
Definition at line 155 of file SexyPedAna.h. Referenced by CompareDAQTables(), and LoadDAQTrees(). |
1.3.9.1