69 for(
int i=0;
i<128;
i++)
adc[
i]=0;
96 for(
int i=1;i<128;i++) if(adc[i]>
max){ max=
adc[
i]; maxi=
i;}
97 from=0; to=maxi+6;
if(to>127) to=127;
98 for(
int i=from;
i<=to;
i++){
102 if(nSum>0) *ave=Sum/nSum;
else return false;
104 for(
int i=from;
i<=to;
i++) Sum+=
adc[
i]*(
i-*ave)*(
i-*ave);
269 if (prefixME_.size()>0 && prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
270 prefixME_.append(
"/");
322 emap=conditions_->getHcalMapping();
330 for (std::vector<DetId>::const_iterator
i = mydetids.begin();
i!=mydetids.end();++
i){
344 meEVT_ = ib.
bookInt(
"HcalDetDiagPedestalMonitor Event Number");
345 meRUN_ = ib.
bookInt(
"HcalDetDiagPedestalMonitor Run Number");
385 name=
"HB Pedestal Distribution (average over 4 caps)";
PedestalsAve4HB = ib.
book1D(name,name,200,0,6);
386 name=
"HE Pedestal Distribution (average over 4 caps)";
PedestalsAve4HE = ib.
book1D(name,name,200,0,6);
387 name=
"HO Pedestal Distribution (average over 4 caps)";
PedestalsAve4HO = ib.
book1D(name,name,200,0,6);
388 name=
"HF Pedestal Distribution (average over 4 caps)";
PedestalsAve4HF = ib.
book1D(name,name,200,0,6);
391 name=
"HB Pedestal-Reference Distribution (average over 4 caps)";
PedestalsAve4HBref= ib.
book1D(name,name,1500,-3,3);
392 name=
"HE Pedestal-Reference Distribution (average over 4 caps)";
PedestalsAve4HEref= ib.
book1D(name,name,1500,-3,3);
393 name=
"HO Pedestal-Reference Distribution (average over 4 caps)";
PedestalsAve4HOref= ib.
book1D(name,name,1500,-3,3);
394 name=
"HF Pedestal-Reference Distribution (average over 4 caps)";
PedestalsAve4HFref= ib.
book1D(name,name,1500,-3,3);
396 name=
"HB Pedestal RMS Distribution (individual cap)";
PedestalsRmsHB = ib.
book1D(name,name,200,0,2);
397 name=
"HE Pedestal RMS Distribution (individual cap)";
PedestalsRmsHE = ib.
book1D(name,name,200,0,2);
398 name=
"HO Pedestal RMS Distribution (individual cap)";
PedestalsRmsHO = ib.
book1D(name,name,200,0,2);
399 name=
"HF Pedestal RMS Distribution (individual cap)";
PedestalsRmsHF = ib.
book1D(name,name,200,0,2);
471 bool PedestalEvent=
false;
477 if((trigger_data->triggerWord())==5) PedestalEvent=
true;
481 if(
LocalRun && !PedestalEvent)
return;
509 if ( fedData.
size() < 24 )
continue ;
511 if ( calibType < 0 ) calibType =
value ;
530 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
532 if(nTS<8 && nTS>=4) nTS=4;
546 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
548 if(nTS<8 && nTS>=4) nTS=4;
557 eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
559 if(nTS<8 && nTS>=4) nTS=4;
583 double PED=0,
RMS=0,nped=0,nrms=0,ave=0,
rms=0;
612 double PED=0,
RMS=0,nped=0,nrms=0,ave=0,
rms=0;
625 double ave=0,
rms=0,sum=0;
636 double ave=0,
rms=0,sum=0;
648 double ave=0,
rms=0,sum=0;
649 if((
eta>=11 && eta<=15 && phi>=59 &&
phi<=70) || (
eta>=5 && eta<=10 && phi>=47 &&
phi<=58)){
667 double ave=0,
rms=0,sum=0;
677 for(
int i=0;
i<4;
i++){
698 for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++) {
702 if(!(!(gid.null()) &&
721 double ped[4],
rms[4],ped_ref[4],rms_ref[4];
732 if(stat>0 && stat!=(
ievt_*2)){
if(
nTS_HBHE==8) status=(double)stat/(
double)(
ievt_*2);
else status=(double)stat/(
double)(
ievt_);
742 if(
hb_data[eta+42][
phi-1][
depth-1][0].get_reference(&ped_ref[0],&rms_ref[0])
750 double ave=(ped[0]+ped[1]+ped[2]+ped[3])/4.0;
751 double ave_ref=(ped_ref[0]+ped_ref[1]+ped_ref[2]+ped_ref[3])/4.0;
753 double deltaRms=rms[0]-rms_ref[0];
PedestalsRmsHBref->
Fill(deltaRms);
if(deltaRms<0) deltaRms=-deltaRms;
754 for(
int i=1;
i<4;
i++){
756 if(fabs(tmp)>fabs(deltaRms)) deltaRms=
tmp;
780 double ped[4],
rms[4],ped_ref[4],rms_ref[4];
791 if(stat>0 && stat!=(
ievt_*2)){
if(
nTS_HBHE==8) status=(double)stat/(
double)(
ievt_*2);
else status=(double)stat/(
double)(
ievt_);
801 if(
he_data[eta+42][
phi-1][
depth-1][0].get_reference(&ped_ref[0],&rms_ref[0])
809 double ave=(ped[0]+ped[1]+ped[2]+ped[3])/4.0;
810 double ave_ref=(ped_ref[0]+ped_ref[1]+ped_ref[2]+ped_ref[3])/4.0;
812 double deltaRms=rms[0]-rms_ref[0];
PedestalsRmsHEref->
Fill(deltaRms);
if(deltaRms<0) deltaRms=-deltaRms;
813 for(
int i=1;
i<4;
i++){
815 if(fabs(tmp)>fabs(deltaRms)) deltaRms=
tmp;
839 double ped[4],
rms[4],ped_ref[4],rms_ref[4];
850 if(stat>0 && stat!=(
ievt_*2)){
if(
nTS_HO==8) status=(double)stat/(
double)(
ievt_*2);
else status=(double)stat/(
double)(
ievt_);
860 if(
ho_data[eta+42][
phi-1][
depth-1][0].get_reference(&ped_ref[0],&rms_ref[0])
870 if((eta>=11 && eta<=15 && phi>=59 &&
phi<=70) || (eta>=5 && eta<=10 && phi>=47 &&
phi<=58))THRESTHOLD*=2;
871 double ave=(ped[0]+ped[1]+ped[2]+ped[3])/4.0;
872 double ave_ref=(ped_ref[0]+ped_ref[1]+ped_ref[2]+ped_ref[3])/4.0;
874 double deltaRms=rms[0]-rms_ref[0];
PedestalsRmsHOref->
Fill(deltaRms);
if(deltaRms<0) deltaRms=-deltaRms;
875 for(
int i=1;
i<4;
i++){
877 if(fabs(tmp)>fabs(deltaRms)) deltaRms=
tmp;
887 if(deltaRms>THRESTHOLD){
901 double ped[4],
rms[4],ped_ref[4],rms_ref[4];
912 if(stat>0 && stat!=(
ievt_*2)){
if(
nTS_HF==8) status=(double)stat/(
double)(
ievt_*2);
else status=(double)stat/(
double)(
ievt_);
922 if(
hf_data[eta+42][
phi-1][
depth-1][0].get_reference(&ped_ref[0],&rms_ref[0])
930 double ave=(ped[0]+ped[1]+ped[2]+ped[3])/4.0;
931 double ave_ref=(ped_ref[0]+ped_ref[1]+ped_ref[2]+ped_ref[3])/4.0;
933 double deltaRms=rms[0]-rms_ref[0];
PedestalsRmsHFref->
Fill(deltaRms);
if(deltaRms<0) deltaRms=-deltaRms;
934 for(
int i=1;
i<4;
i++){
936 if(fabs(tmp)>fabs(deltaRms)) deltaRms=
tmp;
969 double ped[4],
rms[4];
971 char Subdet[10],str[500];
976 sprintf(str,
"%sHcalDetDiagPedestalData.root",
OutputFilePath.c_str());
978 TFile *
theFile =
new TFile(str,
"RECREATE");
979 if(!theFile->IsOpen())
return;
981 sprintf(str,
"%d",
run_number); TObjString
run(str); run.Write(
"run number");
982 sprintf(str,
"%d",
ievt_); TObjString
events(str); events.Write(
"Total events processed");
983 sprintf(str,
"%d",
dataset_seq_number); TObjString dsnum(str); dsnum.Write(
"Dataset number");
984 Long_t
t; t=time(0); strftime(str,30,
"%F %T",localtime(&t)); TObjString tm(str); tm.Write(
"Dataset creation time");
986 TTree *
tree =
new TTree(
"HCAL Pedestal data",
"HCAL Pedestal data");
988 tree->Branch(
"Subdet", &Subdet,
"Subdet/C");
989 tree->Branch(
"eta", &Eta,
"Eta/I");
990 tree->Branch(
"phi", &Phi,
"Phi/I");
991 tree->Branch(
"depth", &Depth,
"Depth/I");
992 tree->Branch(
"statistic",&Statistic,
"Statistic/I");
993 tree->Branch(
"status", &Status,
"Status/I");
994 tree->Branch(
"cap0_ped", &ped[0],
"cap0_ped/D");
995 tree->Branch(
"cap0_rms", &rms[0],
"cap0_rms/D");
996 tree->Branch(
"cap1_ped", &ped[1],
"cap1_ped/D");
997 tree->Branch(
"cap1_rms", &rms[1],
"cap1_rms/D");
998 tree->Branch(
"cap2_ped", &ped[2],
"cap2_ped/D");
999 tree->Branch(
"cap2_rms", &rms[2],
"cap2_rms/D");
1000 tree->Branch(
"cap3_ped", &ped[3],
"cap3_ped/D");
1001 tree->Branch(
"cap3_rms", &rms[3],
"cap3_rms/D");
1002 sprintf(Subdet,
"HB");
1014 sprintf(Subdet,
"HE");
1026 sprintf(Subdet,
"HO");
1038 sprintf(Subdet,
"HF");
1060 sprintf(str,
"HcalDetDiagPedestals.xml");
1065 xmlFile.open(xmlName.c_str());
1067 xmlFile<<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
1068 xmlFile<<
"<ROOT>\n";
1069 xmlFile<<
" <HEADER>\n";
1070 xmlFile<<
" <HINTS mode='only-det-root'/>\n";
1071 xmlFile<<
" <TYPE>\n";
1072 xmlFile<<
" <EXTENSION_TABLE_NAME>HCAL_DETMON_PEDESTALS_V1</EXTENSION_TABLE_NAME>\n";
1073 xmlFile<<
" <NAME>HCAL Pedestals [abort gap global]</NAME>\n";
1074 xmlFile<<
" </TYPE>\n";
1075 xmlFile<<
" <!-- run details -->\n";
1076 xmlFile<<
" <RUN>\n";
1077 xmlFile<<
" <RUN_TYPE>GLOBAL-RUN</RUN_TYPE>\n";
1078 xmlFile<<
" <RUN_NUMBER>"<<
run_number<<
"</RUN_NUMBER>\n";
1079 xmlFile<<
" <RUN_BEGIN_TIMESTAMP>2009-01-01 00:00:00</RUN_BEGIN_TIMESTAMP>\n";
1080 xmlFile<<
" <COMMENT_DESCRIPTION>hcal ped data</COMMENT_DESCRIPTION>\n";
1081 xmlFile<<
" <LOCATION>P5</LOCATION>\n";
1082 xmlFile<<
" <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
1083 xmlFile<<
" </RUN>\n";
1084 xmlFile<<
" </HEADER>\n";
1085 xmlFile<<
" <DATA_SET>\n";
1086 xmlFile<<
" <!-- optional dataset metadata -->\n\n";
1088 xmlFile<<
" <SET_BEGIN_TIMESTAMP>2009-01-01 00:00:00</SET_BEGIN_TIMESTAMP>\n";
1089 xmlFile<<
" <SET_END_TIMESTAMP>2009-01-01 00:00:00</SET_END_TIMESTAMP>\n";
1090 xmlFile<<
" <NUMBER_OF_EVENTS_IN_SET>"<<
ievt_<<
"</NUMBER_OF_EVENTS_IN_SET>\n";
1091 xmlFile<<
" <COMMENT_DESCRIPTION>Automatic DQM output</COMMENT_DESCRIPTION>\n";
1092 xmlFile<<
" <DATA_FILE_NAME>"<< xmlName <<
"</DATA_FILE_NAME>\n";
1093 xmlFile<<
" <IMAGE_FILE_NAME>data plot url or file path</IMAGE_FILE_NAME>\n";
1094 xmlFile<<
" <!-- who and when created this dataset-->\n\n";
1095 Long_t
t; t=time(0); strftime(str,30,
"%F %T",localtime(&t));
1096 xmlFile<<
" <CREATE_TIMESTAMP>"<<str<<
"</CREATE_TIMESTAMP>\n";
1097 xmlFile<<
" <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
1098 xmlFile<<
" <!-- version (string) and subversion (number) -->\n";
1099 xmlFile<<
" <!-- fields are used to read data back from the database -->\n\n";
1100 xmlFile<<
" <VERSION>"<<run_number<<dataset_seq_number<<
"</VERSION>\n";
1101 xmlFile<<
" <SUBVERSION>1</SUBVERSION>\n";
1102 xmlFile<<
" <!-- Assign predefined dataset attributes -->\n\n";
1103 xmlFile<<
" <PREDEFINED_ATTRIBUTES>\n";
1104 xmlFile<<
" <ATTRIBUTE>\n";
1105 xmlFile<<
" <NAME>HCAL Dataset Status</NAME>\n";
1106 xmlFile<<
" <VALUE>VALID</VALUE>\n";
1107 xmlFile<<
" </ATTRIBUTE>\n";
1108 xmlFile<<
" </PREDEFINED_ATTRIBUTES>\n";
1109 xmlFile<<
" <!-- multiple data block records -->\n\n";
1112 for(std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
1116 if(!(!(gid.null()) &&
1128 double ped[4]={0,0,0,0},rms[4]={0,0,0,0};
1162 xmlFile<<
" <DATA>\n";
1163 xmlFile<<
" <NUMBER_OF_EVENTS_USED>"<<Statistic<<
"</NUMBER_OF_EVENTS_USED>\n";
1164 xmlFile<<
" <MEAN0>"<<ped[0]<<
"</MEAN0>\n";
1165 xmlFile<<
" <MEAN1>"<<ped[1]<<
"</MEAN1>\n";
1166 xmlFile<<
" <MEAN2>"<<ped[2]<<
"</MEAN2>\n";
1167 xmlFile<<
" <MEAN3>"<<ped[3]<<
"</MEAN3>\n";
1168 xmlFile<<
" <RMS0>"<<rms[0]<<
"</RMS0>\n";
1169 xmlFile<<
" <RMS1>"<<rms[1]<<
"</RMS1>\n";
1170 xmlFile<<
" <RMS2>"<<rms[2]<<
"</RMS2>\n";
1171 xmlFile<<
" <RMS3>"<<rms[3]<<
"</RMS3>\n";
1172 xmlFile<<
" <CHANNEL_STATUS_WORD>"<<Status<<
"</CHANNEL_STATUS_WORD>\n";
1173 xmlFile<<
" <CHANNEL_OBJECTNAME>HcalDetId</CHANNEL_OBJECTNAME>\n";
1174 xmlFile<<
" <SUBDET>"<<subdet<<
"</SUBDET>\n";
1175 xmlFile<<
" <IETA>"<<eta<<
"</IETA>\n";
1176 xmlFile<<
" <IPHI>"<<phi<<
"</IPHI>\n";
1177 xmlFile<<
" <DEPTH>"<<depth<<
"</DEPTH>\n";
1178 xmlFile<<
" <TYPE>0</TYPE>\n";
1179 xmlFile<<
" </DATA>\n";
1182 xmlFile<<
" </DATA_SET>\n";
1183 xmlFile<<
"</ROOT>\n";
1185 sprintf(str,
"zip %s.zip %s",xmlName.c_str(),xmlName.c_str());
1187 sprintf(str,
"rm -f %s",xmlName.c_str());
1189 sprintf(str,
"mv -f %s.zip %s",xmlName.c_str(),
XmlFilePath.c_str());
1196 double ped[4],
rms[4];
1202 if(!f->IsOpen())
return ;
1203 TObjString *STR=(TObjString *)f->Get(
"run number");
1207 TTree*
t=(TTree*)f->Get(
"HCAL Pedestal data");
1209 t->SetBranchAddress(
"Subdet", subdet);
1210 t->SetBranchAddress(
"eta", &Eta);
1211 t->SetBranchAddress(
"phi", &Phi);
1212 t->SetBranchAddress(
"depth", &Depth);
1213 t->SetBranchAddress(
"cap0_ped", &ped[0]);
1214 t->SetBranchAddress(
"cap0_rms", &rms[0]);
1215 t->SetBranchAddress(
"cap1_ped", &ped[1]);
1216 t->SetBranchAddress(
"cap1_rms", &rms[1]);
1217 t->SetBranchAddress(
"cap2_ped", &ped[2]);
1218 t->SetBranchAddress(
"cap2_rms", &rms[2]);
1219 t->SetBranchAddress(
"cap3_ped", &ped[3]);
1220 t->SetBranchAddress(
"cap3_rms", &rms[3]);
1221 for(
int ievt=0;ievt<t->GetEntries();ievt++){
1223 if(strcmp(subdet,
"HB")==0){
1229 if(strcmp(subdet,
"HE")==0){
1235 if(strcmp(subdet,
"HO")==0){
1241 if(strcmp(subdet,
"HF")==0){
1254 double ped[4],
rms[4];
1260 if(gSystem->AccessPathName(
DatasetName.c_str()))
return;
1262 if(!f->IsOpen())
return ;
1265 t=(TTree*)f->Get(
"HCAL Pedestal data");
1267 t->SetBranchAddress(
"Subdet", subdet);
1268 t->SetBranchAddress(
"eta", &Eta);
1269 t->SetBranchAddress(
"phi", &Phi);
1270 t->SetBranchAddress(
"depth", &Depth);
1271 t->SetBranchAddress(
"cap0_ped", &ped[0]);
1272 t->SetBranchAddress(
"cap0_rms", &rms[0]);
1273 t->SetBranchAddress(
"cap1_ped", &ped[1]);
1274 t->SetBranchAddress(
"cap1_rms", &rms[1]);
1275 t->SetBranchAddress(
"cap2_ped", &ped[2]);
1276 t->SetBranchAddress(
"cap2_rms", &rms[2]);
1277 t->SetBranchAddress(
"cap3_ped", &ped[3]);
1278 t->SetBranchAddress(
"cap3_rms", &rms[3]);
1279 t->SetBranchAddress(
"statistic",&Statistic);
1281 for(
int ievt=0;ievt<t->GetEntries();ievt++){
1283 if(strcmp(subdet,
"HB")==0){
nHB++;
1293 if(strcmp(subdet,
"HE")==0){
nHE++;
1303 if(strcmp(subdet,
"HO")==0){
nHO++;
1313 if(strcmp(subdet,
"HF")==0){
nHF++;
1324 TObjString *STR1=(TObjString *)f->Get(
"run number");
1327 TObjString *STR2=(TObjString *)f->Get(
"Total events processed");
1330 TObjString *STR3=(TObjString *)f->Get(
"Dataset number");
MonitorElement * PedestalsAve4HEref
EtaPhiHists * ProblemCellsByDepth_badped_val
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * Pedestals2DHO
edm::Ref< Container > Ref
MonitorElement * PedestalsRmsHFref
std::vector< HcalElectronicsId > allElectronicsIdPrecision() const
MonitorElement * PedestalsAve4HB
MonitorElement * PedestalsRmsHOref
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * PedestalsRmsHEref
void setAxisRange(double xmin, double xmax, int axis=1)
set x-, y- or z-axis range (axis=1, 2, 3 respectively)
MonitorElement * PedestalsRmsHB
std::vector< std::string > problemnames_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
EtaPhiHists * ProblemCellsByDepth_missing_val
edm::EDGetTokenT< HcalTBTriggerData > tok_tb_
#define DEFINE_FWK_MODULE(type)
MonitorElement * PedestalsAve4HE
HcalDetDiagPedestalData ho_data[85][72][4][4]
void bookHistograms(DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c) override
MonitorElement * bookInt(Args &&...args)
std::vector< HBHEDataFrame >::const_iterator const_iterator
EtaPhiHists * ProblemCellsByDepth_badped
MonitorElement * bookString(Args &&...args)
const HcalElectronicsMap * emap
HcalDetDiagPedestalData he_data[85][72][4][4]
bool get_average(double *ave, double *rms)
const Item * getValues(DetId fId, bool throwOnFail=true) const
std::map< unsigned int, int > KnownBadCells_
void set_statistics(int stat)
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * PedestalsAve4HBref
edm::EDGetTokenT< FEDRawDataCollection > tok_raw_
void endRun(const edm::Run &run, const edm::EventSetup &c) override
size_t size() const
Lenght of the data buffer in bytes.
MonitorElement * PedestalsAve4Simp
EtaPhiHists * ProblemCellsByDepth_badrms_val
uint32_t rawId() const
get the raw id
bool get_reference(double *val, double *rms)
bool isSiPM(int ieta, int iphi, int depth)
std::string OutputFilePath
int depth() const
get the tower depth
std::vector< MonitorElement * > depth
MonitorElement * PedestalsRmsHF
MonitorElement * PedestalsRmsHBref
~HcalDetDiagPedestalMonitor()
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
std::vector< DetId > getAllChannels() const
HcalDetDiagPedestalData hb_data[85][72][4][4]
MonitorElement * PedestalsAve4HF
HcalDetDiagPedestalMonitor(const edm::ParameterSet &)
int ieta() const
get the cell ieta
MonitorElement * book1D(Args &&...args)
Abs< T >::type abs(const T &t)
void setup(DQMStore::IBooker &m_dbe, std::string Name, std::string Units="")
MonitorElement * PedestalsRmsHE
edm::InputTag inputLabelDigi_
void add_statistics(unsigned int val)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * PedestalsAve4HFref
std::string htmlOutputPath
edm::EDGetTokenT< HODigiCollection > tok_ho_
int iphi() const
get the cell iphi
MonitorElement * Pedestals2DErrorHBHEHF
std::string ReferenceData
void setCurrentFolder(const std::string &fullpath)
MonitorElement * PedestalsRmsHO
MonitorElement * book2D(Args &&...args)
EtaPhiHists * ProblemCellsByDepth_unstable_val
HcalDetDiagPedestalData()
void change_status(int val)
MonitorElement * htmlFolder
T const * product() const
bool xmlFile(const std::string fParam)
int CalcEtaBin(int subdet, int ieta, int depth)
MonitorElement * PedestalsAve4HO
std::vector< std::vector< double > > tmp
EtaPhiHists * ProblemCellsByDepth_badrms
void set_reference(float val, float rms)
EtaPhiHists * ProblemCellsByDepth_missing
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
MonitorElement * PedestalsAve4HOref
MonitorElement * Pedestals2DRmsHBHEHF
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhe_
EtaPhiHists * ProblemCellsByDepth_unstable
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
edm::EDGetTokenT< HFDigiCollection > tok_hf_
Detector det() const
get the detector field from this detid
MonitorElement * PedestalsRmsSimp
void set_data(float val, float rms)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
virtual void setup(DQMStore::IBooker &)
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
MonitorElement * Pedestals2DHBHEHF
MonitorElement * Pedestals2DErrorHO
HcalDetDiagPedestalData hf_data[85][72][4][4]
MonitorElement * Pedestals2DRmsHO