62 static const float adc2fC[128]={-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5, 10.5,11.5,12.5,
63 13.5,15.,17.,19.,21.,23.,25.,27.,29.5,32.5,35.5,38.5,42.,46.,50.,54.5,59.5,
64 64.5,59.5,64.5,69.5,74.5,79.5,84.5,89.5,94.5,99.5,104.5,109.5,114.5,119.5,
65 124.5,129.5,137.,147.,157.,167.,177.,187.,197.,209.5,224.5,239.5,254.5,272.,
66 292.,312.,334.5,359.5,384.5,359.5,384.5,409.5,434.5,459.5,484.5,509.5,534.5,
67 559.5,584.5,609.5,634.5,659.5,684.5,709.5,747.,797.,847.,897.,947.,997.,
68 1047.,1109.5,1184.5,1259.5,1334.5,1422.,1522.,1622.,1734.5,1859.5,1984.5,
69 1859.5,1984.5,2109.5,2234.5,2359.5,2484.5,2609.5,2734.5,2859.5,2984.5,
70 3109.5,3234.5,3359.5,3484.5,3609.5,3797.,4047.,4297.,4547.,4797.,5047.,
71 5297.,5609.5,5984.5,6359.5,6734.5,7172.,7672.,8172.,8734.5,9359.5,9984.5};
79 static const Raddam_ch RADDAM_CH[56]={{-30,35,1},{-30,71,1},{-32,15,1},{-32,51,1},{-34,35,1},{-34,71,1},{-36,15,1},
80 {-36,51,1},{-38,35,1},{-38,71,1},{-40,15,1},{-40,51,1},{-41,35,1},{-41,71,1},
81 {30,21,1}, {30,57,1}, {32,1,1}, {32,37,1}, {34,21,1}, {34,57,1}, {36,1,1 },
82 {36,37,1}, {38,21,1}, {38,57,1}, {40,35,1}, {40,71,1}, {41,19,1}, {41,55,1 },
83 {-30,15,2},{-30,51,2},{-32,35,2},{-32,71,2},{-34,15,2},{-34,51,2},{-36,35,2},
84 {-36,71,2},{-38,15,2},{-38,51,2},{-40,35,2},{-40,71,2},{-41,15,2},{-41,51,2},
85 {30,1,2}, {30,37,2}, {32,21,2}, {32,57,2}, {34,1,2}, {34,37,2}, {36,21,2 },
86 {36,57,2}, {38,1,2}, {38,37,2}, {40,19,2}, {40,55,2}, {41,35,2}, {41,71,2}};
208 int MaxI=0;
double Energy,MaxE=0;
209 for(
int j=0;
j<
n;++
j)
if(MaxE<data[
j]){ MaxE=data[
j]; MaxI=
j; }
211 if(MaxI>0) Energy+=data[MaxI-1];
212 if(MaxI>1) Energy+=data[MaxI-2];
213 if(MaxI<(n-1)) Energy+=data[MaxI+1];
214 if(MaxI<(n-2)) Energy+=data[MaxI+2];
218 int MaxI=-100;
double Time=-9999,SumT=0,MaxT=-10;
219 for(
int j=0;
j<
n;++
j)
if(MaxT<data[
j]){ MaxT=data[
j]; MaxI=
j; }
222 Time=MaxI*data[MaxI];
224 if(MaxI>0){ Time+=(MaxI-1)*data[MaxI-1]; SumT+=data[MaxI-1]; }
225 if(MaxI<(n-1)){ Time+=(MaxI+1)*data[MaxI+1]; SumT+=data[MaxI+1]; }
257 if(sd.compare(
"HB")==0) SD=1;
258 if(sd.compare(
"HE")==0) SD=2;
259 if(sd.compare(
"HO")==0) SD=3;
260 if(sd.compare(
"HF")==0) SD=4;
262 if(eta>0)
ETA=1;
else ETA=-1;
263 if(phi==71 ||phi==72 || phi==1 || phi==2)
PHI=71;
else PHI=((phi-3)/4)*4+3;
267 if(phi==71 ||phi==72 || phi==1 || phi==2 || phi==3 || phi==4)
PHI=71;
else PHI=((phi-5)/6)*6+5;
272 if(phi==71 ||phi==72 || (phi>=1 && phi<=10))
PHI=71;
else PHI=((phi-11)/12)*12+11;
275 if(eta>0)
ETA=1;
else ETA=-1;
276 if(phi>=1 && phi<=18)
PHI=1;
277 if(phi>=19 && phi<=36)
PHI=19;
278 if(phi>=37 && phi<=54)
PHI=37;
279 if(phi>=55 && phi<=72)
PHI=55;
305 bool get_ave_subdet(
int sd,
float *ave_t,
float *ave_e,
float *ave_t_r,
float *ave_e_r);
411 if (prefixME_.size()>0 && prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
412 prefixME_.append(
"/");
448 for (std::vector<DetId>::const_iterator
i = mydetids.begin();
i!=mydetids.end();++
i){
459 emap=conditions_->getHcalMapping();
496 name=
"HBHE Laser Energy Distribution";
hbheEnergy = ib.
book1D(name,name,200,0,3000);
497 name=
"HBHE Laser Timing Distribution";
hbheTime = ib.
book1D(name,name,200,0,10);
498 name=
"HBHE Laser Energy RMS_div_Energy Distribution";
hbheEnergyRMS = ib.
book1D(name,name,200,0,0.5);
499 name=
"HBHE Laser Timing RMS Distribution";
hbheTimeRMS = ib.
book1D(name,name,200,0,1);
500 name=
"HO Laser Energy Distribution";
hoEnergy = ib.
book1D(name,name,200,0,3000);
501 name=
"HO Laser Timing Distribution";
hoTime = ib.
book1D(name,name,200,0,10);
502 name=
"HO Laser Energy RMS_div_Energy Distribution";
hoEnergyRMS = ib.
book1D(name,name,200,0,0.5);
503 name=
"HO Laser Timing RMS Distribution";
hoTimeRMS = ib.
book1D(name,name,200,0,1);
504 name=
"HF Laser Energy Distribution";
hfEnergy = ib.
book1D(name,name,200,0,3000);
505 name=
"HF Laser Timing Distribution";
hfTime = ib.
book1D(name,name,200,0,10);
506 name=
"HF Laser Energy RMS_div_Energy Distribution";
hfEnergyRMS = ib.
book1D(name,name,200,0,0.7);
507 name=
"HF Laser Timing RMS Distribution";
hfTimeRMS = ib.
book1D(name,name,200,0,1);
510 name=
"Laser Timing HO";
Time2Dho = ib.
book2D(name,name,33,-16,16,74,0,73);
512 name=
"Laser Energy HO";
Energy2Dho = ib.
book2D(name,name,33,-16,16,74,0,73);
514 name=
"HO Laser (Timing-Ref)+1";
refTime2Dho = ib.
book2D(name,name,33,-16,16,74,0,73);
521 name=
"HF RoBox average Time-Ref";
hf_time_rbx = ib.
book1D(name,name,24,0.5,24.5);
562 for(
int i=0;
i<56;
i++){
563 sprintf(str,
"RADDAM (%i %i)",RADDAM_CH[
i].
eta,RADDAM_CH[
i].
phi);
595 bool LaserEvent=
false;
596 bool LaserRaddam=
false;
603 if(trigger_data->wasLaserTrigger()) LaserEvent=
true;
639 if(
LocalRun==
false || LaserEvent==
false){
647 if ( fedData.
size() < 24 )
continue ;
654 if(value==
hc_RADDAM){ LaserEvent=
true; LaserRaddam=
true;
break;}
657 if(!LaserEvent)
return;
671 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth();
673 for(
int i=0;
i<digi->size();
i++) e+=
adc2fC[digi->sample(
i).adc()&0xff]-2.5;
682 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
684 for(N=0;N<56;N++)
if(eta==RADDAM_CH[N].eta && phi==RADDAM_CH[N].phi && depth==RADDAM_CH[N].depth)
break;
688 for(
int i=0;
i<nTS;
i++){
689 if(max1<
adc2fC[digi->sample(
i).adc()&0xff]){ nmax1=
i; max1=
adc2fC[digi->sample(
i).adc()&0xff]; }
692 for(
int i=0;
i<nTS;
i++){
693 if(
i==nmax1)
continue;
694 if(max2<
adc2fC[digi->sample(
i).adc()&0xff]){ nmax2=
i; max2=
adc2fC[digi->sample(
i).adc()&0xff]; }
698 nmax2=nmax1;nmax1=tmp1;
700 if(nmax1==0 || nmax2==(nTS-1))
continue;
701 if(nmax2!=(nmax1+1))
continue;
705 max1-=2.5; max2-=2.5;
707 float S4=S2+
adc2fC[digi->sample(nmax1-1).adc()&0xff]+
adc2fC[digi->sample(nmax2+1).adc()&0xff]-5.0;
722 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
723 double ped=(
adc2fC[digi->sample(0).adc()&0xff]+
adc2fC[digi->sample(1).adc()&0xff])/2.0;
725 for(
int i=0;
i<nTS;
i++) data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]-ped;
729 for(
int i=0;
i<nTS;
i++) data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]-ped;
736 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
737 double ped=(
adc2fC[digi->sample(0).adc()&0xff]+
adc2fC[digi->sample(1).adc()&0xff])/2.0;
738 if((eta>=11 && eta<=15 && phi>=59 && phi<=70) || (eta>=5 && eta<=10 && phi>=47 && phi<=58)){
739 for(
int i=0;
i<nTS;
i++) data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]-ped;
741 for(
int i=0;
i<nTS;
i++) data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]-ped;
748 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
749 double ped=
adc2fC[digi->sample(0).adc()&0xff];
750 for(
int i=0;
i<nTS;
i++) data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]-ped;
755 if(digi->id().cboxChannel()!=0 || digi->id().hcalSubdet()==0)
continue;
758 for(
int i=0;
i<nTS;
i++){ data[
i]=
adc2fC[digi->sample(
i).adc()&0xff]; e+=data[
i];}
764 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
766 for(N=0;N<56;N++)
if(eta==RADDAM_CH[N].eta && phi==RADDAM_CH[N].phi && depth==RADDAM_CH[N].depth)
break;
775 double T=0,nT=0,E=0,nE=0,Tr=0,nTr=0,Er=0,nEr=0;
779 double ave=0,
rms=0,time=0,time_rms=0;
782 T+=time; nT++; E+=ave; nE++;
784 Tr+=time; nTr++; Er+=ave; nEr++;}
792 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
795 T+=time; nT++; E+=ave; nE++;
797 Tr+=time; nTr++; Er+=ave; nEr++;}
805 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
808 T+=time; nT++; E+=ave; nE++;
810 Tr+=time; nTr++; Er+=ave; nEr++;}
818 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
821 T+=time; nT++; E+=ave; nE++;
823 Tr+=time; nTr++; Er+=ave; nEr++;}
827 if(nT<200 || nE<200 || nTr<200 || nEr<200)
return false;
836 float ave_t,ave_e,ave_t_r,ave_e_r;
839 for(
int i=0;
i<4;
i++){
845 for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
849 if(!(!(gid.null()) &&
863 double val=0,
rms=0,time=0,time_rms=0,VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
864 if(!
hb_data[eta+42][
phi-1][
depth-1].get_reference(&val,&
rms,&time,&time_rms))
continue;
866 if(!
hb_data[eta+42][
phi-1][
depth-1].get_average_time(&TIME,&TIME_RMS))
continue;
868 float diff_t=(TIME-ave_t)-(time-ave_t_r);
if(diff_t<0) diff_t=-diff_t;
873 if(VAL!=0 && val!=0 && ave_e!=0 && ave_e_r!=0){
874 float diff_e=((VAL/ave_e))/(val/ave_e_r);
882 double val=0,
rms=0,time=0,time_rms=0,VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
883 if(!
he_data[eta+42][
phi-1][
depth-1].get_reference(&val,&
rms,&time,&time_rms))
continue;
885 if(!
he_data[eta+42][
phi-1][
depth-1].get_average_time(&TIME,&TIME_RMS))
continue;
887 float diff_t=(TIME-ave_t)-(time-ave_t_r);
if(diff_t<0) diff_t=-diff_t;
892 if(VAL!=0 && val!=0 && ave_e!=0 && ave_e_r!=0){
893 float diff_e=((VAL/ave_e))/(val/ave_e_r);
901 double val=0,
rms=0,time=0,time_rms=0,VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
902 if(!
ho_data[eta+42][
phi-1][
depth-1].get_reference(&val,&
rms,&time,&time_rms))
continue;
904 if(!
ho_data[eta+42][
phi-1][
depth-1].get_average_time(&TIME,&TIME_RMS))
continue;
906 float diff_t=(TIME-ave_t)-(time-ave_t_r);
if(diff_t<0) diff_t=-diff_t;
911 if(VAL!=0 && val!=0 && ave_e!=0 && ave_e_r!=0){
912 float diff_e=((VAL/ave_e))/(val/ave_e_r);
920 double val=0,
rms=0,time=0,time_rms=0,VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
921 if(!
hf_data[eta+42][
phi-1][
depth-1].get_reference(&val,&
rms,&time,&time_rms))
continue;
923 if(!
hf_data[eta+42][
phi-1][
depth-1].get_average_time(&TIME,&TIME_RMS))
continue;
925 float diff_t=(TIME-ave_t)-(time-ave_t_r);
if(diff_t<0) diff_t=-diff_t;
930 if(VAL!=0 && val!=0 && ave_e!=0 && ave_e_r!=0){
931 float diff_e=((VAL/ave_e))/(val/ave_e_r);
939 for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
943 if(!(!(gid.null()) &&
1007 int eta_min=0,eta_max=0,
n=0;
1009 if(side>0){eta_min=1; eta_max=29;}
1010 if(side<0){eta_min=-29; eta_max=-1;}
1012 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=71;
j<=72;
j++)
for(
int k=1;
k<=3;
k++){
1013 double val,
rms,time,time_rms;
1014 double TIME,TIME_RMS;
1015 if(!
hb_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1016 if(!
hb_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1017 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1019 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=1;
j<=2;
j++)
for(
int k=1;
k<=3;
k++){
1020 double val,
rms,time,time_rms;
1021 double TIME,TIME_RMS;
1022 if(!
hb_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1023 if(!
hb_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1024 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1028 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=((rbx-1)*4-1);
j<=((rbx-1)*4+2);
j++)
for(
int k=1;
k<=3;
k++){
1029 double val,
rms,time,time_rms;
1030 double TIME,TIME_RMS;
1031 if(!
hb_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1032 if(!
hb_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1033 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1038 if(side>0){eta_min=1; eta_max=29;}
1039 if(side<0){eta_min=-29; eta_max=-1;}
1041 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=71;
j<=72;
j++)
for(
int k=1;
k<=3;
k++){
1042 double val,
rms,time,time_rms;
1043 double TIME,TIME_RMS;
1044 if(!
he_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1045 if(!
he_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1046 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1048 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=1;
j<=2;
j++)
for(
int k=1;
k<=3;
k++){
1049 double val,
rms,time,time_rms;
1050 double TIME,TIME_RMS;
1051 if(!
he_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1052 if(!
he_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1053 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1057 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=((rbx-1)*4-1);
j<=((rbx-1)*4+2);
j++)
for(
int k=1;
k<=3;
k++){
1058 double val,
rms,time,time_rms;
1059 double TIME,TIME_RMS;
1060 if(!
he_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1061 if(!
he_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1062 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1067 if(side>0){eta_min=29; eta_max=40;}
1068 if(side<0){eta_min=-40; eta_max=-29;}
1069 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=((rbx-1)*6+1);
j<=((rbx-1)*6+6);
j++)
for(
int k=1;
k<=2;
k++){
1070 double val,
rms,time,time_rms;
1071 double TIME,TIME_RMS;
1072 if(!
hf_data[
i+42][
j-1][
k-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1073 if(!
hf_data[
i+42][
j-1][
k-1].get_average_time(&TIME,&TIME_RMS))
continue;
1074 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1079 eta_min=-4,eta_max=4;
1081 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=71;
j<=72;
j++){
1082 double val,
rms,time,time_rms;
1083 double TIME,TIME_RMS;
1084 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1085 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1086 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1088 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=1;
j<=4;
j++){
1089 double val,
rms,time,time_rms;
1090 double TIME,TIME_RMS;
1091 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1092 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1093 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1097 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=((rbx-1)*6-1);
j<=((rbx-1)*6+4);
j++){
1098 double val,
rms,time,time_rms;
1099 double TIME,TIME_RMS;
1100 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1101 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1102 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1106 if(side==-1){ eta_min=-10,eta_max=-5;}
1107 if(side==-2){ eta_min=-15,eta_max=-11;}
1108 if(side==1) { eta_min=5, eta_max=10;}
1109 if(side==2) { eta_min=11, eta_max=15;}
1112 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=71;
j<=72;
j++){
1113 double val,
rms,time,time_rms;
1114 double TIME,TIME_RMS;
1115 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1116 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1117 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1119 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=1;
j<=10;
j++){
1120 double val,
rms,time,time_rms;
1121 double TIME,TIME_RMS;
1122 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1123 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1124 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1128 for(
int i=eta_min;
i<=eta_max;
i++)
for(
int j=((rbx-1)*12-1);
j<=((rbx-1)*12+10);
j++){
1129 double val,
rms,time,time_rms;
1130 double TIME,TIME_RMS;
1131 if(!
ho_data[
i+42][
j-1][4-1].get_reference(&val,&rms,&time,&time_rms))
continue;
1132 if(!
ho_data[
i+42][
j-1][4-1].get_average_time(&TIME,&TIME_RMS))
continue;
1133 xt+=TIME-time; xxt+=(TIME-time)*(TIME-time);
n++;
1138 if(
n<10)
return false;
1140 *rms=
sqrt(xxt/
n-(xt*xt)/(
n*
n));
1175 double T=0,nT=0,E=0,nE=0;
1188 T+=time; nT++; E+=ave; nE++;
1195 double T=0,nT=0,E=0,nE=0;
1198 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
1205 T+=time; nT++; E+=ave; nE++;
1215 double T=0,nT=0,E=0,nE=0;
1218 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
1224 T+=time; nT++; E+=ave; nE++;
1236 double T=0,nT=0,E=0,nE=0;
1239 double ave=0;
double rms=0;
double time=0;
double time_rms=0;
1245 T+=time; nT++; E+=ave; nE++;
1256 double T=0,nT=0,E=0,nE=0;
1259 double val=0,
rms=0,time=0,time_rms=0;
1260 double VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
1272 double T=0,nT=0,E=0,nE=0;
1275 double val=0,
rms=0,time=0,time_rms=0;
1276 double VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
1292 double T=0,nT=0,E=0,nE=0;
1295 double val=0,
rms=0,time=0,time_rms=0;
1296 double VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
1313 double T=0,nT=0,E=0,nE=0;
1316 double val=0,
rms=0,time=0,time_rms=0;
1317 double VAL=0,
RMS=0,TIME=0,TIME_RMS=0;
1333 for(
int i=1;
i<=18;
i++){
1334 float ave=-10,
rms=-10;
1338 if(ave<min) min=ave;
1339 if(ave>max) max=ave;
1342 for(
int i=1;
i<=18;
i++){
1343 float ave=-10,
rms=-10;
1347 if(ave<min) min=ave;
1348 if(ave>max) max=ave;
1353 for(
int i=1;
i<=18;
i++){
1354 float ave=-10,
rms=-10;
1358 if(ave<min) min=ave;
1359 if(ave>max) max=ave;
1362 for(
int i=1;
i<=18;
i++){
1363 float ave=-10,
rms=-10;
1367 if(ave<min) min=ave;
1368 if(ave>max) max=ave;
1376 for(
int i=1;
i<=6;
i++){
1377 float ave=-10,
rms=-10;
1381 if(ave<min) min=ave;
1382 if(ave>max) max=ave;
1385 for(
int i=1;
i<=6;
i++){
1386 float ave=-10,
rms=-10;
1390 if(ave<min) min=ave;
1391 if(ave>max) max=ave;
1394 for(
int i=1;
i<=12;
i++){
1395 float ave=-10,
rms=-10;
1399 if(ave<min) min=ave;
1400 if(ave>max) max=ave;
1403 for(
int i=1;
i<=6;
i++){
1404 float ave=-10,
rms=-10;
1408 if(ave<min) min=ave;
1409 if(ave>max) max=ave;
1412 for(
int i=1;
i<=6;
i++){
1413 float ave=-10,
rms=-10;
1417 if(ave<min) min=ave;
1418 if(ave>max) max=ave;
1426 for(
int i=1;
i<=12;
i++){
1427 float ave=-10,
rms=-10;
1431 if(ave<min) min=ave;
1432 if(ave>max) max=ave;
1435 for(
int i=1;
i<=12;
i++){
1436 float ave=-10,
rms=-10;
1440 if(ave<min) min=ave;
1441 if(ave>max) max=ave;
1449 double amp,
rms,Time,time_rms;
1451 char Subdet[10],str[500];
1456 sprintf(str,
"%sHcalDetDiagLaserData.root",
OutputFilePath.c_str());
1458 TFile *
theFile =
new TFile(str,
"RECREATE");
1459 if(!theFile->IsOpen())
return;
1461 sprintf(str,
"%d",
run_number); TObjString
run(str); run.Write(
"run number");
1462 sprintf(str,
"%d",
ievt_); TObjString
events(str); events.Write(
"Total events processed");
1463 sprintf(str,
"%d",
dataset_seq_number); TObjString dsnum(str); dsnum.Write(
"Dataset number");
1464 Long_t
t; t=time(0); strftime(str,30,
"%F %T",localtime(&t)); TObjString tm(str); tm.Write(
"Dataset creation time");
1466 TTree *
tree =
new TTree(
"HCAL Laser data",
"HCAL Laser data");
1468 tree->Branch(
"Subdet", &Subdet,
"Subdet/C");
1469 tree->Branch(
"eta", &Eta,
"Eta/I");
1470 tree->Branch(
"phi", &Phi,
"Phi/I");
1471 tree->Branch(
"depth", &Depth,
"Depth/I");
1472 tree->Branch(
"statistic",&Statistic,
"Statistic/I");
1473 tree->Branch(
"status", &Status,
"Status/I");
1474 tree->Branch(
"amp", &,
"amp/D");
1475 tree->Branch(
"rms", &rms,
"rms/D");
1476 tree->Branch(
"time", &Time,
"time/D");
1477 tree->Branch(
"time_rms", &time_rms,
"time_rms/D");
1478 sprintf(Subdet,
"HB");
1488 sprintf(Subdet,
"HE");
1498 sprintf(Subdet,
"HO");
1508 sprintf(Subdet,
"HF");
1518 sprintf(Subdet,
"CALIB_HB");
1521 Eta=
eta; Phi=
phi; Depth=0;
1528 sprintf(Subdet,
"CALIB_HE");
1531 Eta=
eta; Phi=
phi; Depth=0;
1538 sprintf(Subdet,
"CALIB_HO");
1541 Eta=
eta; Phi=
phi; Depth=0;
1548 sprintf(Subdet,
"CALIB_HF");
1551 Eta=
eta; Phi=
phi; Depth=0;
1564 Long_t
t; t=time(0); strftime(TIME,30,
"%F %T",localtime(&t));
1569 sprintf(str,
"HcalDetDiagLaser.xml");
1573 xmlFile.open(xmlName.c_str());
1575 xmlFile<<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
1576 xmlFile<<
"<ROOT>\n";
1577 xmlFile<<
" <HEADER>\n";
1578 xmlFile<<
" <HINTS mode='only-det-root'/>\n";
1579 xmlFile<<
" <TYPE>\n";
1580 xmlFile<<
" <EXTENSION_TABLE_NAME>HCAL_DETMON_LED_LASER_V1</EXTENSION_TABLE_NAME>\n";
1581 xmlFile<<
" <NAME>HCAL Laser HBHE HPD [abort gap global]</NAME>\n";
1582 xmlFile<<
" </TYPE>\n";
1583 xmlFile<<
" <!-- run details -->\n";
1584 xmlFile<<
" <RUN>\n";
1585 xmlFile<<
" <RUN_TYPE>GLOBAL-RUN</RUN_TYPE>\n";
1586 xmlFile<<
" <RUN_NUMBER>"<<
run_number<<
"</RUN_NUMBER>\n";
1587 xmlFile<<
" <RUN_BEGIN_TIMESTAMP>2009-01-01 00:00:00</RUN_BEGIN_TIMESTAMP>\n";
1588 xmlFile<<
" <COMMENT_DESCRIPTION>hcal laser data</COMMENT_DESCRIPTION>\n";
1589 xmlFile<<
" <LOCATION>P5</LOCATION>\n";
1590 xmlFile<<
" <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
1591 xmlFile<<
" </RUN>\n";
1592 xmlFile<<
" </HEADER>\n";
1593 xmlFile<<
" <DATA_SET>\n";
1594 xmlFile<<
" <!-- optional dataset metadata -->\n\n";
1596 xmlFile<<
" <SET_BEGIN_TIMESTAMP>2009-01-01 00:00:00</SET_BEGIN_TIMESTAMP>\n";
1597 xmlFile<<
" <SET_END_TIMESTAMP>2009-01-01 00:00:00</SET_END_TIMESTAMP>\n";
1598 xmlFile<<
" <NUMBER_OF_EVENTS_IN_SET>"<<
ievt_<<
"</NUMBER_OF_EVENTS_IN_SET>\n";
1599 xmlFile<<
" <COMMENT_DESCRIPTION>Automatic DQM output</COMMENT_DESCRIPTION>\n";
1600 xmlFile<<
" <DATA_FILE_NAME>"<< xmlName <<
"</DATA_FILE_NAME>\n";
1601 xmlFile<<
" <IMAGE_FILE_NAME>data plot url or file path</IMAGE_FILE_NAME>\n";
1602 xmlFile<<
" <!-- who and when created this dataset-->\n\n";
1603 xmlFile<<
" <CREATE_TIMESTAMP>"<<TIME<<
"</CREATE_TIMESTAMP>\n";
1604 xmlFile<<
" <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
1605 xmlFile<<
" <!-- version (string) and subversion (number) -->\n";
1606 xmlFile<<
" <!-- fields are used to read data back from the database -->\n\n";
1607 xmlFile<<
" <VERSION>"<<run_number<<dataset_seq_number<<
"</VERSION>\n";
1608 xmlFile<<
" <SUBVERSION>1</SUBVERSION>\n";
1609 xmlFile<<
" <!-- Assign predefined dataset attributes -->\n\n";
1610 xmlFile<<
" <PREDEFINED_ATTRIBUTES>\n";
1611 xmlFile<<
" <ATTRIBUTE>\n";
1612 xmlFile<<
" <NAME>HCAL Dataset Status</NAME>\n";
1613 xmlFile<<
" <VALUE>VALID</VALUE>\n";
1614 xmlFile<<
" </ATTRIBUTE>\n";
1615 xmlFile<<
" </PREDEFINED_ATTRIBUTES>\n";
1616 xmlFile<<
" <!-- multiple data block records -->\n\n";
1619 for(std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
1623 if(!(!(gid.null()) &&
1635 double e=0,e_rms=0,t=0,t_rms=0;
1661 xmlFile<<
" <DATA>\n";
1662 xmlFile<<
" <NUMBER_OF_EVENTS_USED>"<<Statistic<<
"</NUMBER_OF_EVENTS_USED>\n";
1663 xmlFile<<
" <SIGNAL_MEAN>"<<e<<
"</SIGNAL_MEAN>\n";
1664 xmlFile<<
" <SIGNAL_RMS>"<<e_rms<<
"</SIGNAL_RMS>\n";
1665 xmlFile<<
" <TIME_MEAN>"<<t<<
"</TIME_MEAN>\n";
1666 xmlFile<<
" <TIME_RMS>"<<t_rms<<
"</TIME_RMS>\n";
1667 xmlFile<<
" <CHANNEL_STATUS_WORD>"<<Status<<
"</CHANNEL_STATUS_WORD>\n";
1668 xmlFile<<
" <CHANNEL_OBJECTNAME>HcalDetId</CHANNEL_OBJECTNAME>\n";
1669 xmlFile<<
" <SUBDET>"<<subdet<<
"</SUBDET>\n";
1670 xmlFile<<
" <IETA>"<<eta<<
"</IETA>\n";
1671 xmlFile<<
" <IPHI>"<<phi<<
"</IPHI>\n";
1672 xmlFile<<
" <DEPTH>"<<depth<<
"</DEPTH>\n";
1673 xmlFile<<
" <TYPE>0</TYPE>\n";
1674 xmlFile<<
" </DATA>\n";
1677 xmlFile<<
" </DATA_SET>\n";
1678 xmlFile<<
"</ROOT>\n";
1683 sprintf(str,
"HcalDetDiagLaserCalib_%i_%i.xml",run_number,dataset_seq_number);
1685 std::ofstream xmlFileCalib;
1686 xmlFileCalib.open(xmlNameCalib.c_str());
1688 xmlFileCalib<<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
1689 xmlFileCalib<<
"<ROOT>\n";
1690 xmlFileCalib<<
" <HEADER>\n";
1691 xmlFileCalib<<
" <HINTS mode='only-det-root'/>\n";
1692 xmlFileCalib<<
" <TYPE>\n";
1693 xmlFileCalib<<
" <EXTENSION_TABLE_NAME>HCAL_DETMON_LED_LASER_V1</EXTENSION_TABLE_NAME>\n";
1694 xmlFileCalib<<
" <NAME>HCAL Laser CALIB [abort gap global]</NAME>\n";
1695 xmlFileCalib<<
" </TYPE>\n";
1696 xmlFileCalib<<
" <!-- run details -->\n";
1697 xmlFileCalib<<
" <RUN>\n";
1698 xmlFileCalib<<
" <RUN_TYPE>Global-RUN</RUN_TYPE>\n";
1699 xmlFileCalib<<
" <RUN_NUMBER>"<<run_number<<
"</RUN_NUMBER>\n";
1700 xmlFileCalib<<
" <RUN_BEGIN_TIMESTAMP>2009-01-01 00:00:00</RUN_BEGIN_TIMESTAMP>\n";
1701 xmlFileCalib<<
" <COMMENT_DESCRIPTION>hcal Laser CALIB data</COMMENT_DESCRIPTION>\n";
1702 xmlFileCalib<<
" <LOCATION>P5</LOCATION>\n";
1703 xmlFileCalib<<
" <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
1704 xmlFileCalib<<
" </RUN>\n";
1705 xmlFileCalib<<
" </HEADER>\n";
1706 xmlFileCalib<<
" <DATA_SET>\n";
1707 xmlFileCalib<<
" <!-- optional dataset metadata -->\n\n";
1708 xmlFileCalib<<
" <SET_NUMBER>"<<dataset_seq_number<<
"</SET_NUMBER>\n";
1709 xmlFileCalib<<
" <SET_BEGIN_TIMESTAMP>2009-01-01 00:00:00</SET_BEGIN_TIMESTAMP>\n";
1710 xmlFileCalib<<
" <SET_END_TIMESTAMP>2009-01-01 00:00:00</SET_END_TIMESTAMP>\n";
1711 xmlFileCalib<<
" <NUMBER_OF_EVENTS_IN_SET>"<<ievt_<<
"</NUMBER_OF_EVENTS_IN_SET>\n";
1712 xmlFileCalib<<
" <COMMENT_DESCRIPTION>Automatic DQM output</COMMENT_DESCRIPTION>\n";
1713 xmlFileCalib<<
" <DATA_FILE_NAME>"<< xmlNameCalib <<
"</DATA_FILE_NAME>\n";
1714 xmlFileCalib<<
" <IMAGE_FILE_NAME>data plot url or file path</IMAGE_FILE_NAME>\n";
1715 xmlFileCalib<<
" <!-- who and when created this dataset-->\n\n";
1716 xmlFileCalib<<
" <CREATE_TIMESTAMP>"<<TIME<<
"</CREATE_TIMESTAMP>\n";
1717 xmlFileCalib<<
" <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
1718 xmlFileCalib<<
" <!-- version (string) and subversion (number) -->\n";
1719 xmlFileCalib<<
" <!-- fields are used to read data back from the database -->\n\n";
1720 xmlFileCalib<<
" <VERSION>"<<run_number<<dataset_seq_number<<
"</VERSION>\n";
1721 xmlFileCalib<<
" <SUBVERSION>1</SUBVERSION>\n";
1722 xmlFileCalib<<
" <!-- Assign predefined dataset attributes -->\n\n";
1723 xmlFileCalib<<
" <PREDEFINED_ATTRIBUTES>\n";
1724 xmlFileCalib<<
" <ATTRIBUTE>\n";
1725 xmlFileCalib<<
" <NAME>HCAL Dataset Status</NAME>\n";
1726 xmlFileCalib<<
" <VALUE>VALID</VALUE>\n";
1727 xmlFileCalib<<
" </ATTRIBUTE>\n";
1728 xmlFileCalib<<
" </PREDEFINED_ATTRIBUTES>\n";
1729 xmlFileCalib<<
" <!-- multiple data block records -->\n\n";
1733 if(
sd==1) subdet=
"HB";
1734 if(
sd==2) subdet=
"HE";
1735 if(
sd==3) subdet=
"HO";
1736 if(
sd==4) subdet=
"HF";
1738 double e=0,e_rms=0,t=0,t_rms=0;
1743 xmlFileCalib<<
" <DATA>\n";
1744 xmlFileCalib<<
" <NUMBER_OF_EVENTS_USED>"<<Statistic<<
"</NUMBER_OF_EVENTS_USED>\n";
1745 xmlFileCalib<<
" <SIGNAL_MEAN>"<<e<<
"</SIGNAL_MEAN>\n";
1746 xmlFileCalib<<
" <SIGNAL_RMS>"<<e_rms<<
"</SIGNAL_RMS>\n";
1747 xmlFileCalib<<
" <TIME_MEAN>"<<t<<
"</TIME_MEAN>\n";
1748 xmlFileCalib<<
" <TIME_RMS>"<<t_rms<<
"</TIME_RMS>\n";
1749 xmlFileCalib<<
" <CHANNEL_STATUS_WORD>"<<Status<<
"</CHANNEL_STATUS_WORD>\n";
1750 xmlFileCalib<<
" <CHANNEL_OBJECTNAME>HcalDetId</CHANNEL_OBJECTNAME>\n";
1751 xmlFileCalib<<
" <SUBDET>"<<subdet<<
"</SUBDET>\n";
1752 xmlFileCalib<<
" <IETA>"<<
eta<<
"</IETA>\n";
1753 xmlFileCalib<<
" <IPHI>"<<
phi<<
"</IPHI>\n";
1754 xmlFileCalib<<
" <DEPTH>"<<0<<
"</DEPTH>\n";
1755 xmlFileCalib<<
" <TYPE>0</TYPE>\n";
1756 xmlFileCalib<<
" </DATA>\n";
1760 xmlFileCalib<<
" </DATA_SET>\n";
1761 xmlFileCalib<<
"</ROOT>\n";
1762 xmlFileCalib.close();
1764 sprintf(str,
"zip %s.zip %s %s",xmlName.c_str(),xmlName.c_str(),xmlNameCalib.c_str());
1766 sprintf(str,
"rm -f %s %s",xmlName.c_str(),xmlNameCalib.c_str());
1768 sprintf(str,
"mv -f %s.zip %s",xmlName.c_str(),
XmlFilePath.c_str());
1781 double amp,
rms,time,time_rms;
1788 if(!f->IsOpen())
return ;
1789 TObjString *STR=(TObjString *)f->Get(
"run number");
1793 TTree*
t=(TTree*)f->Get(
"HCAL Laser data");
1795 t->SetBranchAddress(
"Subdet", subdet);
1796 t->SetBranchAddress(
"eta", &Eta);
1797 t->SetBranchAddress(
"phi", &Phi);
1798 t->SetBranchAddress(
"depth", &Depth);
1799 t->SetBranchAddress(
"amp", &);
1800 t->SetBranchAddress(
"rms", &rms);
1801 t->SetBranchAddress(
"time", &time);
1802 t->SetBranchAddress(
"time_rms", &time_rms);
1803 for(
int ievt=0;ievt<t->GetEntries();ievt++){
1805 if(strcmp(subdet,
"HB")==0)
hb_data[Eta+42][Phi-1][Depth-1].
set_reference(amp,rms,time,time_rms);
1806 if(strcmp(subdet,
"HE")==0)
he_data[Eta+42][Phi-1][Depth-1].
set_reference(amp,rms,time,time_rms);
1807 if(strcmp(subdet,
"HO")==0)
ho_data[Eta+42][Phi-1][Depth-1].
set_reference(amp,rms,time,time_rms);
1808 if(strcmp(subdet,
"HF")==0)
hf_data[Eta+42][Phi-1][Depth-1].
set_reference(amp,rms,time,time_rms);
1819 double amp,
rms,time,time_rms;
1825 if(gSystem->AccessPathName(
DatasetName.c_str()))
return;
1828 if(!f->IsOpen())
return ;
1831 t=(TTree*)f->Get(
"HCAL Laser data");
1833 t->SetBranchAddress(
"Subdet", subdet);
1834 t->SetBranchAddress(
"eta", &Eta);
1835 t->SetBranchAddress(
"phi", &Phi);
1836 t->SetBranchAddress(
"depth", &Depth);
1837 t->SetBranchAddress(
"amp", &);
1838 t->SetBranchAddress(
"rms", &rms);
1839 t->SetBranchAddress(
"time", &time);
1840 t->SetBranchAddress(
"time_rms", &time_rms);
1841 t->SetBranchAddress(
"statistic",&Statistic);
1842 for(
int ievt=0;ievt<t->GetEntries();ievt++){
1844 if(strcmp(subdet,
"HB")==0){
nHB++;
1849 if(strcmp(subdet,
"HE")==0){
nHE++;
1854 if(strcmp(subdet,
"HO")==0){
nHO++;
1859 if(strcmp(subdet,
"HF")==0){
nHF++;
1864 if(strcmp(subdet,
"CALIB_HB")==0){
1869 if(strcmp(subdet,
"CALIB_HE")==0){
1874 if(strcmp(subdet,
"CALIB_HO")==0){
1879 if(strcmp(subdet,
"CALIB_HF")==0){
1885 TObjString *STR1=(TObjString *)f->Get(
"run number");
1888 TObjString *STR2=(TObjString *)f->Get(
"Total events processed");
1891 TObjString *STR3=(TObjString *)f->Get(
"Dataset number");
1898 float adc_range[20]={14,28,40,52,67,132,202,262,322,397,722,1072,1372,1672,2047,3672,5422,6922,8422,10297};
1899 int adc_bins[20]={1,2,3,4,5,5,10,15,20,25,25,50,75,100,125,125,250,375,500,625};
1901 TF1 *fitFunc =
new TF1(
"fitFunc",
"gaus");
1902 if(fitFunc==0)
return;
1903 for(
int i=0;
i<56;
i++){
1904 float sum1=0,
sum2=0,
n=0;
1906 for(
int j=0;
j<128;
j++){
1916 for(N=1;N<19;N++) if(sum1>adc_range[N-1] && sum1<adc_range[
N])
break;
1918 for(N=1;N<19;N++) if(sum2>adc_range[N-1] &&
sum2<adc_range[
N])
break;
1920 sprintf(str,
"Raddam(%i,%i,%i) S1",RADDAM_CH[
i].
eta,RADDAM_CH[
i].
phi,RADDAM_CH[
i].
depth);
1921 S1[
i]=
new TH1F(str,str,10000/Ws1,0,10000);
1922 sprintf(str,
"Raddam(%i,%i,%i) S2",RADDAM_CH[
i].eta,RADDAM_CH[
i].phi,RADDAM_CH[
i].depth);
1923 S2[
i]=
new TH1F(str,str,10000/Ws1,0,10000);
1924 for(
int j=0;
j<128;
j++){
1929 S1[
i]->Fit(fitFunc);
1930 S1[
i]->GetFunction(
"fitFunc")->GetParameters(parm);
1939 S2[
i]->Fit(fitFunc);
1940 S2[
i]->GetFunction(
"fitFunc")->GetParameters(parm);
1952 Long_t
t; t=time(0); strftime(TIME,30,
"%F %T",localtime(&t));
1957 sprintf(str,
"HcalDetDiagRaddam.xml");
1961 xmlFile.open(xmlName.c_str());
1962 xmlFile<<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n";
1963 xmlFile<<
"<ROOT>\n";
1964 xmlFile<<
" <HEADER>\n";
1965 xmlFile<<
" <TYPE>\n";
1966 xmlFile<<
" <EXTENSION_TABLE_NAME>HCAL_RADDAM</EXTENSION_TABLE_NAME>\n";
1967 xmlFile<<
" <NAME>HCAL Raddam</NAME>\n";
1968 xmlFile<<
" </TYPE>\n";
1969 xmlFile<<
" <!-- run details -->\n";
1970 xmlFile<<
" <RUN>\n";
1971 xmlFile<<
" <RUN_TYPE>TEST LOCAL-RUN</RUN_TYPE>\n";
1972 xmlFile<<
" <RUN_NUMBER>"<<
run_number<<
"</RUN_NUMBER>\n";
1973 xmlFile<<
" <RUN_BEGIN_TIMESTAMP>"<<TIME<<
"</RUN_BEGIN_TIMESTAMP>\n";
1974 xmlFile<<
" <COMMENT_DESCRIPTION>hcal raddam data</COMMENT_DESCRIPTION>\n";
1975 xmlFile<<
" <LOCATION>P5</LOCATION>\n";
1976 xmlFile<<
" <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
1977 xmlFile<<
" </RUN>\n";
1978 xmlFile<<
" </HEADER>\n";
1979 xmlFile<<
" <DATA_SET>\n";
1980 xmlFile<<
" <COMMENT_DESCRIPTION>Test Raddam data</COMMENT_DESCRIPTION>\n";
1981 xmlFile<<
" <CREATE_TIMESTAMP>"<<TIME<<
"</CREATE_TIMESTAMP>\n";
1982 xmlFile<<
" <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
1983 xmlFile<<
" <VERSION>Test_Version_1</VERSION>\n";
1985 for(
int i=0;
i<56;
i++){
1986 xmlFile<<
" <DATA>\n";
1987 xmlFile<<
" <SUBDET>HF</SUBDET>\n";
1988 xmlFile<<
" <IETA>"<<RADDAM_CH[
i].
eta<<
"</IETA>\n";
1989 xmlFile<<
" <IPHI>"<<RADDAM_CH[
i].
phi<<
"</IPHI>\n";
1990 xmlFile<<
" <DEPTH>"<<RADDAM_CH[
i].
depth<<
"</DEPTH>\n";
2013 xmlFile<<
" </DATA>\n";
2015 xmlFile<<
" </DATA_SET>\n";
2016 xmlFile<<
"</ROOT>\n";
2019 sprintf(str,
"zip %s.zip %s",xmlName.c_str(),xmlName.c_str());
2021 sprintf(str,
"rm -f %s",xmlName.c_str());
2023 sprintf(str,
"mv -f %s.zip %s",xmlName.c_str(),
XmlFilePath.c_str());
2030 sprintf(str,
"%sHcalDetDiagRaddamData.root",
OutputFilePath.c_str());
2032 TFile *
theFile =
new TFile(str,
"RECREATE");
2033 if(!theFile->IsOpen())
return;
2035 for(
int i=0;
i<56;
i++){
2036 if(
S1[
i]!=0)
S1[
i]->Write();
2037 if(
S2[
i]!=0)
S2[
i]->Write();
void analyze(const edm::Event &, const edm::EventSetup &) override
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhe_
void setBinContent(int binx, double content)
set content of bin (1-D)
edm::Ref< Container > Ref
void add_statistics(double *data, int nTS)
void endRun(const edm::Run &run, const edm::EventSetup &c) override
std::vector< HcalElectronicsId > allElectronicsIdPrecision() const
double GetEnergy(double *data, int n)
HcalDetDiagLaserData * GetCalib(std::string sd, int eta, int phi)
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
void set_reference(float val, float rms, float time, float time_rms)
void setAxisRange(double xmin, double xmax, int axis=1)
set x-, y- or z-axis range (axis=1, 2, 3 respectively)
edm::EDGetTokenT< HcalCalibDigiCollection > tok_calib_
edm::EDGetTokenT< FEDRawDataCollection > tok_raw_
bool get_average_amp(double *ave, double *rms)
MonitorElement * refTime2Dho
bool get_average_amp1(double *ave, double *rms)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * Time2Dhbhehf
MonitorElement * hfEnergy
#define DEFINE_FWK_MODULE(type)
const HcalElectronicsMap * emap
double LaserTimingThreshold
MonitorElement * bookInt(Args &&...args)
std::vector< HFDataFrame >::const_iterator const_iterator
MonitorElement * bookString(Args &&...args)
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * hbheTimeRMS
const Item * getValues(DetId fId, bool throwOnFail=true) const
void set_statistics(int stat)
bool get_ave_subdet(int sd, float *ave_t, float *ave_e, float *ave_t_r, float *ave_e_r)
edm::EDGetTokenT< HFDigiCollection > tok_hf_
MonitorElement * ho_time_rbx
static const Raddam_ch RADDAM_CH[56]
static const float adc2fC[128]
bool get_ave_rbx(int sd, int side, int rbx, float *ave, float *rms)
MonitorElement * Time2Dho
std::string htmlOutputPath
std::string ReferenceData
size_t size() const
Lenght of the data buffer in bytes.
bool get_average_time(double *ave, double *rms)
std::map< unsigned int, int > KnownBadCells_
MonitorElement * refEnergy2Dhbhehf
MonitorElement * hfTimeRMS
uint32_t rawId() const
get the raw id
MonitorElement * Raddam[56]
MonitorElement * refTime2Dhbhehf
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
MVATrainerComputer * calib
std::vector< MonitorElement * > depth
EtaPhiHists * ProblemCellsByDepth_timing
~HcalDetDiagLaserMonitor()
MonitorElement * hbheTime
void fillProblems(int sd)
MonitorElement * hbheEnergyRMS
MonitorElement * hb_time_rbx
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * he_time_rbx
std::vector< DetId > getAllChannels() const
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
EtaPhiHists * ProblemCellsByDepth_energy_val
int ieta() const
get the cell ieta
void change_status(int val)
MonitorElement * book1D(Args &&...args)
Abs< T >::type abs(const T &t)
MonitorElement * htmlFolder
void setup(DQMStore::IBooker &m_dbe, std::string Name, std::string Units="")
MonitorElement * hoTimeRMS
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * Energy2Dho
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
void bookHistograms(DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c) override
edm::EDGetTokenT< HODigiCollection > tok_ho_
int iphi() const
get the cell iphi
HcalDetDiagLaserData hb_data[85][72][4]
HcalDetDiagLaserMonitor(const edm::ParameterSet &)
MonitorElement * refEnergy2Dho
std::string OutputFilePath
bool get_average_time1(double *ave, double *rms)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * Energy2Dhbhehf
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
MonitorElement * book2D(Args &&...args)
MonitorElement * hfEnergyRMS
EtaPhiHists * ProblemCellsByDepth_energy
T const * product() const
bool xmlFile(const std::string fParam)
int CalcEtaBin(int subdet, int ieta, int depth)
double GetTime(double *data, int n=10)
Geom::Phi< T > phi() const
void set_statistics1(int stat)
MonitorElement * hbheEnergy
HcalDetDiagLaserData hf_data[85][72][4]
double LaserEnergyThreshold
EtaPhiHists * ProblemCellsByDepth_timing_val
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found
MonitorElement * hoEnergyRMS
bool get_reference(double *val, double *rms, double *time, double *time_rms)
MonitorElement * hf_time_rbx
void set_data(float val, float rms, float time, float time_rms)
HcalDetDiagLaserData he_data[85][72][4]
Detector det() const
get the detector field from this detid
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::vector< std::string > problemnames_
void Reset(void)
reset ME (ie. contents, errors, etc)
HcalDetDiagLaserData ho_data[85][72][4]
virtual void setup(DQMStore::IBooker &)
edm::InputTag inputLabelDigi_
edm::EDGetTokenT< HcalTBTriggerData > tok_tb_
HcalDetDiagLaserData calib_data[5][5][72]
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
HcalRaddamData Raddam_data[56]
MonitorElement * hoEnergy