24 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
25 prefixME_.append(
"/");
75 std::cout <<
"<HcalRecHitMonitor::setup> Setting up histograms"<<std::endl;
84 std::cout <<
"<HcalRecHitMonitor::setup> Creating Histograms"<<std::endl;
111 THR=
dbe_->
bookFloat(
"Maximum_HFM_HFP_time_difference_for_luminosityplots");
126 "Hcal RecHit ieta E>0.5 GeV",
129 "Hcal RecHit iphi E>0.5 GeV",
132 "Hcal RecHit ieta E>1.0 GeV",
135 "Hcal RecHit iphi E>1.0 GeV",
138 "Hcal RecHit ieta E>2.5 GeV",
141 "Hcal RecHit iphi E>2.5 GeV",
144 "Hcal RecHit ieta E>10.0 GeV",
147 "Hcal RecHit iphi E>10.0 GeV",
153 "LS # of all events",
156 "BX # of all events",
159 "Energy-Weighted Time vs Min (HF+,HF-) Scalar Sum ET;min Sum ET(GeV);time(ns)",
163 "Energy-Weighted Time vs HFMinus Scalar Sum ET;Sum ET(GeV);time(ns)",
167 "Energy-Weighted Time vs HFPlus Scalar Sum ET;Sum ET(GeV);time(ns)",
193 "Energy-Weighted time difference between HF+ and HF- passing MinBias (no HT cut)",
196 "Energy-Weighted time difference between HE+ and HE- passing MinBias (no HT cut)",
200 "HFP VS HFM Energy; Total Energy in HFMinus (TeV); Total Energy in HFPlus (TeV)",
201 100,0,100, 100,0,100);
205 "Sum(E_HFPlus - E_HFMinus)/Sum(E_HFPlus + E_HFMinus)",
208 "Sum(E_HEPlus - E_HEMinus)/Sum(E_HEPlus + E_HEMinus)",
212 "Number of MinBias Events vs LS (HT cut and HFM-HFP time cut)",
215 "Number of Events with MinBias vs LS (HFM,HFP HT>1,no time cut)",
219 "HF+ Sum HT vs HF- Sum HT",60,0,30,60,0,30);
221 "HF+ Sum Energy vs HF- Sum Energy",
224 "Energy-weighted time average of HF+ vs HF-",
225 60,-60,60,60,-60,60);
227 "BX # of MinBias events (HFM & HFP HT>1 & HFM-HFP time cut)",
230 "BX # of MinBias events (HFM,HFP HT>1, no time cut)",
235 "Hcal RecHit ieta above energy and ET threshold",
238 "Hcal RecHit iphi above energy and ET threshold",
248 "HB RecHit Time Above Threshold",
251 "HB RecHit Occupancy Above Threshold",260,-0.5,2599.5);
253 "HE RecHit Time Above Threshold",
256 "HE RecHit Occupancy Above Threshold",260,-0.5,2599.5);
258 "HO RecHit Time Above Threshold",
261 "HO RecHit Occupancy Above Threshold",217,-0.5,2169.5);
263 "HF RecHit Time Above Threshold",
266 "HF RecHit Occupancy Above Threshold",
273 "BX # of HcalHLT events (HFM & HFP HT>1 & HFM-HFP time cut)",
276 "BX # of HcalHLT events (HFM,HFP HT>1, no time cut)",
279 "Number of HcalHLT Events vs LS (HT cut and HFM-HFP time cut)",
282 "Number of Events with HcalHLT vs LS (HFM,HFP HT>1,no time cut)",
288 "Energy-Weighted time difference between HF+ and HF- Hcal HLT",
291 "Energy-Weighted time difference between HE+ and HE- Hcal HLT",
294 "Sum(E_HFPlus - E_HFMinus)/Sum(E_HFPlus + E_HFMinus)",
297 "Sum(E_HEPlus - E_HEMinus)/Sum(E_HEPlus + E_HEMinus)",
305 "HFLongShort Flags vs Lumi Section",
308 "HFDigiTime Flags vs Lumi Section",
311 "HBHEHPDMult Flags vs Lumi Section",
314 "HBHEPulseShape Flags vs Lumi Section",
318 "HF LongShort vs. DigiTime flags; DigiTime; LongShort",
319 2,-0.5,1.5,2,-0.5,1.5);
326 "HBHE HpdHitMultiplicity vs. PulseShape flags; PulseShape; HpdHitMultiplicity",
327 2,-0.5,1.5,2,-0.5,1.5);
334 "RBX Map of HBHEHpdHitMultiplicity Flags;RBX;RM",
335 72,-0.5,71.5,4,0.5,4.5);
337 "RBX Map of HBHEPulseShape Flags;RBX;RM",
338 72,-0.5,71.5,4,0.5,4.5);
340 "RBX Map of HFDigiTime Flags;RBX;RM",
341 24,131.5,155.5,4,0.5,4.5);
343 "RBX Map of HFLongShort Flags;RBX;RM",
344 24,131.5,155.5,4,0.5,4.5);
347 "RBX Map of Timing Added Flags;RBX;RM",
348 156,-0.5,155.5,4,0.5,4.5);
350 "RBX Map of Timing Subtracted Flags;RBX;RM",
351 156,-0.5,155.5,4,0.5,4.5);
353 "RBX Map of Timing Error Flags;RBX;RM",
354 156,-0.5,155.5,4,0.5,4.5);
428 h_HBTimeVsEnergy=
dbe_->
book2D(
"HBTimeVsEnergy",
"HB Time Vs Energy (All RecHits);Energy (GeV); time(nS)",100,0,500,40,-100,100);
437 "HB RecHit Occupancy",260,-0.5,2599.5);
442 h_HETimeVsEnergy=
dbe_->
book2D(
"HETimeVsEnergy",
"HE Time Vs Energy (All RecHits);Energy (GeV); time(nS)",100,0,500,40,-100,100);
455 h_HOTimeVsEnergy=
dbe_->
book2D(
"HOTimeVsEnergy",
"HO Time Vs Energy (All RecHits);Energy (GeV); time(nS)",100,0,500,40,-100,100);
464 "HO RecHit Occupancy",217,-0.5,2169.5);
469 h_HFTimeVsEnergy=
dbe_->
book2D(
"HFTimeVsEnergy",
"HF Time Vs Energy (All RecHits);Energy (GeV); time(nS)",100,0,500,40,-100,100);
472 "HF RecHits vs Luminosity Block",
497 if (
tevt_!=0)
return;
501 std::string tnames=
"";
531 for (
unsigned int i=0;
i<hists.size();++
i)
625 if (
debug_>1)
std::cout <<
"<HcalRecHitMonitor::processEvent> Processing event..."<<std::endl;
628 bool passedHcalHLT=
false;
629 bool passedMinBiasHLT=
false;
639 const unsigned int nTrig(triggerNames.
size());
640 for (
unsigned int i=0;
i<nTrig;++
i)
658 passedMinBiasHLT=
true;
665 if (
debug_>2 && passedHcalHLT)
std::cout <<
"\t<HcalRecHitMonitor::processEvent> Passed Hcal HLT trigger "<<std::endl;
666 if (
debug_>2 && passedMinBiasHLT)
std::cout <<
"\t<HcalRecHitMonitor::processEvent> Passed MinBias HLT trigger "<<std::endl;
684 bool passedMinBiasHLT,
691 if (
debug_>1)
std::cout <<
"<HcalRecHitMonitor::processEvent_rechitenergy> Processing rechits..."<<std::endl;
700 double HtPlus =0, HtMinus=0;
701 double HFePlus=0, HFeMinus=0;
702 double HBePlus=0, HBeMinus=0;
703 double HEePlus=0, HEeMinus=0;
704 double HFtPlus=0, HFtMinus=0;
705 double HBtPlus=0, HBtMinus=0;
706 double HEtPlus=0, HEtMinus=0;
708 int hbpocc=0, hbmocc=0, hepocc=0, hemocc=0, hfpocc=0, hfmocc=0;
710 for (
unsigned int i=0;
i<4;++
i)
727 float en = HBHEiter->energy();
728 float ti = HBHEiter->time();
730 int ieta =
id.
ieta();
731 int iphi =
id.iphi();
732 int depth =
id.depth();
790 for (
int f=0;
f<32;
f++)
799 if (HBHEiter->flagField(
f))
803 energy_[calcEta][iphi-1][depth-1]+=en;
805 time_[calcEta][iphi-1][depth-1]+=ti;
818 if (passedMinBiasHLT==
true)
826 if (ti<RECHITMON_TIME_MIN || ti>RECHITMON_TIME_MAX)
852 for (
int f=0;
f<32;
f++)
854 if (HBHEiter->flagField(
f))
859 energy_[calcEta][iphi-1][depth-1]+=en;
861 time_[calcEta][iphi-1][depth-1]+=ti;
875 if (passedMinBiasHLT==
true)
882 if (ti<RECHITMON_TIME_MIN || ti>RECHITMON_TIME_MAX)
907 HEePlus>0 ? HEtPlus/=HEePlus : HEtPlus=10000;
908 HEeMinus>0 ? HEtMinus/=HEeMinus : HEtMinus=-10000;
909 HBePlus>0 ? HBtPlus/=HBePlus : HBtPlus=10000;
910 HBeMinus>0 ? HBtMinus/=HBeMinus : HBtMinus=-10000;
926 float en = HOiter->energy();
927 float ti = HOiter->time();
932 int ieta =
id.
ieta();
933 int iphi =
id.iphi();
934 int depth =
id.depth();
974 for (
int f=0;
f<32;
f++)
976 if (HOiter->flagField(
f))
981 energy_[calcEta][iphi-1][depth-1]+=en;
983 time_[calcEta][iphi-1][depth-1]+=ti;
995 && passedMinBiasHLT==
true
1004 if (ti<RECHITMON_TIME_MIN || ti>RECHITMON_TIME_MAX)
1017 HtPlus=0; HtMinus=0;
1023 float en = HFiter->energy();
1024 float ti = HFiter->time();
1029 int ieta =
id.
ieta();
1030 int iphi =
id.iphi();
1031 int depth =
id.depth();
1079 for (
int f=0;
f<32;
f++)
1081 if (HFiter->flagField(
f))
1087 energy_[calcEta][iphi-1][depth-1]+=en;
1089 time_[calcEta][iphi-1][depth-1]+=ti;
1096 ieta>0 ? HtPlus+=en/cosh(fEta) : HtMinus+=en/cosh(fEta);
1103 if (passedMinBiasHLT)
1111 if (ti<RECHITMON_TIME_MIN || ti>RECHITMON_TIME_MAX)
1139 HFePlus>0 ? HFtPlus/=HFePlus : HFtPlus = 10000;
1140 HFeMinus>0 ? HFtMinus/=HFeMinus : HFtMinus = -10000;
1143 double minHT=
std::min(HtMinus,HtPlus);
1144 minHT==HtMinus ? mintime=HFtMinus : mintime = HFtPlus;
1152 if (passedMinBiasHLT==
true)
1158 if (HtMinus>1 && HtPlus > 1)
1171 if (hepocc>0 && hemocc>0)
1176 if (hfpocc>0 && hfmocc>0)
1193 if (
debug_>1)
std::cout <<
"\t<HcalRecHitMonitor:: HF averages> TPLUS = "<<HFtPlus<<
" EPLUS = "<<HFePlus<<
" TMINUS = "<<HFtMinus<<
" EMINUS = "<<HFeMinus<<
" Weighted Time Diff = "<<((HFtPlus)-(HFtMinus))<<std::endl;
1198 if (passedHcalHLT && HtMinus>1 && HtPlus> 1 )
1200 if (hfpocc>0 && hfmocc>0)
1205 if (hepocc>0 && hemocc>0)
1242 for (
int k = 0;
k < 32;
k++){
1243 std::cout <<
"<HcalRecHitMonitor::fill_Nevents> HF Flag counter: Bin #" <<
k+1 <<
" = "<<
HFflagcounter_[
k] << std::endl;
1247 for (
int i=0;
i<32;
i++)
1263 for (
int mydepth=0;mydepth<4;++mydepth)
1344 for (
int i=0;
i<260;++
i)
1364 for (
int i=0;
i<217;++
i)
1376 for (
int i=0;
i<173;++
i)
1391 std::cout <<
"<HcalRecHitMonitor::fill_Nevents> FILLED REC HIT CELL PLOTS"<<std::endl;
1400 for (
int i=0;
i<32;++
i)
1409 for (
int i=0;
i<85;++
i)
1411 for (
int j=0;
j<72;++
j)
1413 for (
int k=0;
k<4;++
k)
1429 for (
int i=0;
i<200;++
i)
1455 for (
int i=0;
i<865;++
i)
double HFenergyShort_[200]
MonitorElement * h_rechitieta_100
double HB_occupancy_[260]
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * h_HOThreshTime
bool LumiInOrder(int lumisec)
MonitorElement * h_HFP_weightedTime
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
MonitorElement * h_HFLongShort_vs_LS
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * h_HFtimedifference
MonitorElement * h_LumiPlot_timeHT_HFP
MonitorElement * h_HBHE_FlagCorr
MonitorElement * h_HBsizeVsLS
MonitorElement * h_LumiPlot_MinTime_vs_MinHT
double HFshort_occupancy_[865]
EtaPhiHists OccupancyThreshByDepth
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 * h_HF_HcalHLT_weightedtimedifference
double HF_occupancy_thresh_[174]
MonitorElement * h_HBThreshTime
void processEvent(const HBHERecHitCollection &hbHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits, int BCN, const edm::Event &iEvent)
double HFenergyLong_[200]
MonitorElement * h_FlagMap_PULSESHAPE
double HFshort_occupancy_thresh_[865]
MonitorElement * h_HBHEPulseShape_vs_LS
MonitorElement * h_HF_FlagCorr
MonitorElement * h_HOflagcounter
#define DEFINE_FWK_MODULE(type)
MonitorElement * h_rechitiphi_05
std::vector< int > AllowedCalibTypes_
double HEtime_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * h_rechitieta_10
double HO_occupancy_thresh_[218]
void beginRun(const edm::Run &run, const edm::EventSetup &c)
MonitorElement * h_LumiPlot_timeHFPlus_vs_timeHFMinus
double HBtime_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * h_HFThreshTime
MonitorElement * h_rechitieta_25
virtual void cleanup(void)
std::vector< T >::const_iterator const_iterator
MonitorElement * h_rechitiphi_10
int bunchCrossing() const
MonitorElement * h_HFTime
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)
MonitorElement * h_HFThreshOccupancy
MonitorElement * h_FlagMap_TIMEADD
edm::LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * h_LumiPlot_LS_MinBiasEvents
MonitorElement * h_rechitieta
MonitorElement * h_LumiPlot_SumEnergy_HFPlus_vs_HFMinus
double HF_occupancy_[174]
MonitorElement * h_HFflagcounter
double HBenergyThreshold_
Strings::size_type size() const
MonitorElement * h_HFM_weightedTime
void update(void)
Mark the object updated.
MonitorElement * h_HBTimeVsEnergy
edm::InputTag hfRechitLabel_
MonitorElement * h_HEOccupancy
MonitorElement * h_LumiPlot_LS_allevents
MonitorElement * h_HEtimedifference
MonitorElement * h_HEM_weightedTime
MonitorElement * h_HE_HcalHLT_weightedtimedifference
MonitorElement * h_FlagMap_TIMEERROR
MonitorElement * h_HF_HcalHLT_energydifference
EtaPhiHists SumEnergyByDepth
double HFenergyThreshold_
MonitorElement * h_HOThreshOccupancy
double HE_occupancy_thresh_[260]
MonitorElement * bookFloat(const char *name)
Book float.
unsigned int occupancy_[85][72][4]
std::vector< MonitorElement * > getAllContents(const std::string &path) const
MonitorElement * h_rechitiphi_100
MonitorElement * h_HETime
MonitorElement * h_rechitieta_thresh
LuminosityBlockNumber_t luminosityBlock() const
EtaPhiHists OccupancyByDepth
MonitorElement * h_HOOccupancy
MonitorElement * h_HFenergydifference
double time_thresh_[85][72][4]
MonitorElement * h_HEsizeVsLS
MonitorElement * h_LumiPlot_BX_MinBiasEvents_notimecut
EtaPhiHists SumTimeThreshByDepth
MonitorElement * h_HOsizeVsLS
HcalLogicalMap createMap(unsigned int mapIOV=4)
std::vector< MonitorElement * > depth
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
int CalcIeta(int subdet, int eta, int depth)
void removeContents(void)
erase all monitoring elements in current directory (not including subfolders);
MonitorElement * h_LumiPlot_BX_HcalHLTEvents_notimecut
EtaPhiHists SqrtSumEnergy2ThreshByDepth
EtaPhiHists SumTimeByDepth
bool IsAllowedCalibType()
double HFtimeLong_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
void processEvent_rechit(const HBHERecHitCollection &hbheHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits, bool passedHcalHLT, bool passedMinBiasHLT, int BCN)
MonitorElement * bookString(const char *name, const char *value)
Book string.
unsigned int occupancy_thresh_[85][72][4]
MonitorElement * h_HETimeVsEnergy
double HEtime_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * h_HEenergydifference
MonitorElement * h_HFTimeVsEnergy
int ieta() const
get the cell ieta
MonitorElement * h_LumiPlot_BX_HcalHLTEvents
double HFtimeShort_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
double HFlong_occupancy_thresh_[865]
MonitorElement * h_HBM_weightedTime
std::vector< std::string > HcalHLTBits_
MonitorElement * h_HFsizeVsLS
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
EtaPhiHists SqrtSumEnergy2ByDepth
MonitorElement * h_HBOccupancy
MonitorElement * h_HFDigiTime_vs_LS
void analyze(const edm::Event &, const edm::EventSetup &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * h_HBHEHPDMult_vs_LS
double energy2_[85][72][4]
MonitorElement * h_HOTime
const_iterator end() const
MonitorElement * h_rechitiphi_25
MonitorElement * h_FlagMap_TIMESUBTRACT
const HcalFrontEndId getHcalFrontEndId(const DetId &)
double HOtime_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
double energy2_thresh_[85][72][4]
MonitorElement * h_HEP_weightedTime
MonitorElement * h_FlagMap_LONGSHORT
MonitorElement * h_LumiPlot_BX_allevents
edm::InputTag hltresultsLabel_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
double energy_thresh_[85][72][4]
static const double theHFEtaBounds[]
std::vector< std::string > MinBiasHLTBits_
MonitorElement * h_HBThreshOccupancy
std::string const & triggerName(unsigned int index) const
void endRun(const edm::Run &run, const edm::EventSetup &c)
double HEenergyThreshold_
TH1F * getTH1F(void) const
MonitorElement * h_HE_HcalHLT_energydifference
MonitorElement * h_rechitiphi
MonitorElement * h_LumiPlot_LS_MinBiasEvents_notimecut
void FillUnphysicalHEHFBins(std::vector< TH2F > &hh)
MonitorElement * h_HFOccupancy
int CalcEtaBin(int subdet, int ieta, int depth)
double HFtime_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * h_rechitieta_05
double HFtime_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
void SetupEtaPhiHists(EtaPhiHists &hh, std::string Name, std::string Units)
#define RECHITMON_TIME_MIN
MonitorElement * h_HEflagcounter
edm::InputTag hbheRechitLabel_
MonitorElement * h_HBTime
MonitorElement * h_rechitiphi_thresh
edm::InputTag hoRechitLabel_
MonitorElement * h_HBP_weightedTime
double HB_occupancy_thresh_[260]
MonitorElement * h_LumiPlot_BX_MinBiasEvents
MonitorElement * h_FlagMap_HPDMULT
double HOenergyThreshold_
#define RECHITMON_TIME_MAX
MonitorElement * h_HOTimeVsEnergy
MonitorElement * h_HEThreshTime
HcalRecHitMonitor(const edm::ParameterSet &ps)
double HFtimeShort_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
EtaPhiHists SumEnergyThreshByDepth
void Reset(std::vector< TH2F > &depth)
MonitorElement * h_HEThreshOccupancy
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
double HE_occupancy_[260]
MonitorElement * h_LumiPlot_LS_HcalHLTEvents_notimecut
double HFlong_occupancy_[865]
MonitorElement * h_LumiPlot_LS_HcalHLTEvents
static const double theHBHEEtaBounds[]
double HBtime_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * HFP_HFM_Energy
double HO_occupancy_[218]
double HFtimeLong_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
MonitorElement * h_FlagMap_DIGITIME
MonitorElement * h_LumiPlot_timeHT_HFM
double HFenergyShort_thresh_[200]
Power< A, B >::type pow(const A &a, const B &b)
double HFenergyLong_thresh_[200]
MonitorElement * h_HBflagcounter
void setCurrentFolder(const std::string &fullpath)
double HOtime_thresh_[RECHITMON_TIME_MAX-RECHITMON_TIME_MIN]
const_iterator begin() const
MonitorElement * h_TriggeredEvents
MonitorElement * h_LumiPlot_SumHT_HFPlus_vs_HFMinus
HcalLogicalMap * logicalMap
double energy_[85][72][4]