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(
"/");
157 if (
debug_>0)
std::cout <<
"<HcalBeamMonitor::setup> Setup in progress..."<<std::endl;
164 "Center Of Energy radius",
170 "Center of Energy;normalized x coordinate;normalize y coordinate",
175 "Center of Energy radius vs i#eta",
181 std::stringstream histname;
182 std::stringstream histtitle;
185 "HB Center Of Energy radius",
188 "HB Center of Energy",
193 for (
int i=-16;
i<=16;++
i)
198 histname<<
"HB_CenterOfEnergyRadius_ieta"<<
i;
199 histtitle<<
"HB Center Of Energy ieta = "<<
i;
201 histtitle.str().c_str(),
207 "HE Center Of Energy radius",
210 "HE Center of Energy",
216 for (
int i=-29;
i<=29;++
i)
221 histname<<
"HE_CenterOfEnergyRadius_ieta"<<
i;
222 histtitle<<
"HE Center Of Energy ieta = "<<
i;
224 histtitle.str().c_str(),
230 "HO Center Of Energy radius",
233 "HO Center of Energy",
238 for (
int i=-15;
i<=15;++
i)
243 histname<<
"HO_CenterOfEnergyRadius_ieta"<<
i;
244 histtitle<<
"HO Center Of Energy radius ieta = "<<
i;
246 histtitle.str().c_str(),
252 "HF Center Of Energy radius",
255 "HF Center of Energy",
260 for (
int i=-41;
i<=41;++
i)
265 histname<<
"HF_CenterOfEnergyRadius_ieta"<<
i;
266 histtitle<<
"HF Center Of Energy radius ieta = "<<
i;
268 histtitle.str().c_str(),
277 float radiusbins[13]={169,201,240,286,340,406,483,576,686,818,975,1162,1300};
278 float phibins[71]={-3.5,-3.4,-3.3,-3.2,-3.1,
279 -3.0,-2.9,-2.8,-2.7,-2.6,-2.5,-2.4,-2.3,-2.2,-2.1,
280 -2.0,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,
281 -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,
282 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
283 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
284 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9,
285 3.0, 3.1, 3.2, 3.3, 3.4, 3.5};
289 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);
291 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);
293 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);
294 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);
295 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);
297 Etsum_rphi_S=
dbe_->
book2D(
"EtSum 2D phi and radius Short Fiber",
"Et Sum 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
298 Etsum_rphi_L=
dbe_->
book2D(
"EtSum 2D phi and radius Long Fiber",
"Et Sum 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
324 Occ_rphi_S=
dbe_->
book2D(
"Occ 2D phi and radius Short Fiber",
"Occupancy 2D phi and radius Short Fiber",12, radiusbins, 70, phibins);
325 Occ_rphi_L=
dbe_->
book2D(
"Occ 2D phi and radius Long Fiber",
"Occupancy 2D phi and radius Long Fiber",12, radiusbins, 70, phibins);
326 Occ_eta_S=
dbe_->
bookProfile(
"Occ vs iEta Short Fiber",
"Occ per Bunch crossing vs iEta Short Fiber",27,0,27,40,0,800);
329 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);
331 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);
333 Occ_map_L=
dbe_->
book2D(
"Occ_map Long Fiber",
"Occ Map long Fiber (above threshold)",27,0,27,36,0.5,72.5);
334 Occ_map_S=
dbe_->
book2D(
"Occ_map Short Fiber",
"Occ Map Short Fiber (above threshold)",27,0,27,36,0.5,72.5);
336 std::stringstream binlabel;
337 for (
int zz=0;zz<27;++zz)
375 "HFlumi Occupancy per channel vs lumi-block (RING 1);LS; -ln(empty fraction)",
412 std::ofstream outStream(
outfile_.str().c_str());
413 outStream<<
"## Run "<<runNumber_<<std::endl;
414 outStream<<
"## LumiBlock\tRing1Status\t\tRing2Status\t\tGlobalStatus\tNentries"<<std::endl;
432 for (
unsigned int i=0;
i<mydetids.size();++
i)
438 if ((
id.depth()==1 && (
abs(
id.ieta())==33 ||
abs(
id.ieta())==34)) ||
439 (
id.depth()==2 && (
abs(
id.ieta())==35 ||
abs(
id.ieta())==36)))
520 if (
debug_>0)
std::cout <<
"HcalBeamMonitor::processEvent DQMStore not instantiated!!!"<<std::endl;
545 float hitsp[13][36][2];
546 float hitsm[13][36][2];
547 float hitsp_Et[13][36][2];
548 float hitsm_Et[13][36][2];
550 for(
int m=0;
m<13;
m++){
551 for(
int n=0;
n<36;
n++){
564 if(hbheHits.
size()>0)
576 for (HBHEiter=hbheHits.
begin();
577 HBHEiter!=hbheHits.
end();
582 if (HBHEiter->energy()<0)
continue;
590 HBtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
591 HBtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
592 HBtotalE+=HBHEiter->energy();
595 if (index<0 || index>=
HBETASIZE)
continue;
596 HB_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
597 HB_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
598 HB_energy[
index]+=HBHEiter->energy();
603 HEtotalX+=HBHEiter->energy()*
cos(
PI*iphi/36.);
604 HEtotalY+=HBHEiter->energy()*
sin(
PI*iphi/36.);
605 HEtotalE+=HBHEiter->energy();
608 if (index<0 || index>=
HEETASIZE)
continue;
609 HE_weightedX[
index]+=HBHEiter->energy()*
cos(
PI*iphi/36.);
610 HE_weightedY[
index]+=HBHEiter->energy()*
sin(
PI*iphi/36.);
611 HE_energy[
index]+=HBHEiter->energy();
617 for (
int i=-1*hbeta;
i<=hbeta;++
i)
621 if (index<0 || index>=
HBETASIZE)
continue;
622 if (HB_energy[index]==0)
continue;
623 double moment=
pow(HB_weightedX[index],2)+
pow(HB_weightedY[index],2);
624 moment=
pow(moment,0.5);
625 moment/=HB_energy[
index];
634 for (
int i=-1*heeta;
i<=heeta;++
i)
639 if (index<0 || index>=
HEETASIZE)
continue;
640 if (HE_energy[index]==0)
continue;
641 double moment=
pow(HE_weightedX[index],2)+
pow(HE_weightedY[index],2);
642 moment=
pow(moment,0.5);
643 moment/=HE_energy[
index];
663 for (HOiter=hoHits.
begin();
664 HOiter!=hoHits.
end();
668 if (HOiter->energy()<0)
continue;
673 HOtotalX+=HOiter->energy()*
cos(
PI*iphi/36.);
674 HOtotalY+=HOiter->energy()*
sin(
PI*iphi/36.);
675 HOtotalE+=HOiter->energy();
678 if (index<0 || index>=
HOETASIZE)
continue;
679 HO_weightedX[
index]+=HOiter->energy()*
cos(
PI*iphi/36.);
680 HO_weightedY[
index]+=HOiter->energy()*
sin(
PI*iphi/36.);
681 HO_energy[
index]+=HOiter->energy();
688 if (index < 0 || index>=
HOETASIZE)
continue;
689 if (HO_energy[index]==0)
continue;
690 double moment=
pow(HO_weightedX[index],2)+
pow(HO_weightedY[index],2);
691 moment=
pow(moment,0.5);
692 moment/=HO_energy[
index];
694 offset = (
i>0 ? 0.5: -0.5);
732 for (HFiter=hfHits.
begin();
733 HFiter!=hfHits.
end();
737 ieta = HFiter->id().ieta();
738 iphi = HFiter->id().iphi();
741 if (ieta<0) binieta+=41;
742 else if (ieta>0) binieta-=15;
746 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
751 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --ZStowersRing1;
752 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- ZStowersRing2;
756 if (HFiter->energy()<0)
continue;
759 et=HFiter->energy()/cosh(eta)/
area[
abs(ieta)-29];
760 if (
abs(ieta)>=33 &&
abs(ieta)<=36)
765 if ((
abs(ieta)<35) && HFiter->id().depth()==1) --emptytowersRing1;
766 else if ((
abs(ieta)>34) && HFiter->id().depth()==2) -- emptytowersRing2;
770 if(HFiter->id().iphi()<37)
771 phi=HFiter->id().iphi()*0.087266;
772 else phi=(HFiter->id().iphi()-72)*0.087266;
775 if (HFiter->id().depth()==1)
783 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
784 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
787 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
788 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
793 if (HFiter->id().depth()==2)
801 hitsp[ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
802 hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
805 hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
806 hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
814 if ((
abs(ieta) == 33 ||
abs(ieta) == 34) && HFiter->id().depth() == 1)
816 etx+=et*
cos(
PI*iphi/36.);
817 ety+=et*
sin(
PI*iphi/36.);
831 else if ((
abs(ieta) == 35 ||
abs(ieta) == 36) && HFiter->id().depth() == 2)
833 etx+=et*
cos(
PI*iphi/36.);
834 ety+=et*
sin(
PI*iphi/36.);
853 if (HFiter->id().depth()==1)
861 else if (HFiter->id().depth()==2)
870 HFtotalX+=HFiter->energy()*
cos(
PI*iphi/36.);
871 HFtotalY+=HFiter->energy()*
sin(
PI*iphi/36.);
872 HFtotalE+=HFiter->energy();
875 if (index<0 || index>=
HFETASIZE)
continue;
876 HF_weightedX[
index]+=HFiter->energy()*
cos(
PI*iphi/36.);
877 HF_weightedY[
index]+=HFiter->energy()*
sin(
PI*iphi/36.);
878 HF_energy[
index]+=HFiter->energy();
891 if (emptytowersRing1>0)
900 if (emptytowersRing2>0)
908 for (
int i=-1*hfeta;
i<=hfeta;++
i)
913 if (index<0 || index>=
HFETASIZE)
continue;
914 if (HF_energy[index]==0)
continue;
915 double moment=
pow(HF_weightedX[index],2)+
pow(HF_weightedY[index],2);
916 moment=
pow(moment,0.5);
917 moment/=HF_energy[
index];
918 offset = (
i>0 ? 0.5: -0.5);
927 for(
int i=0;
i<13;
i++){
928 for(
int j=0;
j<36;
j++){
930 if(hitsp[
i][
j][0]==hitsp[
i][
j][1])
continue;
932 if (hitsp[
i][j][0] < 1.2 && hitsp[
i][j][1] < 1.8)
continue;
934 if (((
i+29) < 33) || ((
i+29) > 36))
continue;
935 ratiop=fabs((fabs(hitsp[
i][j][0])-fabs(hitsp[
i][j][1]))/(fabs(hitsp[
i][j][0])+fabs(hitsp[
i][j][1])));
937 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)){
944 for(
int p=0;
p<13;
p++){
945 for(
int q=0;
q<36;
q++){
947 if(hitsm[
p][
q][0]==hitsm[
p][
q][1])
continue;
949 if (hitsm[
p][q][0] < 1.2 && hitsm[
p][q][1] < 1.8)
continue;
951 if (((
p+29) < 33) || ((
p+29) > 36))
continue;
952 ratiom=fabs((fabs(hitsm[
p][q][0])-fabs(hitsm[
p][q][1]))/(fabs(hitsm[
p][q][0])+fabs(hitsm[
p][q][1])));
953 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)){
962 totalX=HBtotalX+HEtotalX+HOtotalX+HFtotalX;
963 totalY=HBtotalY+HEtotalY+HOtotalY+HFtotalY;
964 totalE=HBtotalE+HEtotalE+HOtotalE+HFtotalE;
969 moment=
pow(HBtotalX*HBtotalX+HBtotalY*HBtotalY,0.5)/HBtotalE;
975 moment=
pow(HEtotalX*HEtotalX+HEtotalY*HEtotalY,0.5)/HEtotalE;
981 moment=
pow(HOtotalX*HOtotalX+HOtotalY*HOtotalY,0.5)/HOtotalE;
987 moment=
pow(HFtotalX*HFtotalX+HFtotalY*HFtotalY,0.5)/HFtotalE;
993 moment =
pow(totalX*totalX+totalY*totalY,0.5)/totalE;
1021 int theTStobeused = 6;
1024 if(mask!=1)
continue;
1026 for (
int i=0;
i<digi.
size();
i++) {
1027 if (
i==theTStobeused) {
1045 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1052 for (
int iwedge=2; iwedge<19; iwedge++) {
1053 int itmp=4*(iwedge-1);
1054 if( (digi.
id().
iphi()==(itmp+1)) || (digi.
id().
iphi()==(itmp-1))) {
1061 else if((digi.
id().
ieta()==35)||(digi.
id().
ieta()==36)) {
1071 else if(digi.
id().
ieta()<-28){
1079 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1086 for (
int iw=2; iw<19; iw++) {
1088 if( (digi.
id().
iphi()==(itemp+1)) || (digi.
id().
iphi()==(itemp-1))) {
1095 else if((digi.
id().
ieta()==-35)||(digi.
id().
ieta()==-36)) {
1126 std::stringstream
title;
1127 title <<
"HFlumi occupancy for LS # " <<
currentLS;
1135 if (
debug_>1)
std::cout <<
"<HcalBeamMonitor::endLuminosityBlock>"<<std::endl;
1139 std::cout <<
"<HcalBeamMonitor::endLuminosityBlock> Failed LumiInOrder test!"<<std::endl;
1145 std::cout <<
"Number of entries in this LB = "<<Nentries<<std::endl;
1158 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1159 outStream<<
currentLS<<
"\t\t-1\t\t\t-1\t\t\t-1\t\t"<<Nentries<<std::endl;
1163 if (Nentries==0)
return;
1172 int ietamap[8]={-36,-35,-34,-33,33,34,35,36};
1173 int ieta=-1, iphi = -1, depth=-1;
1191 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1192 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1194 if (depth !=-1 && ieta!=1)
1212 if (Ncellhits==0 || Ncellhits>
hotrate_*Nentries)
1214 if (depth==1) badring1++;
1215 else if (depth==2) badring2++;
1235 if (
abs(ieta)==33 ||
abs(ieta)==34) depth=1;
1236 else if (
abs(ieta)==35 ||
abs(ieta)==36) depth =2;
1238 if (depth !=-1 && ieta!=1)
1262 double ring1status=0;
1263 double ring2status=0;
1277 if (ring1status>0.9 && ring2status>0.9)
1281 if (ring1status<=0.9)
1283 if (ring2status<=0.9)
1290 std::ofstream outStream(
outfile_.str().c_str(),std::ios::app);
1291 outStream.precision(6);
1292 outStream<<
currentLS<<
"\t\t"<<ring1status<<
"\t\t"<<ring2status<<
"\t\t"<<totalstatus<<
"\t\t"<<Nentries<<std::endl;
1297 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};
1298 const float HcalBeamMonitor::radius[]={1300,1162,975,818,686,576,483,406,340,286,240,201,169};
1302 h->
getTH2F()->GetXaxis()->SetBinLabel(1,
"-36S");
1303 h->
getTH2F()->GetXaxis()->SetBinLabel(2,
"-35S");
1304 h->
getTH2F()->GetXaxis()->SetBinLabel(3,
"-34L");
1305 h->
getTH2F()->GetXaxis()->SetBinLabel(4,
"-33L");
1306 h->
getTH2F()->GetXaxis()->SetBinLabel(5,
"33L");
1307 h->
getTH2F()->GetXaxis()->SetBinLabel(6,
"34L");
1308 h->
getTH2F()->GetXaxis()->SetBinLabel(7,
"35S");
1309 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
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
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[]
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