14 #define PI 3.1415926535897932
15 #define HBETASIZE 34 // one more bin than needed, I think
16 #define HEETASIZE 60 // ""
17 #define HOETASIZE 32 // ""
18 #define HFETASIZE 84 // ""
43 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
44 prefixME_.append(
"/");
72 if (lumiqualitydir_.size()>0 && lumiqualitydir_.substr(lumiqualitydir_.size()-1,lumiqualitydir_.size())!=
"/")
73 lumiqualitydir_.append(
"/");
154 if (
debug_>0)
std::cout <<
"<HcalBeamMonitor::setup> Setup in progress..."<<std::endl;
160 "Center Of Energy radius",
166 "Center of Energy;normalized x coordinate;normalize y coordinate",
171 "Center of Energy radius vs i#eta",
177 std::stringstream histname;
178 std::stringstream histtitle;
181 "HB Center Of Energy radius",
184 "HB Center of Energy",
189 for (
int i=-16;
i<=16;++
i)
194 histname<<
"HB_CenterOfEnergyRadius_ieta"<<
i;
195 histtitle<<
"HB Center Of Energy ieta = "<<
i;
197 histtitle.str().c_str(),
203 "HE Center Of Energy radius",
206 "HE Center of Energy",
212 for (
int i=-29;
i<=29;++
i)
217 histname<<
"HE_CenterOfEnergyRadius_ieta"<<
i;
218 histtitle<<
"HE Center Of Energy ieta = "<<
i;
220 histtitle.str().c_str(),
226 "HO Center Of Energy radius",
229 "HO Center of Energy",
234 for (
int i=-15;
i<=15;++
i)
239 histname<<
"HO_CenterOfEnergyRadius_ieta"<<
i;
240 histtitle<<
"HO Center Of Energy radius ieta = "<<
i;
242 histtitle.str().c_str(),
248 "HF Center Of Energy radius",
251 "HF Center of Energy",
256 for (
int i=-41;
i<=41;++
i)
261 histname<<
"HF_CenterOfEnergyRadius_ieta"<<
i;
262 histtitle<<
"HF Center Of Energy radius ieta = "<<
i;
264 histtitle.str().c_str(),
273 float radiusbins[13]={169,201,240,286,340,406,483,576,686,818,975,1162,1300};
274 float phibins[71]={-3.5,-3.4,-3.3,-3.2,-3.1,
275 -3.0,-2.9,-2.8,-2.7,-2.6,-2.5,-2.4,-2.3,-2.2,-2.1,
276 -2.0,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,
277 -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,
278 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
279 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
280 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9,
281 3.0, 3.1, 3.2, 3.3, 3.4, 3.5};
282 Etsum_eta_L=ib.
bookProfile(
"Et Sum vs Eta Long Fiber",
"Et Sum per Area vs Eta Long Fiber",27,0,27,100,0,100);
283 Etsum_eta_S=ib.
bookProfile(
"Et Sum vs Eta Short Fiber",
"Et Sum per Area vs Eta Short Fiber",27,0,27,100,0,100);
284 Etsum_phi_L=ib.
bookProfile(
"Et Sum vs Phi Long Fiber",
"Et Sum per Area vs Phi Long Fiber",36,0.5,72.5,100,0,100);
285 Etsum_phi_S=ib.
bookProfile(
"Et Sum vs Phi Short Fiber",
"Et Sum per Area crossing vs Phi Short Fiber",36,0.5,72.5,100,0,100);
287 Etsum_ratio_p=ib.
book1D(
"Occ vs PMT events HF+",
"Energy difference of Long and Short Fiber HF+ in PMT events",105,0.,1.05);
289 Etsum_ratio_m=ib.
book1D(
"Occ vs PMT events HF-",
"Energy difference of Long and Short Fiber HF- in PMT events",105,0.,1.05);
290 Etsum_map_L=ib.
book2D(
"EtSum 2D phi and eta Long Fiber",
"Et Sum 2D phi and eta Long Fiber",27,0,27,36,0.5,72.5);
291 Etsum_map_S=ib.
book2D(
"EtSum 2D phi and eta Short Fiber",
"Et Sum 2D phi and eta Short Fiber",27,0,27,36,0.5,72.5);
293 Etsum_rphi_S=ib.
book2D(
"EtSum 2D phi and radius Short Fiber",
"Et Sum 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
294 Etsum_rphi_L=ib.
book2D(
"EtSum 2D phi and radius Long Fiber",
"Et Sum 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
320 Occ_rphi_S=ib.
book2D(
"Occ 2D phi and radius Short Fiber",
"Occupancy 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
321 Occ_rphi_L=ib.
book2D(
"Occ 2D phi and radius Long Fiber",
"Occupancy 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
322 Occ_eta_S=ib.
bookProfile(
"Occ vs iEta Short Fiber",
"Occ per Bunch crossing vs iEta Short Fiber",27,0,27,40,0,800);
323 Occ_eta_L=ib.
bookProfile(
"Occ vs iEta Long Fiber",
"Occ per Bunch crossing vs iEta Long Fiber",27,0,27,40,0,800);
325 Occ_phi_L=ib.
bookProfile(
"Occ vs iPhi Long Fiber",
"Occ per Bunch crossing vs iPhi Long Fiber",36,0.5,72.5,40,0,800);
327 Occ_phi_S=ib.
bookProfile(
"Occ vs iPhi Short Fiber",
"Occ per Bunch crossing vs iPhi Short Fiber",36,0.5,72.5,40,0,800);
329 Occ_map_L=ib.
book2D(
"Occ_map Long Fiber",
"Occ Map long Fiber (above threshold)",27,0,27,36,0.5,72.5);
330 Occ_map_S=ib.
book2D(
"Occ_map Short Fiber",
"Occ Map Short Fiber (above threshold)",27,0,27,36,0.5,72.5);
332 std::stringstream binlabel;
333 for (
int zz=0;zz<27;++zz)
371 "HFlumi Occupancy per channel vs lumi-block (RING 1);LS; -ln(empty fraction)",
397 if (
debug_>1)
std::cout <<
"HcalBeamMonitor::bookHistograms"<<std::endl;
408 std::ofstream outStream(
outfile_.str().c_str());
409 outStream<<
"## Run "<<runNumber_<<std::endl;
410 outStream<<
"## LumiBlock\tRing1Status\t\tRing2Status\t\tGlobalStatus\tNentries"<<std::endl;
428 for (
unsigned int i=0;
i<mydetids.size();++
i)
434 if ((
id.
depth()==1 && (
abs(
id.ieta())==33 ||
abs(
id.ieta())==34)) ||
435 (
id.depth()==2 && (
abs(
id.ieta())==35 ||
abs(
id.ieta())==36)))
535 float hitsp[13][36][2];
536 float hitsm[13][36][2];
537 float hitsp_Et[13][36][2];
538 float hitsm_Et[13][36][2];
540 for(
int m=0;
m<13;
m++){
541 for(
int n=0;
n<36;
n++){
554 if(hbheHits.
size()>0)
566 for (HBHEiter=hbheHits.
begin();
567 HBHEiter!=hbheHits.
end();
572 if (HBHEiter->energy()<0)
continue;
580 HBtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
581 HBtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
582 HBtotalE+=HBHEiter->energy();
585 if (index<0 || index>=
HBETASIZE)
continue;
586 HB_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
587 HB_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
588 HB_energy[
index]+=HBHEiter->energy();
593 HEtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
594 HEtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
595 HEtotalE+=HBHEiter->energy();
598 if (index<0 || index>=
HEETASIZE)
continue;
599 HE_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
600 HE_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
601 HE_energy[
index]+=HBHEiter->energy();
607 for (
int i=-1*hbeta;
i<=hbeta;++
i)
611 if (index<0 || index>=
HBETASIZE)
continue;
612 if (HB_energy[index]==0)
continue;
613 double moment=
pow(HB_weightedX[index],2)+
pow(HB_weightedY[index],2);
614 moment=
pow(moment,0.5);
615 moment/=HB_energy[
index];
624 for (
int i=-1*heeta;
i<=heeta;++
i)
629 if (index<0 || index>=
HEETASIZE)
continue;
630 if (HE_energy[index]==0)
continue;
631 double moment=
pow(HE_weightedX[index],2)+
pow(HE_weightedY[index],2);
632 moment=
pow(moment,0.5);
633 moment/=HE_energy[
index];
653 for (HOiter=hoHits.
begin();
654 HOiter!=hoHits.
end();
658 if (HOiter->energy()<0)
continue;
663 HOtotalX+=HOiter->energy()*
cos(
PI*iphi/36.);
664 HOtotalY+=HOiter->energy()*
sin(
PI*iphi/36.);
665 HOtotalE+=HOiter->energy();
668 if (index<0 || index>=
HOETASIZE)
continue;
669 HO_weightedX[
index]+=HOiter->energy()*
cos(
PI*iphi/36.);
670 HO_weightedY[
index]+=HOiter->energy()*
sin(
PI*iphi/36.);
671 HO_energy[
index]+=HOiter->energy();
678 if (index < 0 || index>=
HOETASIZE)
continue;
679 if (HO_energy[index]==0)
continue;
680 double moment=
pow(HO_weightedX[index],2)+
pow(HO_weightedY[index],2);
681 moment=
pow(moment,0.5);
682 moment/=HO_energy[
index];
684 offset = (
i>0 ? 0.5: -0.5);
722 for (HFiter=hfHits.
begin();
723 HFiter!=hfHits.
end();
727 ieta = HFiter->id().ieta();
728 iphi = HFiter->id().iphi();
731 if (ieta<0) binieta+=41;
732 else if (ieta>0) binieta-=15;
736 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
741 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --ZStowersRing1;
742 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- ZStowersRing2;
746 if (HFiter->energy()<0)
continue;
749 et=HFiter->energy()/cosh(eta)/
area[
abs(ieta)-29];
750 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
755 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --emptytowersRing1;
756 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- emptytowersRing2;
760 if(HFiter->id().iphi()<37)
761 phi=HFiter->id().iphi()*0.087266;
762 else phi=(HFiter->id().iphi()-72)*0.087266;
765 if (HFiter->id().depth()==1)
773 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
774 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
777 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
778 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
783 if (HFiter->id().depth()==2)
791 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
792 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
795 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
796 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
804 if ((
abs(ieta) == 33 ||
abs(ieta) == 34) && HFiter->id().depth() == 1)
806 etx+=et*
cos(
PI*iphi/36.);
807 ety+=et*
sin(
PI*iphi/36.);
821 else if ((
abs(ieta) == 35 ||
abs(ieta) == 36) && HFiter->id().depth() == 2)
823 etx+=et*
cos(
PI*iphi/36.);
824 ety+=et*
sin(
PI*iphi/36.);
843 if (HFiter->id().depth()==1)
851 else if (HFiter->id().depth()==2)
860 HFtotalX+=HFiter->energy()*
cos(
PI*iphi/36.);
861 HFtotalY+=HFiter->energy()*
sin(
PI*iphi/36.);
862 HFtotalE+=HFiter->energy();
865 if (index<0 || index>=
HFETASIZE)
continue;
866 HF_weightedX[
index]+=HFiter->energy()*
cos(
PI*iphi/36.);
867 HF_weightedY[
index]+=HFiter->energy()*
sin(
PI*iphi/36.);
868 HF_energy[
index]+=HFiter->energy();
881 if (emptytowersRing1>0)
890 if (emptytowersRing2>0)
898 for (
int i=-1*hfeta;
i<=hfeta;++
i)
903 if (index<0 || index>=
HFETASIZE)
continue;
904 if (HF_energy[index]==0)
continue;
905 double moment=
pow(HF_weightedX[index],2)+
pow(HF_weightedY[index],2);
906 moment=
pow(moment,0.5);
907 moment/=HF_energy[
index];
908 offset = (
i>0 ? 0.5: -0.5);
917 for(
int i=0;
i<13;
i++){
918 for(
int j=0;
j<36;
j++){
920 if(hitsp[
i][
j][0]==hitsp[
i][
j][1])
continue;
922 if (hitsp[
i][j][0] < 1.2 && hitsp[
i][j][1] < 1.8)
continue;
924 if (((
i+29) < 33) || ((
i+29) > 36))
continue;
925 ratiop=fabs((fabs(hitsp[
i][j][0])-fabs(hitsp[
i][j][1]))/(fabs(hitsp[
i][j][0])+fabs(hitsp[
i][j][1])));
927 if ((hitsp_Et[
i][j][0] > 5. && hitsp[
i][j][1] < 1.8) || (hitsp_Et[
i][j][1] > 5. && hitsp[
i][j][0] < 1.2)){
934 for(
int p=0;
p<13;
p++){
935 for(
int q=0;
q<36;
q++){
937 if(hitsm[
p][
q][0]==hitsm[
p][
q][1])
continue;
939 if (hitsm[
p][q][0] < 1.2 && hitsm[
p][q][1] < 1.8)
continue;
941 if (((
p+29) < 33) || ((
p+29) > 36))
continue;
942 ratiom=fabs((fabs(hitsm[
p][q][0])-fabs(hitsm[
p][q][1]))/(fabs(hitsm[
p][q][0])+fabs(hitsm[
p][q][1])));
943 if ((hitsm_Et[
p][q][0] > 5. && hitsm[
p][q][1] < 1.8) || (hitsm_Et[
p][q][1] > 5. && hitsm[
p][q][0] < 1.2)){
952 totalX=HBtotalX+HEtotalX+HOtotalX+HFtotalX;
953 totalY=HBtotalY+HEtotalY+HOtotalY+HFtotalY;
954 totalE=HBtotalE+HEtotalE+HOtotalE+HFtotalE;
959 moment=
pow(HBtotalX*HBtotalX+HBtotalY*HBtotalY,0.5)/HBtotalE;
965 moment=
pow(HEtotalX*HEtotalX+HEtotalY*HEtotalY,0.5)/HEtotalE;
971 moment=
pow(HOtotalX*HOtotalX+HOtotalY*HOtotalY,0.5)/HOtotalE;
977 moment=
pow(HFtotalX*HFtotalX+HFtotalY*HFtotalY,0.5)/HFtotalE;
983 moment =
pow(totalX*totalX+totalY*totalY,0.5)/totalE;
1011 int theTStobeused = 6;
1014 if(mask!=1)
continue;
1016 for (
int i=0;
i<digi.
size();
i++) {
1017 if (
i==theTStobeused) {
1035 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1042 for (
int iwedge=2; iwedge<19; iwedge++) {
1043 int itmp=4*(iwedge-1);
1044 if( (digi.
id().
iphi()==(itmp+1)) || (digi.
id().
iphi()==(itmp-1))) {
1051 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1061 else if(digi.
id().
ieta()<-28){
1069 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1076 for (
int iw=2; iw<19; iw++) {
1078 if( (digi.
id().
iphi()==(itemp+1)) || (digi.
id().
iphi()==(itemp-1))) {
1085 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1116 std::stringstream
title;
1117 title <<
"HFlumi occupancy for LS # " <<
currentLS;
1125 if (
debug_>1)
std::cout <<
"<HcalBeamMonitor::endLuminosityBlock>"<<std::endl;
1129 std::cout <<
"<HcalBeamMonitor::endLuminosityBlock> Failed LumiInOrder test!"<<std::endl;
1135 std::cout <<
"Number of entries in this LB = "<<Nentries<<std::endl;
1148 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1149 outStream<<
currentLS<<
"\t\t-1\t\t\t-1\t\t\t-1\t\t"<<Nentries<<std::endl;
1153 if (Nentries==0)
return;
1162 int ietamap[8]={-36,-35,-34,-33,33,34,35,36};
1163 int ieta=-1, iphi = -1,
depth=-1;
1182 else if (
abs(ieta)==35 ||
abs(ieta)==36)
depth =2;
1184 if (
depth !=-1 && ieta!=1)
1202 if (Ncellhits==0 || Ncellhits>
hotrate_*Nentries)
1204 if (
depth==1) badring1++;
1205 else if (
depth==2) badring2++;
1226 else if (
abs(ieta)==35 ||
abs(ieta)==36)
depth =2;
1228 if (
depth !=-1 && ieta!=1)
1252 double ring1status=0;
1253 double ring2status=0;
1267 if (ring1status>0.9 && ring2status>0.9)
1271 if (ring1status<=0.9)
1273 if (ring2status<=0.9)
1280 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1281 outStream.precision(6);
1282 outStream<<
currentLS<<
"\t\t"<<ring1status<<
"\t\t"<<ring2status<<
"\t\t"<<totalstatus<<
"\t\t"<<Nentries<<std::endl;
1287 const float HcalBeamMonitor::area[]={0.111,0.175,0.175,0.175,0.175,0.175,0.174,0.178,0.172,0.175,0.178,0.346,0.604};
1288 const float HcalBeamMonitor::radius[]={1300,1162,975,818,686,576,483,406,340,286,240,201,169};
1292 h->
getTH2F()->GetXaxis()->SetBinLabel(1,
"-36S");
1293 h->
getTH2F()->GetXaxis()->SetBinLabel(2,
"-35S");
1294 h->
getTH2F()->GetXaxis()->SetBinLabel(3,
"-34L");
1295 h->
getTH2F()->GetXaxis()->SetBinLabel(4,
"-33L");
1296 h->
getTH2F()->GetXaxis()->SetBinLabel(5,
"33L");
1297 h->
getTH2F()->GetXaxis()->SetBinLabel(6,
"34L");
1298 h->
getTH2F()->GetXaxis()->SetBinLabel(7,
"35S");
1299 h->
getTH2F()->GetXaxis()->SetBinLabel(8,
"36S");
MonitorElement * HFCenterOfEnergyRadius
MonitorElement * Etsum_map_S
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * HBCenterOfEnergy
bool LumiInOrder(int lumisec)
MonitorElement * Etsum_eta_L
MonitorElement * Occ_rphi_L
MonitorElement * HOCenterOfEnergy
void setup(DQMStore::IBooker &)
MonitorElement * HFlumi_Occupancy_above_thr_r1
MonitorElement * ProblemsCurrentLB
MonitorElement * Occ_rphi_S
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
edm::EDGetTokenT< HFDigiCollection > tok_hfdigi_
void bookHistograms(DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c)
MonitorElement * bookProfile(Args &&...args)
MonitorElement * HFlumi_Occupancy_below_thr_r2
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * Etsum_eta_S
#define DEFINE_FWK_MODULE(type)
int adc() const
get the ADC sample
std::vector< int > AllowedCalibTypes_
Sin< T >::type sin(const T &t)
MonitorElement * Etsum_phi_S
MonitorElement * HFlumi_Occupancy_between_thrs_r2
MonitorElement * Occ_map_L
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
MonitorElement * Etsum_map_L
std::vector< HBHERecHit >::const_iterator const_iterator
int bunchCrossing() const
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)
edm::LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING2
const Item * getValues(DetId fId, bool throwOnFail=true) const
MonitorElement * COEradiusVSeta
MonitorElement * Occ_phi_S
edm::InputTag hbheRechitLabel_
MonitorElement * HFlumi_ETsum_perwedge
MonitorElement * HFlumi_Ring2Status_vs_LS
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * Occ_phi_L
MonitorElement * HFlumi_ETsum_vs_BX
edm::InputTag hoRechitLabel_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
static const float area[]
std::map< int, MonitorElement * > HB_CenterOfEnergyRadius
bool IsAllowedCalibType()
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING1
MonitorElement * HFCenterOfEnergy
MonitorElement * HFlumi_diag_deadcells
std::map< HcalDetId, int > BadCells_
std::vector< DetId > getAllChannels() const
MonitorElement * Etsum_ratio_map
MonitorElement * HECenterOfEnergyRadius
Cos< T >::type cos(const T &t)
int ieta() const
get the cell ieta
virtual void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * book1D(Args &&...args)
const HcalQIESample & sample(int i) const
access a sample
Abs< T >::type abs(const T &t)
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
MonitorElement * HFlumi_occ_LS
MonitorElement * CenterOfEnergyRadius
edm::EDGetTokenT< HORecHitCollection > tok_ho_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
MonitorElement * CenterOfEnergy
MonitorElement * HFlumi_Occupancy_below_thr_r1
std::map< int, MonitorElement * > HE_CenterOfEnergyRadius
std::ostringstream outfile_
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING2
MonitorElement * Energy_Occ
MonitorElement * HFlumi_Ring1Status_vs_LS
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING1
static const float radius[]
const_iterator end() const
std::map< int, MonitorElement * > HO_CenterOfEnergyRadius
void SetEtaLabels(MonitorElement *h)
int iphi() const
get the cell iphi
MonitorElement * Occ_eta_L
void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * HFlumi_Occupancy_between_thrs_r1
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void processEvent(const HBHERecHitCollection &hbHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits, const HFDigiCollection &hf, int bunchCrossing)
void setCurrentFolder(const std::string &fullpath)
int size() const
total number of samples in the digi
static const double theHFEtaBounds[]
HcalBeamMonitor(const edm::ParameterSet &ps)
MonitorElement * HECenterOfEnergy
MonitorElement * book2D(Args &&...args)
MonitorElement * HOCenterOfEnergyRadius
MonitorElement * Etsum_ratio_m
MonitorElement * HFlumi_Et_per_channel_vs_lumiblock
MonitorElement * HBCenterOfEnergyRadius
T const * product() const
TH1F * getTH1F(void) const
MonitorElement * Etsum_rphi_S
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * HFlumi_Occupancy_above_thr_r2
TProfile * getTProfile(void) const
std::string lumiqualitydir_
unsigned int lastProcessedLS_
MonitorElement * HFlumi_diag_hotcells
const HcalDetId & id() const
MonitorElement * Etsum_ratio_p
uint32_t getValue() const
TH2F * getTH2F(void) const
MonitorElement * Etsum_phi_L
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 &)
MonitorElement * Etsum_rphi_L
edm::InputTag hfRechitLabel_
MonitorElement * Occ_map_S
std::map< int, MonitorElement * > HF_CenterOfEnergyRadius
Power< A, B >::type pow(const A &a, const B &b)
MonitorElement * HFlumi_total_deadcells
MonitorElement * HFlumi_total_hotcells
const_iterator begin() const
MonitorElement * Occ_eta_S