File indexing completed on 2024-04-06 12:32:49
0001 #include "TText.h"
0002 #include "TFile.h"
0003 #include "TH1F.h"
0004 #include "TCanvas.h"
0005 #include "TLegend.h"
0006 #include "TPaveStats.h"
0007 #include "TPaveLabel"
0008
0009 void DoCompare( ){
0010
0011 static const int NHisto = 81;
0012
0013 TText* te = new TText();
0014 te->SetTextSize(0.1);
0015 TPaveStats* st_1, st_2;
0016
0017 gROOT->ProcessLine(".x HistoCompare.C");
0018 HistoCompare * myPV = new HistoCompare();
0019
0020 char* reffilename = "${REFFILE}";
0021 char* curfilename = "${CURFILE}";
0022
0023 TFile * reffile = new TFile(reffilename);
0024 TFile * curfile = new TFile(curfilename);
0025
0026 reffile->cd("DQMData/DTDigiValidationTask");
0027 gDirectory->ls();
0028
0029 curfile->cd("DQMData/DTDigiValidationTask");
0030 gDirectory->ls();
0031
0032
0033 char* label[NHisto];
0034 char* label_dir[NHisto];
0035
0036 label[0] = "DigiTimeBox";
0037 label[1] = "DigiTimeBox_wheel2m";
0038 label[2] = "DigiTimeBox_wheel1m";
0039 label[3] = "DigiTimeBox_wheel0";
0040 label[4] = "DigiTimeBox_wheel1p";
0041 label[5] = "DigiTimeBox_wheel2p";
0042 label[6] = "DigiEfficiencyMu";
0043 label[7] = "DigiEfficiency";
0044 label[8] = "Number_Digi_per_layer";
0045 label[9] = "Number_simhit_vs_digi";
0046 label[10] = "Wire_Number_with_double_Digi";
0047 label[11] = "Simhit_occupancy_MB1";
0048 label[12] = "Digi_occupancy_MB1";
0049 label[13] = "Simhit_occupancy_MB2";
0050 label[14] = "Digi_occupancy_MB2";
0051 label[15] = "Simhit_occupancy_MB3";
0052 label[16] = "Digi_occupancy_MB3";
0053 label[17] = "Simhit_occupancy_MB4";
0054 label[18] = "Digi_occupancy_MB4";
0055
0056 char stringcham[40];
0057 char stringall[80];
0058
0059 TH1F* htemp1[NHisto];
0060 TH1F* htemp2[NHisto];
0061 for ( int i = 0; i< NHisto ; i++ ) {
0062 char title[50];
0063 TCanvas c1;
0064 if ( i>18 )
0065 {
0066 sprintf(stringcham, "DigiTimeBox_slid_%d", i-19) ;
0067 label[i] = stringcham;
0068 }
0069 sprintf(stringall, "DQMData/DTDigiValidationTask/%s",label[i]);
0070 label_dir[i] = stringall;
0071
0072 htemp1[i] = dynamic_cast<TH1F*>(reffile->Get(label_dir[i]));
0073 htemp2[i] = dynamic_cast<TH1F*>(curfile->Get(label_dir[i]));
0074 if( htemp1[i] == 0 ) std::cout << " reference histo is empty " << endl;
0075 if( htemp2[i] == 0 ) std::cout << " current version histo is empty " << endl;
0076 if( htemp1[i] == 0 || htemp2[i] == 0) continue;
0077
0078 htemp1[i]->SetLineColor(2);
0079 htemp2[i]->SetLineColor(4);
0080 htemp1[i]->SetLineStyle(3);
0081 htemp2[i]->SetLineStyle(5);
0082 TLegend leg(0.1, 0.15, 0.2, 0.25);
0083 leg.AddEntry(htemp1[i], "Reference", "l");
0084 leg.AddEntry(htemp2[i], "New ", "l");
0085
0086 htemp2[i]->Draw();
0087 gStyle->SetOptStat(1111);
0088 st_2 = (TPaveStats*)htemp2[i]->GetListOfFunctions()->FindObject("stats");
0089
0090 htemp1[i]->Draw();
0091 gStyle->SetOptStat(1111);
0092 st_1 = (TPaveStats*)htemp1[i]->GetListOfFunctions()->FindObject("stats");
0093
0094 TPaveStats* sta_1= (TPaveStats*)st_1->Clone();
0095
0096 sta_1->SetTextColor(2);
0097 sta_1->SetX1NDC(.80);
0098 sta_1->SetX2NDC(0.95);
0099 sta_1->SetY1NDC(0.70);
0100 sta_1->SetY2NDC(0.85);
0101
0102 TPaveStats* sta_2= (TPaveStats*)st_2->Clone();
0103
0104 sta_2->SetTextColor(4);
0105 sta_2->SetX1NDC(.80);
0106 sta_2->SetX2NDC(0.95);
0107 sta_2->SetY1NDC(0.85);
0108 sta_2->SetY2NDC(1.0);
0109
0110 gStyle->SetOptStat(000000);
0111 htemp2[i]->Draw();
0112 gStyle->SetOptStat(000000);
0113 htemp1[i]->Draw("Same");
0114 sta_2->Draw("Same");
0115 sta_1->Draw("Same");
0116 leg.Draw();
0117 myPV->PVCompute(htemp1[i],htemp2[i], te);
0118 sprintf(title,"%s%s", label[i],".eps");
0119 c1.Print(title);
0120 }
0121
0122
0123 }
0124
0125