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 // ""
42 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
43 prefixME_.append(
"/");
71 if (lumiqualitydir_.size()>0 && lumiqualitydir_.substr(lumiqualitydir_.size()-1,lumiqualitydir_.size())!=
"/")
72 lumiqualitydir_.append(
"/");
164 if (
debug_>0)
std::cout <<
"<HcalBeamMonitor::setup> Setup in progress..."<<std::endl;
171 "Center Of Energy radius",
177 "Center of Energy;normalized x coordinate;normalize y coordinate",
182 "Center of Energy radius vs i#eta",
188 std::stringstream histname;
189 std::stringstream histtitle;
192 "HB Center Of Energy radius",
195 "HB Center of Energy",
200 for (
int i=-16;
i<=16;++
i)
205 histname<<
"HB_CenterOfEnergyRadius_ieta"<<
i;
206 histtitle<<
"HB Center Of Energy ieta = "<<
i;
208 histtitle.str().c_str(),
214 "HE Center Of Energy radius",
217 "HE Center of Energy",
223 for (
int i=-29;
i<=29;++
i)
228 histname<<
"HE_CenterOfEnergyRadius_ieta"<<
i;
229 histtitle<<
"HE Center Of Energy ieta = "<<
i;
231 histtitle.str().c_str(),
237 "HO Center Of Energy radius",
240 "HO Center of Energy",
245 for (
int i=-15;
i<=15;++
i)
250 histname<<
"HO_CenterOfEnergyRadius_ieta"<<
i;
251 histtitle<<
"HO Center Of Energy radius ieta = "<<
i;
253 histtitle.str().c_str(),
259 "HF Center Of Energy radius",
262 "HF Center of Energy",
267 for (
int i=-41;
i<=41;++
i)
272 histname<<
"HF_CenterOfEnergyRadius_ieta"<<
i;
273 histtitle<<
"HF Center Of Energy radius ieta = "<<
i;
275 histtitle.str().c_str(),
284 float radiusbins[13]={169,201,240,286,340,406,483,576,686,818,975,1162,1300};
285 float phibins[71]={-3.5,-3.4,-3.3,-3.2,-3.1,
286 -3.0,-2.9,-2.8,-2.7,-2.6,-2.5,-2.4,-2.3,-2.2,-2.1,
287 -2.0,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,
288 -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,
289 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
290 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
291 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9,
292 3.0, 3.1, 3.2, 3.3, 3.4, 3.5};
296 Etsum_phi_S=
dbe_->
bookProfile(
"Et Sum vs Phi Short Fiber",
"Et Sum per Area crossing vs Phi Short Fiber",36,0.5,72.5,100,0,100);
298 Etsum_ratio_p=
dbe_->
book1D(
"Occ vs PMT events HF+",
"Energy difference of Long and Short Fiber HF+ in PMT events",105,0.,1.05);
300 Etsum_ratio_m=
dbe_->
book1D(
"Occ vs PMT events HF-",
"Energy difference of Long and Short Fiber HF- in PMT events",105,0.,1.05);
301 Etsum_map_L=
dbe_->
book2D(
"EtSum 2D phi and eta Long Fiber",
"Et Sum 2D phi and eta Long Fiber",27,0,27,36,0.5,72.5);
302 Etsum_map_S=
dbe_->
book2D(
"EtSum 2D phi and eta Short Fiber",
"Et Sum 2D phi and eta Short Fiber",27,0,27,36,0.5,72.5);
304 Etsum_rphi_S=
dbe_->
book2D(
"EtSum 2D phi and radius Short Fiber",
"Et Sum 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
305 Etsum_rphi_L=
dbe_->
book2D(
"EtSum 2D phi and radius Long Fiber",
"Et Sum 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
331 Occ_rphi_S=
dbe_->
book2D(
"Occ 2D phi and radius Short Fiber",
"Occupancy 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
332 Occ_rphi_L=
dbe_->
book2D(
"Occ 2D phi and radius Long Fiber",
"Occupancy 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
333 Occ_eta_S=
dbe_->
bookProfile(
"Occ vs iEta Short Fiber",
"Occ per Bunch crossing vs iEta Short Fiber",27,0,27,40,0,800);
336 Occ_phi_L=
dbe_->
bookProfile(
"Occ vs iPhi Long Fiber",
"Occ per Bunch crossing vs iPhi Long Fiber",36,0.5,72.5,40,0,800);
338 Occ_phi_S=
dbe_->
bookProfile(
"Occ vs iPhi Short Fiber",
"Occ per Bunch crossing vs iPhi Short Fiber",36,0.5,72.5,40,0,800);
340 Occ_map_L=
dbe_->
book2D(
"Occ_map Long Fiber",
"Occ Map long Fiber (above threshold)",27,0,27,36,0.5,72.5);
341 Occ_map_S=
dbe_->
book2D(
"Occ_map Short Fiber",
"Occ Map Short Fiber (above threshold)",27,0,27,36,0.5,72.5);
343 std::stringstream binlabel;
344 for (
int zz=0;zz<27;++zz)
382 "HFlumi Occupancy per channel vs lumi-block (RING 1);LS; -ln(empty fraction)",
419 std::ofstream outStream(
outfile_.str().c_str());
420 outStream<<
"## Run "<<runNumber_<<std::endl;
421 outStream<<
"## LumiBlock\tRing1Status\t\tRing2Status\t\tGlobalStatus\tNentries"<<std::endl;
439 for (
unsigned int i=0;
i<mydetids.size();++
i)
445 if ((
id.depth()==1 && (
abs(
id.ieta())==33 ||
abs(
id.ieta())==34)) ||
446 (
id.depth()==2 && (
abs(
id.ieta())==35 ||
abs(
id.ieta())==36)))
527 if (
debug_>0)
std::cout <<
"HcalBeamMonitor::processEvent DQMStore not instantiated!!!"<<std::endl;
552 float hitsp[13][36][2];
553 float hitsm[13][36][2];
554 float hitsp_Et[13][36][2];
555 float hitsm_Et[13][36][2];
557 for(
int m=0;
m<13;
m++){
558 for(
int n=0;
n<36;
n++){
571 if(hbheHits.
size()>0)
583 for (HBHEiter=hbheHits.
begin();
584 HBHEiter!=hbheHits.
end();
589 if (HBHEiter->energy()<0)
continue;
597 HBtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
598 HBtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
599 HBtotalE+=HBHEiter->energy();
602 if (index<0 || index>=
HBETASIZE)
continue;
603 HB_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
604 HB_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
605 HB_energy[
index]+=HBHEiter->energy();
610 HEtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
611 HEtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
612 HEtotalE+=HBHEiter->energy();
615 if (index<0 || index>=
HEETASIZE)
continue;
616 HE_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
617 HE_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
618 HE_energy[
index]+=HBHEiter->energy();
624 for (
int i=-1*hbeta;
i<=hbeta;++
i)
628 if (index<0 || index>=
HBETASIZE)
continue;
629 if (HB_energy[index]==0)
continue;
630 double moment=
pow(HB_weightedX[index],2)+
pow(HB_weightedY[index],2);
631 moment=
pow(moment,0.5);
632 moment/=HB_energy[
index];
641 for (
int i=-1*heeta;
i<=heeta;++
i)
646 if (index<0 || index>=
HEETASIZE)
continue;
647 if (HE_energy[index]==0)
continue;
648 double moment=
pow(HE_weightedX[index],2)+
pow(HE_weightedY[index],2);
649 moment=
pow(moment,0.5);
650 moment/=HE_energy[
index];
670 for (HOiter=hoHits.
begin();
671 HOiter!=hoHits.
end();
675 if (HOiter->energy()<0)
continue;
680 HOtotalX+=HOiter->energy()*
cos(
PI*iphi/36.);
681 HOtotalY+=HOiter->energy()*
sin(
PI*iphi/36.);
682 HOtotalE+=HOiter->energy();
685 if (index<0 || index>=
HOETASIZE)
continue;
686 HO_weightedX[
index]+=HOiter->energy()*
cos(
PI*iphi/36.);
687 HO_weightedY[
index]+=HOiter->energy()*
sin(
PI*iphi/36.);
688 HO_energy[
index]+=HOiter->energy();
695 if (index < 0 || index>=
HOETASIZE)
continue;
696 if (HO_energy[index]==0)
continue;
697 double moment=
pow(HO_weightedX[index],2)+
pow(HO_weightedY[index],2);
698 moment=
pow(moment,0.5);
699 moment/=HO_energy[
index];
701 offset = (
i>0 ? 0.5: -0.5);
739 for (HFiter=hfHits.
begin();
740 HFiter!=hfHits.
end();
744 ieta = HFiter->id().ieta();
745 iphi = HFiter->id().iphi();
748 if (ieta<0) binieta+=41;
749 else if (ieta>0) binieta-=15;
753 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
758 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --ZStowersRing1;
759 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- ZStowersRing2;
763 if (HFiter->energy()<0)
continue;
766 et=HFiter->energy()/cosh(eta)/
area[
abs(ieta)-29];
767 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
772 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --emptytowersRing1;
773 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- emptytowersRing2;
777 if(HFiter->id().iphi()<37)
778 phi=HFiter->id().iphi()*0.087266;
779 else phi=(HFiter->id().iphi()-72)*0.087266;
782 if (HFiter->id().depth()==1)
790 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
791 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
794 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
795 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
800 if (HFiter->id().depth()==2)
808 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
809 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
812 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
813 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
821 if ((
abs(ieta) == 33 ||
abs(ieta) == 34) && HFiter->id().depth() == 1)
823 etx+=et*
cos(
PI*iphi/36.);
824 ety+=et*
sin(
PI*iphi/36.);
838 else if ((
abs(ieta) == 35 ||
abs(ieta) == 36) && HFiter->id().depth() == 2)
840 etx+=et*
cos(
PI*iphi/36.);
841 ety+=et*
sin(
PI*iphi/36.);
860 if (HFiter->id().depth()==1)
868 else if (HFiter->id().depth()==2)
877 HFtotalX+=HFiter->energy()*
cos(
PI*iphi/36.);
878 HFtotalY+=HFiter->energy()*
sin(
PI*iphi/36.);
879 HFtotalE+=HFiter->energy();
882 if (index<0 || index>=
HFETASIZE)
continue;
883 HF_weightedX[
index]+=HFiter->energy()*
cos(
PI*iphi/36.);
884 HF_weightedY[
index]+=HFiter->energy()*
sin(
PI*iphi/36.);
885 HF_energy[
index]+=HFiter->energy();
898 if (emptytowersRing1>0)
907 if (emptytowersRing2>0)
915 for (
int i=-1*hfeta;
i<=hfeta;++
i)
920 if (index<0 || index>=
HFETASIZE)
continue;
921 if (HF_energy[index]==0)
continue;
922 double moment=
pow(HF_weightedX[index],2)+
pow(HF_weightedY[index],2);
923 moment=
pow(moment,0.5);
924 moment/=HF_energy[
index];
925 offset = (
i>0 ? 0.5: -0.5);
934 for(
int i=0;
i<13;
i++){
935 for(
int j=0;
j<36;
j++){
937 if(hitsp[
i][
j][0]==hitsp[
i][
j][1])
continue;
939 if (hitsp[
i][j][0] < 1.2 && hitsp[
i][j][1] < 1.8)
continue;
941 if (((
i+29) < 33) || ((
i+29) > 36))
continue;
942 ratiop=fabs((fabs(hitsp[
i][j][0])-fabs(hitsp[
i][j][1]))/(fabs(hitsp[
i][j][0])+fabs(hitsp[
i][j][1])));
944 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)){
951 for(
int p=0;
p<13;
p++){
952 for(
int q=0;
q<36;
q++){
954 if(hitsm[
p][
q][0]==hitsm[
p][
q][1])
continue;
956 if (hitsm[
p][q][0] < 1.2 && hitsm[
p][q][1] < 1.8)
continue;
958 if (((
p+29) < 33) || ((
p+29) > 36))
continue;
959 ratiom=fabs((fabs(hitsm[
p][q][0])-fabs(hitsm[
p][q][1]))/(fabs(hitsm[
p][q][0])+fabs(hitsm[
p][q][1])));
960 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)){
969 totalX=HBtotalX+HEtotalX+HOtotalX+HFtotalX;
970 totalY=HBtotalY+HEtotalY+HOtotalY+HFtotalY;
971 totalE=HBtotalE+HEtotalE+HOtotalE+HFtotalE;
976 moment=
pow(HBtotalX*HBtotalX+HBtotalY*HBtotalY,0.5)/HBtotalE;
982 moment=
pow(HEtotalX*HEtotalX+HEtotalY*HEtotalY,0.5)/HEtotalE;
988 moment=
pow(HOtotalX*HOtotalX+HOtotalY*HOtotalY,0.5)/HOtotalE;
994 moment=
pow(HFtotalX*HFtotalX+HFtotalY*HFtotalY,0.5)/HFtotalE;
1000 moment =
pow(totalX*totalX+totalY*totalY,0.5)/totalE;
1028 int theTStobeused = 6;
1031 if(mask!=1)
continue;
1033 for (
int i=0;
i<digi.
size();
i++) {
1034 if (
i==theTStobeused) {
1052 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1059 for (
int iwedge=2; iwedge<19; iwedge++) {
1060 int itmp=4*(iwedge-1);
1061 if( (digi.
id().
iphi()==(itmp+1)) || (digi.
id().
iphi()==(itmp-1))) {
1068 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1078 else if(digi.
id().
ieta()<-28){
1086 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1093 for (
int iw=2; iw<19; iw++) {
1095 if( (digi.
id().
iphi()==(itemp+1)) || (digi.
id().
iphi()==(itemp-1))) {
1102 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1133 std::stringstream
title;
1134 title <<
"HFlumi occupancy for LS # " <<
currentLS;
1142 if (
debug_>1)
std::cout <<
"<HcalBeamMonitor::endLuminosityBlock>"<<std::endl;
1146 std::cout <<
"<HcalBeamMonitor::endLuminosityBlock> Failed LumiInOrder test!"<<std::endl;
1152 std::cout <<
"Number of entries in this LB = "<<Nentries<<std::endl;
1165 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1166 outStream<<
currentLS<<
"\t\t-1\t\t\t-1\t\t\t-1\t\t"<<Nentries<<std::endl;
1170 if (Nentries==0)
return;
1179 int ietamap[8]={-36,-35,-34,-33,33,34,35,36};
1180 int ieta=-1, iphi = -1, depth=-1;
1198 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1199 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1201 if (depth !=-1 && ieta!=1)
1219 if (Ncellhits==0 || Ncellhits>
hotrate_*Nentries)
1221 if (depth==1) badring1++;
1222 else if (depth==2) badring2++;
1242 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1243 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1245 if (depth !=-1 && ieta!=1)
1269 double ring1status=0;
1270 double ring2status=0;
1284 if (ring1status>0.9 && ring2status>0.9)
1288 if (ring1status<=0.9)
1290 if (ring2status<=0.9)
1297 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1298 outStream.precision(6);
1299 outStream<<
currentLS<<
"\t\t"<<ring1status<<
"\t\t"<<ring2status<<
"\t\t"<<totalstatus<<
"\t\t"<<Nentries<<std::endl;
1304 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};
1305 const float HcalBeamMonitor::radius[]={1300,1162,975,818,686,576,483,406,340,286,240,201,169};
1309 h->
getTH2F()->GetXaxis()->SetBinLabel(1,
"-36S");
1310 h->
getTH2F()->GetXaxis()->SetBinLabel(2,
"-35S");
1311 h->
getTH2F()->GetXaxis()->SetBinLabel(3,
"-34L");
1312 h->
getTH2F()->GetXaxis()->SetBinLabel(4,
"-33L");
1313 h->
getTH2F()->GetXaxis()->SetBinLabel(5,
"33L");
1314 h->
getTH2F()->GetXaxis()->SetBinLabel(6,
"34L");
1315 h->
getTH2F()->GetXaxis()->SetBinLabel(7,
"35S");
1316 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 beginRun(const edm::Run &run, const edm::EventSetup &c)
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_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
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
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)
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
static const float area[]
void removeContents(void)
erase all monitoring elements in current directory (not including subfolders);
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)
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_
MonitorElement * CenterOfEnergy
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * HFlumi_Occupancy_below_thr_r1
unsigned int offset(bool)
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)
int size() const
total number of samples in the digi
static const double theHFEtaBounds[]
HcalBeamMonitor(const edm::ParameterSet &ps)
MonitorElement * HECenterOfEnergy
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
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
bool isBitSet(unsigned int bitnumber) const
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 * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
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)
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
void setCurrentFolder(const std::string &fullpath)
MonitorElement * HFlumi_total_hotcells
const_iterator begin() const
MonitorElement * Occ_eta_S