00001 TH1F *h[10];
00002 h[0] = 0;
00003 h[1] = 0;
00004 h[2] = 0;
00005 h[3] = 0;
00006 h[4] = 0;
00007 h[5] = 0;
00008 h[6] = 0;
00009 h[7] = 0;
00010 h[8] = 0;
00011 h[9] = 0;
00012 TCanvas *CANVAS = 0;
00013 void clear()
00014 {
00015 for(int i=0;i<10;i++)
00016 {
00017 if(h[i]) delete h[i];
00018 h[i] = 0;
00019 }
00020 }
00021
00022 TCanvas* canvas(int nx, int ny, int sx=600, int sy =900)
00023 {
00024 if(CANVAS) {delete CANVAS; CANVAS=0;}
00025 CANVAS = new TCanvas();
00026
00027
00028 CANVAS->Divide(nx,ny);
00029 return CANVAS;
00030 }
00031 void draw(emcCalib_st* t1)
00032 {
00033 clear();
00034 h[0] = new TH1F("emcCalib_0","",4800,0.5,4800.5);
00035 h[1] = new TH1F("emcCalib_1","",4800,0.5,4800.5);
00036 h[2] = new TH1F("emcCalib_2","",4800,0.5,4800.5);
00037 h[3] = new TH1F("emcCalib_3","",4800,0.5,4800.5);
00038 h[4] = new TH1F("emcCalib_4","",4800,0.5,4800.5);
00039 h[5] = new TH1F("emcCalib_S","",4800,0.5,4800.5);
00040 for(int i = 0; i<4800;i++)
00041 {
00042 for(int j=0;j<5;j++) h[j]->Fill(i+1,t1->AdcToE[i][j]);
00043 h[5]->Fill(i+1,(float)t1->Status[i]);
00044 }
00045 TCanvas* c = canvas(1,6);
00046 for(int j=0;j<6;j++)
00047 {
00048 c->cd(j+1);
00049 h[j]->Draw();
00050 }
00051 c->Update();
00052 }
00053 void draw(smdCalib_st* t1)
00054 {
00055 clear();
00056 h[0] = new TH1F("smdCalib_0","",18000,0.5,18000.5);
00057 h[1] = new TH1F("smdCalib_1","",18000,0.5,18000.5);
00058 h[2] = new TH1F("smdCalib_2","",18000,0.5,18000.5);
00059 h[3] = new TH1F("smdCalib_3","",18000,0.5,18000.5);
00060 h[4] = new TH1F("smdCalib_4","",18000,0.5,18000.5);
00061 h[5] = new TH1F("smdCalib_S","",18000,0.5,18000.5);
00062 for(int i = 0; i<18000;i++)
00063 {
00064 for(int j=0;j<5;j++) h[j]->Fill(i+1,t1->AdcToE[i][j]);
00065 h[5]->Fill(i+1,(float)t1->Status[i]);
00066 }
00067 TCanvas* c = canvas(1,6);
00068 for(int j=0;j<6;j++)
00069 {
00070 c->cd(j+1);
00071 h[j]->Draw();
00072 }
00073 c->Update();
00074 }
00075 void draw(emcStatus_st* t1)
00076 {
00077 clear();
00078 h[0] = new TH1F("emcStatus_S","",4800,0.5,4800.5);
00079 for(int i = 0; i<4800;i++)
00080 {
00081 h[0]->Fill(i+1,(float)t1->Status[i]);
00082 }
00083 TCanvas* c = canvas(1,1,600,300);
00084 h[0]->Draw();
00085 c->Update();
00086 return;
00087 }
00088 void draw(smdStatus_st* t1)
00089 {
00090 clear();
00091 h[0] = new TH1F("smdStatus_S","",18000,0.5,18000.5);
00092 for(int i = 0; i<18000;i++)
00093 {
00094 h[0]->Fill(i+1,(float)t1->Status[i]);
00095 }
00096 TCanvas* c = canvas(1,1,600,300);
00097 h[0]->Draw();
00098 c->Update();
00099 return;
00100 }
00101 void draw(emcGain_st* t1)
00102 {
00103 clear();
00104 h[0] = new TH1F("emcGain_S","",4800,0.5,4800.5);
00105 for(int i = 0; i<4800;i++)
00106 {
00107 h[0]->Fill(i+1,(float)t1->Gain[i]);
00108 }
00109 TCanvas* c = canvas(1,1,600,300);
00110 h[0]->Draw();
00111 c->Update();
00112 return;
00113 }
00114 void draw(smdGain_st* t1)
00115 {
00116 clear();
00117 h[0] = new TH1F("smdGain_S","",18000,0.5,18000.5);
00118 for(int i = 0; i<18000;i++)
00119 {
00120 h[0]->Fill(i+1,(float)t1->Gain[i]);
00121 }
00122 TCanvas* c = canvas(1,1,600,300);
00123 h[0]->Draw();
00124 c->Update();
00125 return;
00126 }
00127 void draw(smdPed_st* t1)
00128 {
00129 clear();
00130 h[0] = new TH1F("smdPed_ADC0","",18000,0.5,18000.5);
00131 h[1] = new TH1F("smdPed_ADC1","",18000,0.5,18000.5);
00132 h[2] = new TH1F("smdPed_ADC2","",18000,0.5,18000.5);
00133 h[3] = new TH1F("smdPed_RMS0","",18000,0.5,18000.5);
00134 h[4] = new TH1F("smdPed_RMS1","",18000,0.5,18000.5);
00135 h[5] = new TH1F("smdPed_RMS2","",18000,0.5,18000.5);
00136 h[6] = new TH1F("smdPed_STATUS","",18000,0.5,18000.5);
00137 for(int i = 0; i<18000;i++)
00138 {
00139 h[0]->Fill(i+1,(float)t1->AdcPedestal[i][0]/100);
00140 h[1]->Fill(i+1,(float)t1->AdcPedestal[i][1]/100);
00141 h[2]->Fill(i+1,(float)t1->AdcPedestal[i][2]/100);
00142 h[3]->Fill(i+1,(float)t1->AdcPedestalRMS[i][0]/100);
00143 h[4]->Fill(i+1,(float)t1->AdcPedestalRMS[i][1]/100);
00144 h[5]->Fill(i+1,(float)t1->AdcPedestalRMS[i][2]/100);
00145 h[6]->Fill(i+1,(float)t1->Status[i]);
00146 }
00147 TCanvas* c = canvas(3,3,800,500);
00148 for(int j=0;j<7;j++)
00149 {
00150 c->cd(j+1);
00151 h[j]->Draw();
00152 }
00153 c->Update();
00154 return;
00155 }
00156 void draw(emcPed_st* t1)
00157 {
00158 clear();
00159 h[0] = new TH1F("emcPed_ADC","",4800,0.5,4800.5);
00160 h[1] = new TH1F("emcPed_RMS","",4800,0.5,4800.5);
00161 h[2] = new TH1F("emcPed_STATUS","",4800,0.5,4800.5);
00162 for(int i = 0; i<4800;i++)
00163 {
00164 h[0]->Fill(i+1,(float)t1->AdcPedestal[i]/100);
00165 h[1]->Fill(i+1,(float)t1->AdcPedestalRMS[i]/100);
00166 h[2]->Fill(i+1,(float)t1->Status[i]);
00167 }
00168 TCanvas* c = canvas(1,3);
00169 for(int j=0;j<3;j++)
00170 {
00171 c->cd(j+1);
00172 h[j]->Draw();
00173 }
00174 c->Update();
00175 return;
00176 }
00177 void draw(emcTriggerPed_st* t1)
00178 {
00179 clear();
00180 h[0] = new TH1F("emcTriggerPed_BITCONV","",300,0,300);
00181 h[1] = new TH1F("emcTriggerPed_PED","",4800,0,4800);
00182 for(int c=0;c<30;c++)
00183 {
00184 for(int p=0;p<10;p++)
00185 h[0]->Fill(c*10+p, (float)t1->BitConversionMode[c][p]);
00186 for(int p=0;p<160;p++)
00187 h[1]->Fill(c*160+p,(float)t1->Ped[c][p]/100) ;
00188 }
00189 TCanvas* q = canvas(1,2);
00190 for(int j=0;j<2;j++)
00191 {
00192 q->cd(j+1);
00193 h[j]->Draw();
00194 }
00195 q->Update();
00196 return;
00197 }
00198 void draw(emcTriggerStatus_st* t1)
00199 {
00200 clear();
00201 h[0] = new TH1F("emcTriggerStatus_Patch","",300,0,300);
00202 h[1] = new TH1F("emcTriggerStatus_HighTower","",300,0,300);
00203 h[2] = new TH1F("emcTriggerStatus_Tower","",4800,0,4800);
00204 for(int c=0;c<30;c++)
00205 {
00206 for(int p=0;p<10;p++)
00207 {
00208 h[0]->Fill(c*10+p,t1->PatchStatus[c*10+p]) ;
00209 h[1]->Fill(c*10+p,t1->HighTowerStatus[c*10+p]) ;
00210 }
00211 for(int p=0;p<160;p++)
00212 h[2]->Fill(c*160+p,t1->TowerStatus[c][p]);
00213 }
00214 TCanvas* q = canvas(1,3);
00215 for(int j=0;j<3;j++)
00216 {
00217 q->cd(j+1);
00218 h[j]->Draw();
00219 }
00220 q->Update();
00221 return;
00222 }
00223 void draw(emcTriggerLUT_st* t1)
00224 {
00225 clear();
00226 h[0] = new TH1F("emcTriggerStatus_Tag","",300,0,300);
00227 h[1] = new TH1F("emcTriggerStatus_Par0","",300,0,300);
00228 h[2] = new TH1F("emcTriggerStatus_Par1","",300,0,300);
00229 h[3] = new TH1F("emcTriggerStatus_Par2","",300,0,300);
00230 h[4] = new TH1F("emcTriggerStatus_Par3","",300,0,300);
00231 h[5] = new TH1F("emcTriggerStatus_Par4","",300,0,300);
00232 h[6] = new TH1F("emcTriggerStatus_Par5","",300,0,300);
00233 for(int c=0;c<30;c++)
00234 {
00235 for(int p=0;p<10;p++)
00236 {
00237 h[0]->Fill(c*30+p,t1->FormulaTag[c][p]) ;
00238 h[1]->Fill(c*30+p,t1->FormulaParameter0[c][p]);
00239 h[2]->Fill(c*30+p,t1->FormulaParameter1[c][p]);
00240 h[3]->Fill(c*30+p,t1->FormulaParameter2[c][p]);
00241 h[4]->Fill(c*30+p,t1->FormulaParameter3[c][p]);
00242 h[5]->Fill(c*30+p,t1->FormulaParameter4[c][p]);
00243 h[6]->Fill(c*30+p,t1->FormulaParameter5[c][p]);
00244 }
00245 }
00246 TCanvas* q = canvas(1,7);
00247 for(int j=0;j<7;j++)
00248 {
00249 q->cd(j+1);
00250 h[j]->Draw();
00251 }
00252 q->Update();
00253 return;
00254 }
00255