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(
"/");
64 if (lumiqualitydir_.size()>0 && lumiqualitydir_.substr(lumiqualitydir_.size()-1,lumiqualitydir_.size())!=
"/")
65 lumiqualitydir_.append(
"/");
153 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};
285 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);
287 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);
289 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);
290 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);
291 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);
293 Etsum_rphi_S=
dbe_->
book2D(
"EtSum 2D phi and radius Short Fiber",
"Et Sum 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
294 Etsum_rphi_L=
dbe_->
book2D(
"EtSum 2D phi and radius Long Fiber",
"Et Sum 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
320 Occ_rphi_S=
dbe_->
book2D(
"Occ 2D phi and radius Short Fiber",
"Occupancy 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
321 Occ_rphi_L=
dbe_->
book2D(
"Occ 2D phi and radius Long Fiber",
"Occupancy 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
322 Occ_eta_S=
dbe_->
bookProfile(
"Occ vs iEta Short Fiber",
"Occ per Bunch crossing vs iEta Short Fiber",27,0,27,40,0,800);
325 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);
327 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);
329 Occ_map_L=
dbe_->
book2D(
"Occ_map Long Fiber",
"Occ Map long Fiber (above threshold)",27,0,27,36,0.5,72.5);
330 Occ_map_S=
dbe_->
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)",
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)))
515 if (
debug_>0)
std::cout <<
"HcalBeamMonitor::processEvent DQMStore not instantiated!!!"<<std::endl;
540 float hitsp[13][36][2];
541 float hitsm[13][36][2];
542 float hitsp_Et[13][36][2];
543 float hitsm_Et[13][36][2];
545 for(
int m=0;
m<13;
m++){
546 for(
int n=0;
n<36;
n++){
559 if(hbheHits.
size()>0)
571 for (HBHEiter=hbheHits.
begin();
572 HBHEiter!=hbheHits.
end();
577 if (HBHEiter->energy()<0)
continue;
585 HBtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
586 HBtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
587 HBtotalE+=HBHEiter->energy();
590 if (index<0 || index>
HBETASIZE)
continue;
591 HB_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
592 HB_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
593 HB_energy[
index]+=HBHEiter->energy();
598 HEtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
599 HEtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
600 HEtotalE+=HBHEiter->energy();
603 if (index<0 || index>
HEETASIZE)
continue;
604 HE_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
605 HE_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
606 HE_energy[
index]+=HBHEiter->energy();
612 for (
int i=-1*hbeta;
i<=hbeta;++
i)
616 if (index<0 || index>
HBETASIZE)
continue;
617 if (HB_energy[index]==0)
continue;
618 double moment=
pow(HB_weightedX[index],2)+
pow(HB_weightedY[index],2);
619 moment=
pow(moment,0.5);
620 moment/=HB_energy[
index];
629 for (
int i=-1*heeta;
i<=heeta;++
i)
634 if (index<0 || index>
HEETASIZE)
continue;
635 if (HE_energy[index]==0)
continue;
636 double moment=
pow(HE_weightedX[index],2)+
pow(HE_weightedY[index],2);
637 moment=
pow(moment,0.5);
638 moment/=HE_energy[
index];
658 for (HOiter=hoHits.
begin();
659 HOiter!=hoHits.
end();
663 if (HOiter->energy()<0)
continue;
668 HOtotalX+=HOiter->energy()*
cos(
PI*iphi/36.);
669 HOtotalY+=HOiter->energy()*
sin(
PI*iphi/36.);
670 HOtotalE+=HOiter->energy();
673 if (index<0 || index>
HOETASIZE)
continue;
674 HO_weightedX[
index]+=HOiter->energy()*
cos(
PI*iphi/36.);
675 HO_weightedY[
index]+=HOiter->energy()*
sin(
PI*iphi/36.);
676 HO_energy[
index]+=HOiter->energy();
683 if (index < 0 || index>
HOETASIZE)
continue;
684 if (HO_energy[index]==0)
continue;
685 double moment=
pow(HO_weightedX[index],2)+
pow(HO_weightedY[index],2);
686 moment=
pow(moment,0.5);
687 moment/=HO_energy[
index];
689 offset = (
i>0 ? 0.5: -0.5);
727 for (HFiter=hfHits.
begin();
728 HFiter!=hfHits.
end();
732 ieta = HFiter->id().ieta();
733 iphi = HFiter->id().iphi();
736 if (ieta<0) binieta+=41;
737 else if (ieta>0) binieta-=15;
741 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
746 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --ZStowersRing1;
747 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- ZStowersRing2;
751 if (HFiter->energy()<0)
continue;
754 et=HFiter->energy()/cosh(eta)/
area[
abs(ieta)-29];
755 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
760 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --emptytowersRing1;
761 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- emptytowersRing2;
765 if(HFiter->id().iphi()<37)
766 phi=HFiter->id().iphi()*0.087266;
767 else phi=(HFiter->id().iphi()-72)*0.087266;
770 if (HFiter->id().depth()==1)
778 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
779 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
782 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
783 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
788 if (HFiter->id().depth()==2)
796 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
797 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
800 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
801 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
809 if ((
abs(ieta) == 33 ||
abs(ieta) == 34) && HFiter->id().depth() == 1)
811 etx+=et*
cos(
PI*iphi/36.);
812 ety+=et*
sin(
PI*iphi/36.);
826 else if ((
abs(ieta) == 35 ||
abs(ieta) == 36) && HFiter->id().depth() == 2)
828 etx+=et*
cos(
PI*iphi/36.);
829 ety+=et*
sin(
PI*iphi/36.);
848 if (HFiter->id().depth()==1)
856 else if (HFiter->id().depth()==2)
865 HFtotalX+=HFiter->energy()*
cos(
PI*iphi/36.);
866 HFtotalY+=HFiter->energy()*
sin(
PI*iphi/36.);
867 HFtotalE+=HFiter->energy();
870 if (index<0 || index>
HFETASIZE)
continue;
871 HF_weightedX[
index]+=HFiter->energy()*
cos(
PI*iphi/36.);
872 HF_weightedY[
index]+=HFiter->energy()*
sin(
PI*iphi/36.);
873 HF_energy[
index]+=HFiter->energy();
886 if (emptytowersRing1>0)
895 if (emptytowersRing2>0)
903 for (
int i=-1*hfeta;
i<=hfeta;++
i)
908 if (index<0 || index>
HFETASIZE)
continue;
909 if (HF_energy[index]==0)
continue;
910 double moment=
pow(HF_weightedX[index],2)+
pow(HF_weightedY[index],2);
911 moment=
pow(moment,0.5);
912 moment/=HF_energy[
index];
913 offset = (
i>0 ? 0.5: -0.5);
922 for(
int i=0;
i<13;
i++){
923 for(
int j=0;
j<36;
j++){
925 if(hitsp[
i][
j][0]==hitsp[
i][
j][1])
continue;
927 if (hitsp[
i][j][0] < 1.2 && hitsp[
i][j][1] < 1.8)
continue;
929 if (((
i+29) < 33) || ((
i+29) > 36))
continue;
930 ratiop=fabs((fabs(hitsp[
i][j][0])-fabs(hitsp[
i][j][1]))/(fabs(hitsp[
i][j][0])+fabs(hitsp[
i][j][1])));
932 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)){
939 for(
int p=0;
p<13;
p++){
940 for(
int q=0;
q<36;
q++){
942 if(hitsm[
p][
q][0]==hitsm[
p][
q][1])
continue;
944 if (hitsm[
p][q][0] < 1.2 && hitsm[
p][q][1] < 1.8)
continue;
946 if (((
p+29) < 33) || ((
p+29) > 36))
continue;
947 ratiom=fabs((fabs(hitsm[
p][q][0])-fabs(hitsm[
p][q][1]))/(fabs(hitsm[
p][q][0])+fabs(hitsm[
p][q][1])));
948 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)){
957 totalX=HBtotalX+HEtotalX+HOtotalX+HFtotalX;
958 totalY=HBtotalY+HEtotalY+HOtotalY+HFtotalY;
959 totalE=HBtotalE+HEtotalE+HOtotalE+HFtotalE;
964 moment=
pow(HBtotalX*HBtotalX+HBtotalY*HBtotalY,0.5)/HBtotalE;
970 moment=
pow(HEtotalX*HEtotalX+HEtotalY*HEtotalY,0.5)/HEtotalE;
976 moment=
pow(HOtotalX*HOtotalX+HOtotalY*HOtotalY,0.5)/HOtotalE;
982 moment=
pow(HFtotalX*HFtotalX+HFtotalY*HFtotalY,0.5)/HFtotalE;
988 moment =
pow(totalX*totalX+totalY*totalY,0.5)/totalE;
1016 int theTStobeused = 6;
1019 if(mask!=1)
continue;
1021 for (
int i=0;
i<digi.
size();
i++) {
1022 if (
i==theTStobeused) {
1040 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1047 for (
int iwedge=2; iwedge<19; iwedge++) {
1048 int itmp=4*(iwedge-1);
1049 if( (digi.
id().
iphi()==(itmp+1)) || (digi.
id().
iphi()==(itmp-1))) {
1056 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1066 else if(digi.
id().
ieta()<-28){
1074 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1081 for (
int iw=2; iw<19; iw++) {
1083 if( (digi.
id().
iphi()==(itemp+1)) || (digi.
id().
iphi()==(itemp-1))) {
1090 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1121 std::stringstream
title;
1122 title <<
"HFlumi occupancy for LS # " <<
currentLS;
1130 if (
debug_>1)
std::cout <<
"<HcalBeamMonitor::endLuminosityBlock>"<<std::endl;
1134 std::cout <<
"<HcalBeamMonitor::endLuminosityBlock> Failed LumiInOrder test!"<<std::endl;
1140 std::cout <<
"Number of entries in this LB = "<<Nentries<<std::endl;
1153 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1154 outStream<<
currentLS<<
"\t\t-1\t\t\t-1\t\t\t-1\t\t"<<Nentries<<std::endl;
1158 if (Nentries==0)
return;
1167 int ietamap[8]={-36,-35,-34,-33,33,34,35,36};
1168 int ieta=-1, iphi = -1, depth=-1;
1186 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1187 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1189 if (depth !=-1 && ieta!=1)
1207 if (Ncellhits==0 || Ncellhits>
hotrate_*Nentries)
1209 if (depth==1) badring1++;
1210 else if (depth==2) badring2++;
1230 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1231 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1233 if (depth !=-1 && ieta!=1)
1257 double ring1status=0;
1258 double ring2status=0;
1272 if (ring1status>0.9 && ring2status>0.9)
1276 if (ring1status<=0.9)
1278 if (ring2status<=0.9)
1285 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1286 outStream.precision(6);
1287 outStream<<
currentLS<<
"\t\t"<<ring1status<<
"\t\t"<<ring2status<<
"\t\t"<<totalstatus<<
"\t\t"<<Nentries<<std::endl;
1292 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};
1293 const float HcalBeamMonitor::radius[]={1300,1162,975,818,686,576,483,406,340,286,240,201,169};
1297 h->
getTH2F()->GetXaxis()->SetBinLabel(1,
"-36S");
1298 h->
getTH2F()->GetXaxis()->SetBinLabel(2,
"-35S");
1299 h->
getTH2F()->GetXaxis()->SetBinLabel(3,
"-34L");
1300 h->
getTH2F()->GetXaxis()->SetBinLabel(4,
"-33L");
1301 h->
getTH2F()->GetXaxis()->SetBinLabel(5,
"33L");
1302 h->
getTH2F()->GetXaxis()->SetBinLabel(6,
"34L");
1303 h->
getTH2F()->GetXaxis()->SetBinLabel(7,
"35S");
1304 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)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * HFlumi_Occupancy_below_thr_r2
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< T >::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
MonitorElement * COEradiusVSeta
MonitorElement * Occ_phi_S
edm::InputTag hbheRechitLabel_
MonitorElement * HFlumi_ETsum_perwedge
MonitorElement * HFlumi_Ring2Status_vs_LS
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
MonitorElement * HFlumi_occ_LS
MonitorElement * CenterOfEnergyRadius
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
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
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[]
Log< T >::type log(const T &t)
HcalBeamMonitor(const edm::ParameterSet &ps)
MonitorElement * HECenterOfEnergy
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.
const Item * getValues(DetId fId) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
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