test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
HcalBeamMonitor Class Reference

#include <HcalBeamMonitor.h>

Inheritance diagram for HcalBeamMonitor:
HcalBaseDQMonitor DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
void bookHistograms (DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c)
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
 HcalBeamMonitor (const edm::ParameterSet &ps)
 
void processEvent (const HBHERecHitCollection &hbHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits, const HFDigiCollection &hf, int bunchCrossing, const HcalTopology &topology)
 
void reset ()
 
void setup (DQMStore::IBooker &)
 
 ~HcalBeamMonitor ()
 
- Public Member Functions inherited from HcalBaseDQMonitor
 HcalBaseDQMonitor (const edm::ParameterSet &ps)
 
 HcalBaseDQMonitor ()
 
virtual ~HcalBaseDQMonitor ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

void SetEtaLabels (MonitorElement *h)
 

Private Attributes

std::map< HcalDetId, int > BadCells_
 
MonitorElementCenterOfEnergy
 
MonitorElementCenterOfEnergyRadius
 
MonitorElementCOEradiusVSeta
 
edm::InputTag digiLabel_
 
MonitorElementEnergy_Occ
 
const int ETA_BOUND_HE
 
const int ETA_BOUND_HF
 
const int ETA_OFFSET_HB
 
const int ETA_OFFSET_HE
 
const int ETA_OFFSET_HF
 
const int ETA_OFFSET_HO
 
MonitorElementEtsum_eta_L
 
MonitorElementEtsum_eta_S
 
MonitorElementEtsum_map_L
 
MonitorElementEtsum_map_S
 
MonitorElementEtsum_phi_L
 
MonitorElementEtsum_phi_S
 
MonitorElementEtsum_ratio_m
 
MonitorElementEtsum_ratio_map
 
MonitorElementEtsum_ratio_p
 
MonitorElementEtsum_rphi_L
 
MonitorElementEtsum_rphi_S
 
std::map< int, MonitorElement * > HB_CenterOfEnergyRadius
 
MonitorElementHBCenterOfEnergy
 
MonitorElementHBCenterOfEnergyRadius
 
edm::InputTag hbheRechitLabel_
 
std::map< int, MonitorElement * > HE_CenterOfEnergyRadius
 
MonitorElementHECenterOfEnergy
 
MonitorElementHECenterOfEnergyRadius
 
std::map< int, MonitorElement * > HF_CenterOfEnergyRadius
 
MonitorElementHFCenterOfEnergy
 
MonitorElementHFCenterOfEnergyRadius
 
MonitorElementHFlumi_diag_deadcells
 
MonitorElementHFlumi_diag_hotcells
 
MonitorElementHFlumi_Et_per_channel_vs_lumiblock
 
MonitorElementHFlumi_ETsum_perwedge
 
MonitorElementHFlumi_ETsum_vs_BX
 
MonitorElementHFlumi_occ_LS
 
MonitorElementHFlumi_Occupancy_above_thr_r1
 
MonitorElementHFlumi_Occupancy_above_thr_r2
 
MonitorElementHFlumi_Occupancy_below_thr_r1
 
MonitorElementHFlumi_Occupancy_below_thr_r2
 
MonitorElementHFlumi_Occupancy_between_thrs_r1
 
MonitorElementHFlumi_Occupancy_between_thrs_r2
 
MonitorElementHFlumi_Occupancy_per_channel_vs_BX_RING1
 
MonitorElementHFlumi_Occupancy_per_channel_vs_BX_RING2
 
MonitorElementHFlumi_Occupancy_per_channel_vs_lumiblock_RING1
 
MonitorElementHFlumi_Occupancy_per_channel_vs_lumiblock_RING2
 
MonitorElementHFlumi_Ring1Status_vs_LS
 
MonitorElementHFlumi_Ring2Status_vs_LS
 
MonitorElementHFlumi_total_deadcells
 
MonitorElementHFlumi_total_hotcells
 
edm::InputTag hfRechitLabel_
 
std::map< int, MonitorElement * > HO_CenterOfEnergyRadius
 
MonitorElementHOCenterOfEnergy
 
MonitorElementHOCenterOfEnergyRadius
 
edm::InputTag hoRechitLabel_
 
double hotrate_
 
unsigned int lastProcessedLS_
 
std::string lumiqualitydir_
 
int minBadCells_
 
int minEvents_
 
MonitorElementOcc_eta_L
 
MonitorElementOcc_eta_S
 
MonitorElementOcc_map_L
 
MonitorElementOcc_map_S
 
MonitorElementOcc_phi_L
 
MonitorElementOcc_phi_S
 
MonitorElementOcc_rphi_L
 
MonitorElementOcc_rphi_S
 
double occThresh_
 
std::ostringstream outfile_
 
bool Overwrite_
 
int ring1totalchannels_
 
int ring2totalchannels_
 
int runNumber_
 
bool setupDone_
 
edm::EDGetTokenT
< HBHERecHitCollection
tok_hbhe_
 
edm::EDGetTokenT
< HFRecHitCollection
tok_hf_
 
edm::EDGetTokenT
< HFDigiCollection
tok_hfdigi_
 
edm::EDGetTokenT
< HORecHitCollection
tok_ho_
 

Static Private Attributes

static const float 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}
 
static const float radius [] ={1300,1162,975,818,686,576,483,406,340,286,240,201,169}
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from HcalBaseDQMonitor
virtual void cleanup (void)
 
virtual void dqmBeginRun (const edm::Run &run, const edm::EventSetup &c)
 
virtual void endRun (const edm::Run &run, const edm::EventSetup &c)
 
void getLogicalMap (const edm::EventSetup &c)
 
bool IsAllowedCalibType ()
 
bool LumiInOrder (int lumisec)
 
void SetupEtaPhiHists (DQMStore::IBooker &ib, EtaPhiHists &hh, std::string Name, std::string Units)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from HcalBaseDQMonitor
std::vector< int > AllowedCalibTypes_
 
int badChannelStatusMask_
 
int currentLS
 
int currenttype_
 
int debug_
 
bool enableCleanup_
 
bool eventAllowed_
 
bool HBpresent_
 
bool HEpresent_
 
bool HFpresent_
 
bool HOpresent_
 
int ievt_
 
std::map< unsigned int, int > KnownBadCells_
 
int levt_
 
HcalLogicalMaplogicalMap_
 
bool makeDiagnostics_
 
MonitorElementmeIevt_
 
MonitorElementmeLevt_
 
bool mergeRuns_
 
MonitorElementmeTevt_
 
MonitorElementmeTevtHist_
 
bool needLogicalMap_
 
int NLumiBlocks_
 
bool Online_
 
std::string prefixME_
 
MonitorElementProblemsCurrentLB
 
MonitorElementProblemsVsLB
 
MonitorElementProblemsVsLB_HB
 
MonitorElementProblemsVsLB_HBHEHF
 
MonitorElementProblemsVsLB_HE
 
MonitorElementProblemsVsLB_HF
 
MonitorElementProblemsVsLB_HO
 
bool skipOutOfOrderLS_
 
std::string subdir_
 
int tevt_
 

Detailed Description

Author
J. Temple - Univ. of Maryland

Definition at line 21 of file HcalBeamMonitor.h.

Constructor & Destructor Documentation

HcalBeamMonitor::HcalBeamMonitor ( const edm::ParameterSet ps)

Definition at line 29 of file HcalBeamMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, HcalBaseDQMonitor::debug_, digiLabel_, HcalBaseDQMonitor::enableCleanup_, edm::ParameterSet::getUntrackedParameter(), hbheRechitLabel_, hfRechitLabel_, hoRechitLabel_, hotrate_, lumiqualitydir_, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, minBadCells_, minEvents_, HcalBaseDQMonitor::NLumiBlocks_, occThresh_, HcalBaseDQMonitor::Online_, Overwrite_, HcalBaseDQMonitor::prefixME_, setupDone_, HcalBaseDQMonitor::skipOutOfOrderLS_, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, tok_hbhe_, tok_hf_, tok_hfdigi_, and tok_ho_.

29  :
31  ETA_OFFSET_HB(16),
32  ETA_OFFSET_HE(29),
33  ETA_BOUND_HE(17),
34  ETA_OFFSET_HO(15),
35  ETA_OFFSET_HF(41),
36  ETA_BOUND_HF(29)
37 {
38  Online_ = ps.getUntrackedParameter<bool>("online",false);
39  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns",false);
40  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false);
41  debug_ = ps.getUntrackedParameter<int>("debug",0);
42  prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
43  if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
44  prefixME_.append("/");
45  subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder","BeamMonitor_Hcal");
46  if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
47  subdir_.append("/");
48  subdir_=prefixME_+subdir_;
49  AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes");
50  skipOutOfOrderLS_ = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",true);
51  NLumiBlocks_ = ps.getUntrackedParameter<int>("NLumiBlocks",4000);
52  makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false);
53 
54  // Beam Monitor-specific stuff
55 
56  // Collection type info
58  tok_hfdigi_ = consumes<HFDigiCollection>(digiLabel_);
59  hbheRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hbheRechitLabel");
60 
61  tok_hbhe_ = consumes<HBHERecHitCollection>(hbheRechitLabel_);
62 
63  hoRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hoRechitLabel");
64  tok_ho_ = consumes<HORecHitCollection>(hoRechitLabel_);
65 
66  hfRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hfRechitLabel");
67  tok_hf_ = consumes<HFRecHitCollection>(hfRechitLabel_);
68 
69  // minimum events required in lumi block for tests to be processed
70  minEvents_ = ps.getUntrackedParameter<int>("minEvents",500);
71  lumiqualitydir_ = ps.getUntrackedParameter<std::string>("lumiqualitydir","");
72  if (lumiqualitydir_.size()>0 && lumiqualitydir_.substr(lumiqualitydir_.size()-1,lumiqualitydir_.size())!="/")
73  lumiqualitydir_.append("/");
74  occThresh_ = ps.getUntrackedParameter<double>("occupancyThresh",0.0625); // energy required to be counted by dead/hot checks
75  hotrate_ = ps.getUntrackedParameter<double>("hotrate",0.25);
76  minBadCells_ = ps.getUntrackedParameter<int>("minBadCells",10);
77  Overwrite_ = ps.getUntrackedParameter<bool>("Overwrite",false);
78  setupDone_ = false;
79 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< HFDigiCollection > tok_hfdigi_
std::vector< int > AllowedCalibTypes_
edm::InputTag hbheRechitLabel_
const int ETA_OFFSET_HF
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
edm::InputTag hoRechitLabel_
const int ETA_BOUND_HF
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
edm::EDGetTokenT< HORecHitCollection > tok_ho_
std::string lumiqualitydir_
const int ETA_OFFSET_HO
const int ETA_OFFSET_HB
edm::InputTag hfRechitLabel_
edm::InputTag digiLabel_
const int ETA_BOUND_HE
const int ETA_OFFSET_HE
HcalBeamMonitor::~HcalBeamMonitor ( )

Definition at line 83 of file HcalBeamMonitor.cc.

83 {}

Member Function Documentation

void HcalBeamMonitor::analyze ( const edm::Event e,
const edm::EventSetup c 
)
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 460 of file HcalBeamMonitor.cc.

References HcalBaseDQMonitor::analyze(), edm::EventBase::bunchCrossing(), digiLabel_, edm::EventSetup::get(), edm::Event::getByToken(), hbheRechitLabel_, hfRechitLabel_, hoRechitLabel_, HcalBaseDQMonitor::IsAllowedCalibType(), HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), processEvent(), tok_hbhe_, tok_hf_, tok_hfdigi_, and tok_ho_.

461 {
463  if (!IsAllowedCalibType()) return;
464  if (LumiInOrder(e.luminosityBlock())==false) return;
465 
466  // try to get rechits and digis
468 
472 
473  if (!(e.getByToken(tok_hfdigi_,hf_digi)))
474  {
475  edm::LogWarning("HcalBeamMonitor")<< digiLabel_<<" hf_digi not available";
476  return;
477  }
478 
479  if (!(e.getByToken(tok_hbhe_,hbhe_rechit)))
480  {
481  edm::LogWarning("HcalBeamMonitor")<< hbheRechitLabel_<<" hbhe_rechit not available";
482  return;
483  }
484 
485  if (!(e.getByToken(tok_hf_,hf_rechit)))
486  {
487  edm::LogWarning("HcalBeamMonitor")<< hfRechitLabel_<<" hf_rechit not available";
488  return;
489  }
490  if (!(e.getByToken(tok_ho_,ho_rechit)))
491  {
492  edm::LogWarning("HcalBeamMonitor")<< hoRechitLabel_<<" ho_rechit not available";
493  return;
494  }
495 
496  //good event; increment counters and process
498  c.get<HcalRecNumberingRecord>().get(topo);
499  // HcalBaseDQMonitor::analyze(e,c);
500  processEvent(*hbhe_rechit, *ho_rechit, *hf_rechit, *hf_digi, e.bunchCrossing(),*topo);
501 
502 } //void HcalBeamMonitor::analyze(const edm::Event& e, const edm::EventSetup& c)
bool LumiInOrder(int lumisec)
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
edm::EDGetTokenT< HFDigiCollection > tok_hfdigi_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
int bunchCrossing() const
Definition: EventBase.h:65
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:62
edm::InputTag hbheRechitLabel_
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
edm::InputTag hoRechitLabel_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
void processEvent(const HBHERecHitCollection &hbHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits, const HFDigiCollection &hf, int bunchCrossing, const HcalTopology &topology)
edm::EDGetTokenT< HORecHitCollection > tok_ho_
const T & get() const
Definition: EventSetup.h:56
edm::InputTag hfRechitLabel_
edm::InputTag digiLabel_
void HcalBeamMonitor::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1104 of file HcalBeamMonitor.cc.

References HcalBaseDQMonitor::beginLuminosityBlock(), HcalBaseDQMonitor::currentLS, MonitorElement::getTH2F(), HFlumi_occ_LS, lastProcessedLS_, HcalBaseDQMonitor::LumiInOrder(), edm::LuminosityBlockBase::luminosityBlock(), HcalBaseDQMonitor::ProblemsCurrentLB, MonitorElement::Reset(), and indexGen::title.

1107 {
1108  // reset histograms that get updated each luminosity section
1109 
1110  if (LumiInOrder(lumiSeg.luminosityBlock())==false) return;
1112 
1113  if (lumiSeg.luminosityBlock()==lastProcessedLS_) return; // we're seeing more events from current lumi section (after some break) -- should not reset histogram
1115  HFlumi_occ_LS->Reset();
1116  std::stringstream title;
1117  title <<"HFlumi occupancy for LS # " <<currentLS;
1118  HFlumi_occ_LS->getTH2F()->SetTitle(title.str().c_str());
1119  return;
1120 } // void HcalBeamMonitor::beginLuminosityBlock()
bool LumiInOrder(int lumisec)
MonitorElement * ProblemsCurrentLB
LuminosityBlockNumber_t luminosityBlock() const
virtual void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * HFlumi_occ_LS
unsigned int lastProcessedLS_
TH2F * getTH2F(void) const
void Reset(void)
reset ME (ie. contents, errors, etc)
void HcalBeamMonitor::bookHistograms ( DQMStore::IBooker ib,
const edm::Run run,
const edm::EventSetup c 
)
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 393 of file HcalBeamMonitor.cc.

References funct::abs(), BadCells_, HcalBaseDQMonitor::bookHistograms(), gather_cfg::cout, HcalBaseDQMonitor::debug_, HLT_25ns10e33_v2_cff::depth, edm::EventSetup::get(), HcalCondObjectContainer< Item >::getAllChannels(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), DetId::Hcal, HcalChannelStatus::HcalCellDead, HcalChannelStatus::HcalCellHot, HcalForward, i, edm::RunBase::id(), lastProcessedLS_, lumiqualitydir_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::Online_, outfile_, Overwrite_, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< class >::product(), HcalChannelStatus::rawId(), reset(), ring1totalchannels_, ring2totalchannels_, edm::RunID::run(), runNumber_, setup(), and HcalBaseDQMonitor::tevt_.

394 {
396 
397  if (debug_>1) std::cout <<"HcalBeamMonitor::bookHistograms"<<std::endl;
399 
401  runNumber_=run.id().run();
402  if (lumiqualitydir_.size()>0 && Online_==true)
403  {
404  if (Overwrite_==false)
405  outfile_ <<lumiqualitydir_<<"HcalHFLumistatus_"<<runNumber_<<".txt";
406  else
407  outfile_ <<lumiqualitydir_<<"HcalHFLumistatus.txt";
408  std::ofstream outStream(outfile_.str().c_str()); // recreate the file, rather than appending to it
409  outStream<<"## Run "<<runNumber_<<std::endl;
410  outStream<<"## LumiBlock\tRing1Status\t\tRing2Status\t\tGlobalStatus\tNentries"<<std::endl;
411  outStream.close();
412  }
413 
414  // Get expected good channels in run according to channel quality database
415  // Get channel quality status info for each run
416 
417  // Default number of expected good channels in the run
420  BadCells_.clear(); // remove any old maps
421  // Get Channel quality info for the run
422  // Exclude bad channels from overall calculation
424  c.get<HcalChannelQualityRcd>().get("withTopo",p);
425  const HcalChannelQuality* chanquality = p.product();
426  std::vector<DetId> mydetids = chanquality->getAllChannels();
427 
428  for (unsigned int i=0;i<mydetids.size();++i)
429  {
430  if (mydetids[i].det()!=DetId::Hcal) continue;
431  HcalDetId id=mydetids[i];
432 
433  if (id.subdet()!=HcalForward) continue;
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))) {
436  const HcalChannelStatus* origstatus=chanquality->getValues(id);
437  HcalChannelStatus mystatus(origstatus->rawId(),origstatus->getValue());
438  if (mystatus.isBitSet(HcalChannelStatus::HcalCellHot))
440 
441  else if (mystatus.isBitSet(HcalChannelStatus::HcalCellDead))
443 
444  if (mystatus.isBitSet(HcalChannelStatus::HcalCellHot) ||
445  mystatus.isBitSet(HcalChannelStatus::HcalCellDead)) {
446  if (id.depth()==1) --ring1totalchannels_;
447  else if (id.depth()==2) --ring2totalchannels_;
448  }
449  } // if ((id.depth()==1) ...
450  } // for (unsigned int i=0;...)
451 
452  if (tevt_==0) this->setup(ib); // create all histograms; not necessary if merging runs together
453  if (mergeRuns_==false) this->reset(); // call reset at start of all runs
454 
455  return;
456 
457 } // void HcalBeamMonitor::bookHistograms(const edm::Run& run, const edm::EventSetup& c)
int i
Definition: DBlmapReader.cc:9
void setup(DQMStore::IBooker &)
RunID const & id() const
Definition: RunBase.h:39
RunNumber_t run() const
Definition: RunID.h:39
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
const Item * getValues(DetId fId, bool throwOnFail=true) const
uint32_t rawId() const
std::map< HcalDetId, int > BadCells_
std::vector< DetId > getAllChannels() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::ostringstream outfile_
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
std::string lumiqualitydir_
unsigned int lastProcessedLS_
tuple cout
Definition: gather_cfg.py:145
uint32_t getValue() const
void HcalBeamMonitor::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1122 of file HcalBeamMonitor.cc.

References funct::abs(), BadCells_, gather_cfg::cout, HcalBaseDQMonitor::currentLS, HcalBaseDQMonitor::debug_, HLT_25ns10e33_v2_cff::depth, MonitorElement::Fill(), MonitorElement::getBinContent(), MonitorElement::getTH2F(), HcalForward, HFlumi_diag_deadcells, HFlumi_diag_hotcells, HFlumi_occ_LS, HFlumi_Ring1Status_vs_LS, HFlumi_Ring2Status_vs_LS, HFlumi_total_deadcells, HFlumi_total_hotcells, hotrate_, lastProcessedLS_, HcalBaseDQMonitor::levt_, HcalBaseDQMonitor::LumiInOrder(), edm::LuminosityBlockBase::luminosityBlock(), lumiqualitydir_, minBadCells_, minEvents_, HcalBaseDQMonitor::Online_, outfile_, HcalBaseDQMonitor::ProblemsCurrentLB, ring1totalchannels_, ring2totalchannels_, x, and y.

1124 {
1125  if (debug_>1) std::cout <<"<HcalBeamMonitor::endLuminosityBlock>"<<std::endl;
1126  if (LumiInOrder(lumiSeg.luminosityBlock())==false)
1127  {
1128  if (debug_>1)
1129  std::cout <<"<HcalBeamMonitor::endLuminosityBlock> Failed LumiInOrder test!"<<std::endl;
1130  return;
1131  }
1133  float Nentries=HFlumi_occ_LS->getBinContent(-1,-1);
1134  if (debug_>3)
1135  std::cout <<"Number of entries in this LB = "<<Nentries<<std::endl;
1136 
1137  if (Nentries<minEvents_)
1138  {
1139  // not enough entries to determine status; fill everything with -1 and return
1142  if (Online_==false)
1143  return;
1144  // write to output file if required (Online running)
1145  if (lumiqualitydir_.size()==0)
1146  return;
1147  // dump out lumi quality file
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;
1150  outStream.close();
1151  return;
1152  }
1153  if (Nentries==0) return;
1154 
1155 
1156  HFlumi_total_deadcells->Fill(-1,-1,1); // counts good lumi sections in underflow bin
1157  HFlumi_total_hotcells->Fill(-1,-1,1);
1158  HFlumi_diag_deadcells->Fill(-1,-1,1); // counts good lumi sections in underflow bin
1159  HFlumi_diag_hotcells->Fill(-1,-1,1);
1160 
1161  // ADD IETA MAP
1162  int ietamap[8]={-36,-35,-34,-33,33,34,35,36};
1163  int ieta=-1, iphi = -1, depth=-1;
1164  int badring1=0;
1165  int badring2=0;
1166  int ndeadcells=0;
1167  int nhotcells=0;
1168 
1169  // Loop over cells once to count hot & dead chanels
1170  for (int x=1;x<=HFlumi_occ_LS->getTH2F()->GetNbinsX();++x)
1171  {
1172  for (int y=1;y<=HFlumi_occ_LS->getTH2F()->GetNbinsY();++y)
1173  {
1174 
1175  // Skip over channels that are flagged as bad
1176  if (x<=8)
1177  ieta=ietamap[x-1];
1178  else
1179  ieta=-1;
1180  iphi=2*y-1;
1181  if (abs(ieta)==33 || abs(ieta)==34) depth=1;
1182  else if (abs(ieta)==35 || abs(ieta)==36) depth =2;
1183  else depth = -1;
1184  if (depth !=-1 && ieta!=1)
1185  {
1186  HcalDetId thisID(HcalForward, ieta, iphi, depth);
1187  if (BadCells_.find(thisID)!=BadCells_.end())
1188  continue;
1189  }
1190  double Ncellhits=HFlumi_occ_LS->getBinContent(x,y);
1191  if (Ncellhits==0)
1192  {
1193  ++ndeadcells;
1194  HFlumi_diag_deadcells->Fill(x-1,2*y-1,1);
1195  }
1196  // hot if present in more than 25% of events in the LS
1197  if (Ncellhits>hotrate_*Nentries)
1198  {
1199  ++nhotcells;
1200  HFlumi_diag_hotcells->Fill(x-1,2*y-1,1);
1201  }
1202  if (Ncellhits==0 || Ncellhits>hotrate_*Nentries) // cell was either hot or dead
1203  {
1204  if (depth==1) badring1++;
1205  else if (depth==2) badring2++;
1206  }
1207  } // loop over y
1208  } // loop over x
1209 
1210  // Fill problem histogram underflow bind with number of events
1211  ProblemsCurrentLB->Fill(-1,-1,levt_);
1212  if (ndeadcells+nhotcells>=minBadCells_)
1213  {
1214  // Fill with number of error channels * events (assume bad for all events in LS)
1215  ProblemsCurrentLB->Fill(6,0,(ndeadcells+nhotcells)*levt_);
1216  for (int x=1;x<=HFlumi_occ_LS->getTH2F()->GetNbinsX();++x)
1217  {
1218  for (int y=1;y<=HFlumi_occ_LS->getTH2F()->GetNbinsY();++y)
1219  {
1220  if (x<=8)
1221  ieta=ietamap[x-1];
1222  else
1223  ieta=-1;
1224  iphi=2*y-1;
1225  if (abs(ieta)==33 || abs(ieta)==34) depth=1;
1226  else if (abs(ieta)==35 || abs(ieta)==36) depth =2;
1227  else depth = -1;
1228  if (depth !=-1 && ieta!=1)
1229  {
1230  // skip over channels that are flagged as bad
1231  HcalDetId thisID(HcalForward, ieta, iphi, depth);
1232  if (BadCells_.find(thisID)!=BadCells_.end())
1233  continue;
1234  }
1235  double Ncellhits=HFlumi_occ_LS->getBinContent(x,y);
1236  if (Ncellhits==0)
1237  {
1238  // One new luminosity section found with no entries for the cell in question
1239  HFlumi_total_deadcells->Fill(x-1,2*y-1,1);
1240  } // dead cell check
1241 
1242  // hot if present in more than 25% of events in the LS
1243  if (Ncellhits>hotrate_*Nentries)
1244  {
1245  HFlumi_total_hotcells->Fill(x-1,2*y-1,1);
1246  } // hot cell check
1247  } // loop over y
1248  } // loop over x
1249  } // if (ndeadcells+nhotcells>=minBadCells_)
1250 
1251  // Fill fraction of bad channels found in this LS
1252  double ring1status=0;
1253  double ring2status=0;
1254  if (ring1totalchannels_==0)
1255  ring1status=0;
1256  else
1257  ring1status=1-1.*badring1/ring1totalchannels_;
1258  HFlumi_Ring1Status_vs_LS->Fill(currentLS,ring1status);
1259  if (ring2totalchannels_==0)
1260  ring2status=0;
1261  else
1262  ring2status=1-1.*badring2/ring2totalchannels_;
1263  HFlumi_Ring2Status_vs_LS->Fill(currentLS,ring2status);
1264 
1265  // Good status: ring1 and ring2 status both > 90%
1266  int totalstatus=0;
1267  if (ring1status>0.9 && ring2status>0.9)
1268  totalstatus=1;
1269  else
1270  {
1271  if (ring1status<=0.9)
1272  totalstatus-=2;
1273  if (ring2status<=0.9)
1274  totalstatus-=4;
1275  }
1276 
1277  if (lumiqualitydir_.size()==0)
1278  return;
1279  // dump out lumi quality file
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;
1283  outStream.close();
1284  return;
1285 }
bool LumiInOrder(int lumisec)
MonitorElement * ProblemsCurrentLB
MonitorElement * HFlumi_Ring2Status_vs_LS
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * HFlumi_diag_deadcells
std::map< HcalDetId, int > BadCells_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * HFlumi_occ_LS
std::ostringstream outfile_
MonitorElement * HFlumi_Ring1Status_vs_LS
double getBinContent(int binx) const
get content of bin (1-D)
std::string lumiqualitydir_
unsigned int lastProcessedLS_
tuple cout
Definition: gather_cfg.py:145
MonitorElement * HFlumi_diag_hotcells
TH2F * getTH2F(void) const
MonitorElement * HFlumi_total_deadcells
MonitorElement * HFlumi_total_hotcells
void HcalBeamMonitor::processEvent ( const HBHERecHitCollection hbHits,
const HORecHitCollection hoHits,
const HFRecHitCollection hfHits,
const HFDigiCollection hf,
int  bunchCrossing,
const HcalTopology topology 
)

Definition at line 505 of file HcalBeamMonitor.cc.

References funct::abs(), HcalQIESample::adc(), area, BadCells_, edm::SortedCollection< T, SORT >::begin(), CenterOfEnergy, CenterOfEnergyRadius, COEradiusVSeta, funct::cos(), HcalBaseDQMonitor::currentLS, edm::SortedCollection< T, SORT >::end(), Energy_Occ, eta, ETA_BOUND_HE, ETA_BOUND_HF, ETA_OFFSET_HB, ETA_OFFSET_HE, ETA_OFFSET_HF, ETA_OFFSET_HO, HcalTopology::etaRange(), EnergyCorrector::etas, Etsum_eta_L, Etsum_eta_S, Etsum_map_L, Etsum_map_S, Etsum_phi_L, Etsum_phi_S, Etsum_ratio_m, Etsum_ratio_map, Etsum_ratio_p, Etsum_rphi_L, Etsum_rphi_S, MonitorElement::Fill(), MonitorElement::getBinContent(), MonitorElement::getTH2F(), HB_CenterOfEnergyRadius, HBCenterOfEnergy, HBCenterOfEnergyRadius, HBETASIZE, HcalBarrel, HcalForward, HE_CenterOfEnergyRadius, HECenterOfEnergy, HECenterOfEnergyRadius, HEETASIZE, HF_CenterOfEnergyRadius, HFCenterOfEnergy, HFCenterOfEnergyRadius, HFETASIZE, HFlumi_Et_per_channel_vs_lumiblock, HFlumi_ETsum_perwedge, HFlumi_ETsum_vs_BX, HFlumi_occ_LS, HFlumi_Occupancy_above_thr_r1, HFlumi_Occupancy_above_thr_r2, HFlumi_Occupancy_below_thr_r1, HFlumi_Occupancy_below_thr_r2, HFlumi_Occupancy_between_thrs_r1, HFlumi_Occupancy_between_thrs_r2, HFlumi_Occupancy_per_channel_vs_BX_RING1, HFlumi_Occupancy_per_channel_vs_BX_RING2, HFlumi_Occupancy_per_channel_vs_lumiblock_RING1, HFlumi_Occupancy_per_channel_vs_lumiblock_RING2, HO_CenterOfEnergyRadius, HOCenterOfEnergy, HOCenterOfEnergyRadius, HOETASIZE, i, HFDataFrame::id(), HcalDetId::ieta(), cmsHarvester::index, HcalDetId::iphi(), j, dqm-mbProfile::log, visualization-live-secondInstance_cfg::m, HcalBaseDQMonitor::makeDiagnostics_, gen::n, Occ_eta_L, Occ_eta_S, Occ_map_L, Occ_map_S, Occ_phi_L, Occ_phi_S, Occ_rphi_L, Occ_rphi_S, occThresh_, hltrates_dqm_sourceclient-live_cfg::offset, AlCaHLTBitMon_ParallelJobs::p, phi, PI, funct::pow(), lumiQueryAPI::q, alignCSCRings::r, radius, ring1totalchannels_, ring2totalchannels_, HFDataFrame::sample(), funct::sin(), HFDataFrame::size(), edm::SortedCollection< T, SORT >::size(), and relativeConstraints::value.

Referenced by analyze().

510  {
511  //processEvent loop
515 
516  double totalX=0;
517  double totalY=0;
518  double totalE=0;
519 
520  double HBtotalX=0;
521  double HBtotalY=0;
522  double HBtotalE=0;
523  double HEtotalX=0;
524  double HEtotalY=0;
525  double HEtotalE=0;
526  double HOtotalX=0;
527  double HOtotalY=0;
528  double HOtotalE=0;
529  double HFtotalX=0;
530  double HFtotalY=0;
531  double HFtotalE=0;
532 
533  float hitsp[13][36][2];
534  float hitsm[13][36][2];
535  float hitsp_Et[13][36][2];
536  float hitsm_Et[13][36][2];
537 
538  for(int m=0;m<13;m++){
539  for(int n=0;n<36;n++){
540  hitsp[m][n][0]=0;
541  hitsp[m][n][1]=0;
542  hitsm[m][n][0]=0;
543  hitsm[m][n][1]=0;
544 
545  hitsp_Et[m][n][0]=0;
546  hitsp_Et[m][n][1]=0;
547  hitsm_Et[m][n][0]=0;
548  hitsm_Et[m][n][1]=0;
549  }
550  }
551 
552  if(hbheHits.size()>0)
553  {
554  double HB_weightedX[HBETASIZE]={0.};
555  double HB_weightedY[HBETASIZE]={0.};
556  double HB_energy[HBETASIZE]={0.};
557 
558  double HE_weightedX[HEETASIZE]={0.};
559  double HE_weightedY[HEETASIZE]={0.};
560  double HE_energy[HEETASIZE]={0.};
561 
562  int ieta, iphi;
563 
564  for (HBHEiter=hbheHits.begin();
565  HBHEiter!=hbheHits.end();
566  ++HBHEiter)
567  {
568 
569  // loop over all hits
570  if (HBHEiter->energy()<0) continue; // don't consider negative-energy cells
571  HcalDetId id(HBHEiter->detid().rawId());
572  ieta=id.ieta();
573  iphi=id.iphi();
574 
575  int index=-1;
576  if ((HcalSubdetector)(id.subdet())==HcalBarrel)
577  {
578  HBtotalX+=HBHEiter->energy()*cos(PI*iphi/36.);
579  HBtotalY+=HBHEiter->energy()*sin(PI*iphi/36.);
580  HBtotalE+=HBHEiter->energy();
581 
582  index=ieta+ETA_OFFSET_HB;
583  if (index<0 || index>= HBETASIZE) continue;
584  HB_weightedX[index]+=HBHEiter->energy()*cos(PI*iphi/36.);
585  HB_weightedY[index]+=HBHEiter->energy()*sin(PI*iphi/36.);
586  HB_energy[index]+=HBHEiter->energy();
587  } // if id.subdet()==HcalBarrel
588 
589  else
590  {
591  HEtotalX+=HBHEiter->energy()*cos(PI*iphi/36.);
592  HEtotalY+=HBHEiter->energy()*sin(PI*iphi/36.);
593  HEtotalE+=HBHEiter->energy();
594 
595  index=ieta+ETA_OFFSET_HE;
596  if (index<0 || index>= HEETASIZE) continue;
597  HE_weightedX[index]+=HBHEiter->energy()*cos(PI*iphi/36.);
598  HE_weightedY[index]+=HBHEiter->energy()*sin(PI*iphi/36.);
599  HE_energy[index]+=HBHEiter->energy();
600  }
601  } // for (HBHEiter=hbheHits.begin()...
602  // Fill each histogram
603 
604  int hbeta=ETA_OFFSET_HB;
605  for (int i=-1*hbeta;i<=hbeta;++i)
606  {
607  if (i==0) continue;
608  int index = i+ETA_OFFSET_HB;
609  if (index<0 || index>= HBETASIZE) continue;
610  if (HB_energy[index]==0) continue;
611  double moment=pow(HB_weightedX[index],2)+pow(HB_weightedY[index],2);
612  moment=pow(moment,0.5);
613  moment/=HB_energy[index];
614  if (moment!=0)
615  {
616  if (makeDiagnostics_) HB_CenterOfEnergyRadius[index]->Fill(moment);
617  COEradiusVSeta->Fill(i,moment);
618  }
619  } // for (int i=-1*hbeta;i<=hbeta;++i)
620 
621  int heeta=ETA_OFFSET_HE;
622  for (int i=-1*heeta;i<=heeta;++i)
623  {
624  if (i==0) continue;
625  if (i>-1*ETA_BOUND_HE && i <ETA_BOUND_HE) continue;
626  int index = i + ETA_OFFSET_HE;
627  if (index<0 || index>= HEETASIZE) continue;
628  if (HE_energy[index]==0) continue;
629  double moment=pow(HE_weightedX[index],2)+pow(HE_weightedY[index],2);
630  moment=pow(moment,0.5);
631  moment/=HE_energy[index];
632  if (moment!=0)
633  {
634  if (makeDiagnostics_) HE_CenterOfEnergyRadius[index]->Fill(moment);
635  COEradiusVSeta->Fill(i,moment);
636  }
637  } // for (int i=-1*heeta;i<=heeta;++i)
638 
639  } // if (hbheHits.size()>0)
640 
641 
642  // HO loop
643  if(hoHits.size()>0)
644  {
645  double HO_weightedX[HOETASIZE]={0.};
646  double HO_weightedY[HOETASIZE]={0.};
647  double HO_energy[HOETASIZE]={0.};
648  double offset;
649 
650  int ieta, iphi;
651  for (HOiter=hoHits.begin();
652  HOiter!=hoHits.end();
653  ++HOiter)
654  {
655  // loop over all cells
656  if (HOiter->energy()<0) continue; // don't include negative-energy cells?
657  HcalDetId id(HOiter->detid().rawId());
658  ieta=id.ieta();
659  iphi=id.iphi();
660 
661  HOtotalX+=HOiter->energy()*cos(PI*iphi/36.);
662  HOtotalY+=HOiter->energy()*sin(PI*iphi/36.);
663  HOtotalE+=HOiter->energy();
664 
665  int index=ieta+ETA_OFFSET_HO;
666  if (index<0 || index>= HOETASIZE) continue;
667  HO_weightedX[index]+=HOiter->energy()*cos(PI*iphi/36.);
668  HO_weightedY[index]+=HOiter->energy()*sin(PI*iphi/36.);
669  HO_energy[index]+=HOiter->energy();
670  } // for (HOiter=hoHits.begin();...)
671 
672  for (int i=-1*ETA_OFFSET_HO;i<=ETA_OFFSET_HO;++i)
673  {
674  if (i==0) continue;
675  int index = i + ETA_OFFSET_HO;
676  if (index < 0 || index>= HOETASIZE) continue;
677  if (HO_energy[index]==0) continue;
678  double moment=pow(HO_weightedX[index],2)+pow(HO_weightedY[index],2);
679  moment=pow(moment,0.5);
680  moment/=HO_energy[index];
681  // Shift HO values by 0.5 units in eta relative to HB
682  offset = (i>0 ? 0.5: -0.5);
683  if (moment!=0)
684  {
685  if (makeDiagnostics_) HO_CenterOfEnergyRadius[index]->Fill(moment);
686  COEradiusVSeta->Fill(i+offset,moment);
687  }
688  } // for (int i=-1*hoeta;i<=hoeta;++i)
689  } // if (hoHits.size()>0)
690 
692  // HF loop
693 
694  Etsum_ratio_map->Fill(-1,-1,1); // fill underflow bin with number of events
695  {
696  if(hfHits.size()>0)
697  {
698  double HF_weightedX[HFETASIZE]={0.};
699  double HF_weightedY[HFETASIZE]={0.};
700  double HF_energy[HFETASIZE]={0.};
701  double offset;
702 
703  // Assume ZS until shown otherwise
704  double emptytowersRing1 = ring1totalchannels_;
705  double emptytowersRing2 = ring2totalchannels_;
706  double ZStowersRing1 = ring1totalchannels_;
707  double ZStowersRing2 = ring2totalchannels_;
708 
709  int ieta, iphi;
710  float et,eta,phi,r;
711 
712  HFlumi_occ_LS->Fill(-1,-1,1 ); // event counter in occupancy histogram underflow bin
713  // set maximum to HFlumi_occ_LS->getBinContent(0,0)?
714  // that won't work -- offline will add multiple histograms, and maximum will get screwed up?
715  // No, we can add it here, but we also need a call to setMaximum in the client as well.
716  HFlumi_occ_LS->getTH2F()->SetMaximum(HFlumi_occ_LS->getBinContent(0,0));
717 
718  double etx=0, ety=0;
719 
720  for (HFiter=hfHits.begin();
721  HFiter!=hfHits.end();
722  ++HFiter)
723  { // loop on hfHits
724  // If hit present, don't count it as ZS any more
725  ieta = HFiter->id().ieta();
726  iphi = HFiter->id().iphi();
727 
728  int binieta=ieta;
729  if (ieta<0) binieta+=41;
730  else if (ieta>0) binieta-=15;
731 
732  // Count that hit was found in one of the rings used for luminosity calculation.
733  // If so, decrease the number of empty channels per ring by 1
734  if (abs(ieta)>=33 && abs(ieta)<=36) // luminosity ring check
735  {
736  // don't subtract away cells that have already been removed as bad
737  if (BadCells_.find(HFiter->id())==BadCells_.end()) // bad cell not found
738  {
739  if ((abs(ieta)<35) && HFiter->id().depth()==1) --ZStowersRing1;
740  else if ((abs(ieta)>34) && HFiter->id().depth()==2) -- ZStowersRing2;
741  }
742  }
743 
744  if (HFiter->energy()<0) continue; // don't include negative-energy cells?
745 
746  std::pair<double,double> etas = topology.etaRange(HcalForward,abs(ieta));
747  eta=fabs(0.5*(etas.first+etas.second));
748 // eta=theHFEtaBounds[abs(ieta)-29];
749  et=HFiter->energy()/cosh(eta)/area[abs(ieta)-29];
750  if (abs(ieta)>=33 && abs(ieta)<=36) // Luminosity ring check
751  {
752  // don't count cells that are below threshold, or that have been marked bad in Chan Stat DB
753  if (et>=occThresh_ && BadCells_.find(HFiter->id())==BadCells_.end() ) // minimum ET threshold
754  {
755  if ((abs(ieta)<35) && HFiter->id().depth()==1) --emptytowersRing1;
756  else if ((abs(ieta)>34) && HFiter->id().depth()==2) -- emptytowersRing2;
757  }
758  }
759  r=radius[abs(ieta)-29];
760  if(HFiter->id().iphi()<37)
761  phi=HFiter->id().iphi()*0.087266;
762  else phi=(HFiter->id().iphi()-72)*0.087266;
763 
764 
765  if (HFiter->id().depth()==1)
766  {
767  Etsum_eta_L->Fill(binieta,et);
768  Etsum_phi_L->Fill(iphi,et);
769  Etsum_map_L->Fill(binieta,iphi,et);
770  Etsum_rphi_L->Fill(r,phi,et);
771 
772  if(ieta>0) {
773  hitsp[ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
774  hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
775  }
776  else if(ieta<0) {
777  hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][0]=HFiter->energy();
778  hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][0]=et;
779  }
780  } // if (HFiter->id().depth()==1)
781 
782  //Fill 3 histos for Short Fibers :
783  if (HFiter->id().depth()==2)
784  {
785  Etsum_eta_S->Fill(binieta,et);
786  Etsum_phi_S->Fill(iphi,et);
787  Etsum_rphi_S->Fill(r,phi,et);
788  Etsum_map_S->Fill(binieta,iphi,et);
789  if(ieta>0)
790  {
791  hitsp[ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
792  hitsp_Et[ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
793  }
794  else if(ieta<0) {
795  hitsm[-ieta-29][(HFiter->id().iphi()-1)/2][1]=HFiter->energy();
796  hitsm_Et[-ieta-29][(HFiter->id().iphi()-1)/2][1]=et;
797  }
798 
799  } // depth()==2
800  Energy_Occ->Fill(HFiter->energy());
801 
802  //HF: no non-threshold occupancy map is filled?
803 
804  if ((abs(ieta) == 33 || abs(ieta) == 34) && HFiter->id().depth() == 1)
805  {
806  etx+=et*cos(PI*iphi/36.);
807  ety+=et*sin(PI*iphi/36.);
808 
810  if (et>occThresh_)
811  {
812  int etabin=0;
813  if (ieta<0)
814  etabin=36+ieta; // bins 0-3 correspond to ieta = -36, -35, -34, -33
815  else
816  etabin=ieta-29; // bins 4-7 correspond to ieta = 33, 34, 35, 36
817  HFlumi_occ_LS->Fill(etabin,HFiter->id().iphi());
818  }
819  }
820 
821  else if ((abs(ieta) == 35 || abs(ieta) == 36) && HFiter->id().depth() == 2)
822  {
823  etx+=et*cos(PI*iphi/36.);
824  ety+=et*sin(PI*iphi/36.);
825 
827  if (et>occThresh_)
828  {
829  int etabin=0;
830  if (ieta<0)
831  etabin=36+ieta; // bins 0-3 correspond to ieta = -36, -35, -34, -33
832  else
833  etabin=ieta-29; // bins 4-7 correspond to ieta = 33, 34, 35, 36
834  HFlumi_occ_LS->Fill(etabin,HFiter->id().iphi());
835  }
836  }
837 
838  // Fill occupancy plots.
839 
840  int value=0;
841  if(et>occThresh_) value=1;
842 
843  if (HFiter->id().depth()==1)
844  {
845  Occ_eta_L->Fill(binieta,value);
846  Occ_phi_L->Fill(iphi,value);
847  Occ_map_L->Fill(binieta,iphi,value);
848  Occ_rphi_L->Fill(r,phi,value);
849  }
850 
851  else if (HFiter->id().depth()==2)
852  {
853  Occ_eta_S->Fill(binieta,value);
854  Occ_phi_S->Fill(iphi,value);
855  Occ_map_S->Fill(binieta,iphi,value);
856  Occ_rphi_S->Fill(r,phi,value);
857  }
858  HcalDetId id(HFiter->detid().rawId());
859 
860  HFtotalX+=HFiter->energy()*cos(PI*iphi/36.);
861  HFtotalY+=HFiter->energy()*sin(PI*iphi/36.);
862  HFtotalE+=HFiter->energy();
863 
864  int index=ieta+ETA_OFFSET_HF;
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();
869 
870  } // for (HFiter=hfHits.begin();...)
871 
872  // looped on all HF hits; calculate empty fraction
873  // empty towers = # of cells with ET < 0.0625 GeV, or cells missing because of ZS
874  // Calculated as : 144 - (# of cells with ET >= 0.0625 GeV)
875  // At some point, allow for calculations when channels are masked (and less than 144 channels expected)
876 
877  // Check Ring 1
878  double logvalue=-1;
879  if (ring1totalchannels_>0)
880  {
881  if (emptytowersRing1>0)
882  logvalue=-1.*log(emptytowersRing1/ring1totalchannels_);
884  HFlumi_Occupancy_per_channel_vs_BX_RING1->Fill(bunchCrossing,logvalue);
885  }
886  // Check Ring 2
887  logvalue=-1;
888  if (ring2totalchannels_>0)
889  {
890  if (emptytowersRing2>0)
891  logvalue=-1.*log(emptytowersRing2/ring2totalchannels_);
893  HFlumi_Occupancy_per_channel_vs_BX_RING2->Fill(bunchCrossing,logvalue);
894  }
895 
896  HFlumi_ETsum_vs_BX->Fill(bunchCrossing,pow(etx*etx+ety*ety,0.5));
897  int hfeta=ETA_OFFSET_HF;
898  for (int i=-1*hfeta;i<=hfeta;++i)
899  {
900  if (i==0) continue;
901  if (i>-1*ETA_BOUND_HF && i <ETA_BOUND_HF) continue;
902  int index = i + ETA_OFFSET_HF;
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);
909  if (moment!=0)
910  {
911  if (makeDiagnostics_) HF_CenterOfEnergyRadius[index]->Fill(moment);
912  COEradiusVSeta->Fill(i+offset,moment);
913  }
914  } // for (int i=-1*hfeta;i<=hfeta;++i)
915  float ratiom,ratiop;
916 
917  for(int i=0;i<13;i++){
918  for(int j=0;j<36;j++){
919 
920  if(hitsp[i][j][0]==hitsp[i][j][1]) continue;
921 
922  if (hitsp[i][j][0] < 1.2 && hitsp[i][j][1] < 1.8) continue;
923  //use only lumi rings
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])));
926  //cout<<ratiop<<std::endl;
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)){
928  Etsum_ratio_p->Fill(ratiop);
929  if(abs(ratiop>0.95)) Etsum_ratio_map->Fill(i,2*j+1); // i=4,5,6,7 for HFlumi rings
930  }
931  }
932  }
933 
934  for(int p=0;p<13;p++){
935  for(int q=0;q<36;q++){
936 
937  if(hitsm[p][q][0]==hitsm[p][q][1]) continue;
938 
939  if (hitsm[p][q][0] < 1.2 && hitsm[p][q][1] < 1.8) continue;
940  //use only lumi rings
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)){
944  Etsum_ratio_m->Fill(ratiom);
945  if(abs(ratiom>0.95)) Etsum_ratio_map->Fill(7-p,2*q+1); // p=4,5,6,7 for HFlumi rings
946  //p=7: ieta=-36; p=4: ieta=-33
947  }
948  }
949  }
950  } // if (hfHits.size()>0)
951 
952  totalX=HBtotalX+HEtotalX+HOtotalX+HFtotalX;
953  totalY=HBtotalY+HEtotalY+HOtotalY+HFtotalY;
954  totalE=HBtotalE+HEtotalE+HOtotalE+HFtotalE;
955 
956  double moment;
957  if (HBtotalE>0)
958  {
959  moment=pow(HBtotalX*HBtotalX+HBtotalY*HBtotalY,0.5)/HBtotalE;
960  HBCenterOfEnergyRadius->Fill(moment);
961  HBCenterOfEnergy->Fill(HBtotalX/HBtotalE, HBtotalY/HBtotalE);
962  }
963  if (HEtotalE>0)
964  {
965  moment=pow(HEtotalX*HEtotalX+HEtotalY*HEtotalY,0.5)/HEtotalE;
966  HECenterOfEnergyRadius->Fill(moment);
967  HECenterOfEnergy->Fill(HEtotalX/HEtotalE, HEtotalY/HEtotalE);
968  }
969  if (HOtotalE>0)
970  {
971  moment=pow(HOtotalX*HOtotalX+HOtotalY*HOtotalY,0.5)/HOtotalE;
972  HOCenterOfEnergyRadius->Fill(moment);
973  HOCenterOfEnergy->Fill(HOtotalX/HOtotalE, HOtotalY/HOtotalE);
974  }
975  if (HFtotalE>0)
976  {
977  moment=pow(HFtotalX*HFtotalX+HFtotalY*HFtotalY,0.5)/HFtotalE;
978  HFCenterOfEnergyRadius->Fill(moment);
979  HFCenterOfEnergy->Fill(HFtotalX/HFtotalE, HFtotalY/HFtotalE);
980  }
981  if (totalE>0)
982  {
983  moment = pow(totalX*totalX+totalY*totalY,0.5)/totalE;
984  CenterOfEnergyRadius->Fill(moment);
985  CenterOfEnergy->Fill(totalX/totalE, totalY/totalE);
986  }
987 
988 
989 
990  for (HFDigiCollection::const_iterator j=hf.begin(); j!=hf.end(); j++){
991  const HFDataFrame digi = (const HFDataFrame)(*j);
992  // calibs_= cond.getHcalCalibrations(digi.id()); // Old method was made private.
993  // float en=0;
994  // float ts =0; float bs=0;
995  // int maxi=0; float maxa=0;
996  // for(int i=sigS0_; i<=sigS1_; i++){
997  // if(digi.sample(i).adc()>maxa){maxa=digi.sample(i).adc(); maxi=i;}
998  // }
999  // for(int i=sigS0_; i<=sigS1_; i++){
1000  // float tmp1 =0;
1001  // int j1=digi.sample(i).adc();
1002  // tmp1 = (LedMonAdc2fc[j1]+0.5);
1003  // en += tmp1-calibs_.pedestal(digi.sample(i).capid());
1004  // if(i>=(maxi-1) && i<=maxi+1){
1005  // ts += i*(tmp1-calibs_.pedestal(digi.sample(i).capid()));
1006  // bs += tmp1-calibs_.pedestal(digi.sample(i).capid());
1007  // }
1008  // }
1009 
1010  //---HFlumiplots
1011  int theTStobeused = 6;
1012  // will have masking later:
1013  int mask=1;
1014  if(mask!=1) continue;
1015  //if we want to sum the 10 TS instead of just taking one:
1016  for (int i=0; i<digi.size(); i++) {
1017  if (i==theTStobeused) {
1018  float tmpET =0;
1019  int jadc=digi.sample(i).adc();
1020  //NOW LUT used in HLX are only identy LUTs, so Et filled
1021  //with unlinearised adc, ie tmpET = jadc
1022  // tmpET = (adc2fc[jadc]+0.5);
1023  tmpET = jadc;
1024 
1025  //-find which wedge we are in
1026  // ETsum and Occupancy will be summed for both L and S
1027  if(digi.id().ieta()>28){
1028  if((digi.id().iphi()==1)||(digi.id().iphi()==71)){
1029  HFlumi_ETsum_perwedge->Fill(1,tmpET);
1030  if((digi.id().ieta()==33)||(digi.id().ieta()==34)) {
1031  if(jadc>100) HFlumi_Occupancy_above_thr_r1->Fill(1,1);
1032  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r1->Fill(1,1);
1033  if(jadc<10) HFlumi_Occupancy_below_thr_r1->Fill(1,1);
1034  }
1035  else if((digi.id().ieta()==35)||(digi.id().ieta()==36)) {
1036  if(jadc>100) HFlumi_Occupancy_above_thr_r2->Fill(1,1);
1037  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r2->Fill(1,1);
1038  if(jadc<10) HFlumi_Occupancy_below_thr_r2->Fill(1,1);
1039  }
1040  }
1041  else {
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))) {
1045  HFlumi_ETsum_perwedge->Fill(iwedge,tmpET);
1046  if((digi.id().ieta()==33)||(digi.id().ieta()==34)) {
1047  if(jadc>100) HFlumi_Occupancy_above_thr_r1->Fill(iwedge,1);
1048  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r1->Fill(iwedge,1);
1049  if(jadc<10) HFlumi_Occupancy_below_thr_r1->Fill(iwedge,1);
1050  }
1051  else if((digi.id().ieta()==35)||(digi.id().ieta()==36)) {
1052  if(jadc>100) HFlumi_Occupancy_above_thr_r2->Fill(iwedge,1);
1053  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r2->Fill(iwedge,1);
1054  if(jadc<10) HFlumi_Occupancy_below_thr_r2->Fill(iwedge,1);
1055  }
1056  iwedge=99;
1057  }
1058  }
1059  }
1060  } //--endif ieta in HF+
1061  else if(digi.id().ieta()<-28){
1062  if((digi.id().iphi()==1)||(digi.id().iphi()==71)){
1063  HFlumi_ETsum_perwedge->Fill(19,tmpET);
1064  if((digi.id().ieta()==-33)||(digi.id().ieta()==-34)) {
1065  if(jadc>100) HFlumi_Occupancy_above_thr_r1->Fill(19,1);
1066  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r1->Fill(19,1);
1067  if(jadc<10) HFlumi_Occupancy_below_thr_r1->Fill(19,1);
1068  }
1069  else if((digi.id().ieta()==-35)||(digi.id().ieta()==-36)) {
1070  if(jadc>100) HFlumi_Occupancy_above_thr_r2->Fill(19,1);
1071  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r2->Fill(19,1);
1072  if(jadc<10) HFlumi_Occupancy_below_thr_r2->Fill(19,1);
1073  }
1074  }
1075  else {
1076  for (int iw=2; iw<19; iw++) {
1077  int itemp=4*(iw-1);
1078  if( (digi.id().iphi()==(itemp+1)) || (digi.id().iphi()==(itemp-1))) {
1079  HFlumi_ETsum_perwedge->Fill(iw+18,tmpET);
1080  if((digi.id().ieta()==-33)||(digi.id().ieta()==-34)) {
1081  if(jadc>100) HFlumi_Occupancy_above_thr_r1->Fill(iw+18,1);
1082  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r1->Fill(iw+18,1);
1083  if(jadc<10) HFlumi_Occupancy_below_thr_r1->Fill(iw+18,1);
1084  }
1085  else if((digi.id().ieta()==-35)||(digi.id().ieta()==-36)) {
1086  if(jadc>100) HFlumi_Occupancy_above_thr_r2->Fill(iw+18,1);
1087  if((jadc>=10)&&(jadc<=100)) HFlumi_Occupancy_between_thrs_r2->Fill(iw+18,1);
1088  if(jadc<10) HFlumi_Occupancy_below_thr_r2->Fill(iw+18,1);
1089  }
1090  iw=99;
1091  }
1092  }
1093  }
1094  }//---endif ieta inHF-
1095  }//---endif TS=nr6
1096  }
1097  }//------end loop over TS for lumi
1098  return;
1099  }
1100 }
MonitorElement * HFCenterOfEnergyRadius
MonitorElement * Etsum_map_S
MonitorElement * HBCenterOfEnergy
int i
Definition: DBlmapReader.cc:9
MonitorElement * Etsum_eta_L
MonitorElement * Occ_rphi_L
MonitorElement * HOCenterOfEnergy
MonitorElement * HFlumi_Occupancy_above_thr_r1
MonitorElement * Occ_rphi_S
#define PI
MonitorElement * HFlumi_Occupancy_below_thr_r2
#define HBETASIZE
MonitorElement * Etsum_eta_S
int adc() const
get the ADC sample
Definition: HcalQIESample.h:22
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
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
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING2
MonitorElement * COEradiusVSeta
MonitorElement * Occ_phi_S
const int ETA_OFFSET_HF
MonitorElement * HFlumi_ETsum_perwedge
void Fill(long long x)
#define HOETASIZE
MonitorElement * Occ_phi_L
MonitorElement * HFlumi_ETsum_vs_BX
static const float area[]
const int ETA_BOUND_HF
std::map< int, MonitorElement * > HB_CenterOfEnergyRadius
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING1
MonitorElement * HFCenterOfEnergy
std::map< HcalDetId, int > BadCells_
MonitorElement * Etsum_ratio_map
MonitorElement * HECenterOfEnergyRadius
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
#define HFETASIZE
HcalSubdetector
Definition: HcalAssistant.h:31
const HcalQIESample & sample(int i) const
access a sample
Definition: HFDataFrame.h:39
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
MonitorElement * HFlumi_occ_LS
MonitorElement * CenterOfEnergyRadius
MonitorElement * CenterOfEnergy
MonitorElement * HFlumi_Occupancy_below_thr_r1
std::map< int, MonitorElement * > HE_CenterOfEnergyRadius
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING2
MonitorElement * Energy_Occ
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING1
static const float radius[]
const_iterator end() const
std::map< int, MonitorElement * > HO_CenterOfEnergyRadius
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:101
MonitorElement * Occ_eta_L
MonitorElement * HFlumi_Occupancy_between_thrs_r1
#define HEETASIZE
int size() const
total number of samples in the digi
Definition: HFDataFrame.h:26
MonitorElement * HECenterOfEnergy
MonitorElement * HOCenterOfEnergyRadius
MonitorElement * Etsum_ratio_m
MonitorElement * HFlumi_Et_per_channel_vs_lumiblock
MonitorElement * HBCenterOfEnergyRadius
MonitorElement * Etsum_rphi_S
double getBinContent(int binx) const
get content of bin (1-D)
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
MonitorElement * HFlumi_Occupancy_above_thr_r2
size_type size() const
const int ETA_OFFSET_HO
const HcalDetId & id() const
Definition: HFDataFrame.h:22
MonitorElement * Etsum_ratio_p
TH2F * getTH2F(void) const
const int ETA_OFFSET_HB
MonitorElement * Etsum_phi_L
MonitorElement * Etsum_rphi_L
MonitorElement * Occ_map_S
std::map< int, MonitorElement * > HF_CenterOfEnergyRadius
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
const int ETA_BOUND_HE
const_iterator begin() const
MonitorElement * Occ_eta_S
const int ETA_OFFSET_HE
void HcalBeamMonitor::reset ( void  )
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 85 of file HcalBeamMonitor.cc.

References CenterOfEnergy, CenterOfEnergyRadius, COEradiusVSeta, Energy_Occ, Etsum_eta_L, Etsum_eta_S, Etsum_map_L, Etsum_map_S, Etsum_phi_L, Etsum_phi_S, Etsum_ratio_m, Etsum_ratio_map, Etsum_ratio_p, Etsum_rphi_L, Etsum_rphi_S, HBCenterOfEnergy, HBCenterOfEnergyRadius, HECenterOfEnergy, HECenterOfEnergyRadius, HFCenterOfEnergy, HFCenterOfEnergyRadius, HFlumi_diag_deadcells, HFlumi_diag_hotcells, HFlumi_Et_per_channel_vs_lumiblock, HFlumi_ETsum_perwedge, HFlumi_ETsum_vs_BX, HFlumi_occ_LS, HFlumi_Occupancy_above_thr_r1, HFlumi_Occupancy_above_thr_r2, HFlumi_Occupancy_below_thr_r1, HFlumi_Occupancy_below_thr_r2, HFlumi_Occupancy_between_thrs_r1, HFlumi_Occupancy_between_thrs_r2, HFlumi_Occupancy_per_channel_vs_BX_RING1, HFlumi_Occupancy_per_channel_vs_BX_RING2, HFlumi_Occupancy_per_channel_vs_lumiblock_RING1, HFlumi_Occupancy_per_channel_vs_lumiblock_RING2, HFlumi_Ring1Status_vs_LS, HFlumi_Ring2Status_vs_LS, HFlumi_total_deadcells, HFlumi_total_hotcells, HOCenterOfEnergy, HOCenterOfEnergyRadius, Occ_eta_L, Occ_eta_S, Occ_map_L, Occ_map_S, Occ_phi_L, Occ_phi_S, Occ_rphi_L, Occ_rphi_S, and MonitorElement::Reset().

Referenced by bookHistograms().

86 {
90 
99 
100  Etsum_eta_L->Reset();
101  Etsum_eta_S->Reset();
102  Etsum_phi_L->Reset();
103  Etsum_phi_S->Reset();
104  Etsum_ratio_p->Reset();
105  Etsum_ratio_m->Reset();
106  Etsum_map_L->Reset();
107  Etsum_map_S->Reset();
109  Etsum_rphi_L->Reset();
110  Etsum_rphi_S->Reset();
111  Energy_Occ->Reset();
112 
113  Occ_rphi_L->Reset();
114  Occ_rphi_S->Reset();
115  Occ_eta_L->Reset();
116  Occ_eta_S->Reset();
117  Occ_phi_L->Reset();
118  Occ_phi_S->Reset();
119  Occ_map_L->Reset();
120  Occ_map_S->Reset();
121 
129 
136 
137  HFlumi_occ_LS->Reset();
142 
143 
146 }
MonitorElement * HFCenterOfEnergyRadius
MonitorElement * Etsum_map_S
MonitorElement * HBCenterOfEnergy
MonitorElement * Etsum_eta_L
MonitorElement * Occ_rphi_L
MonitorElement * HOCenterOfEnergy
MonitorElement * HFlumi_Occupancy_above_thr_r1
MonitorElement * Occ_rphi_S
MonitorElement * HFlumi_Occupancy_below_thr_r2
MonitorElement * Etsum_eta_S
MonitorElement * Etsum_phi_S
MonitorElement * HFlumi_Occupancy_between_thrs_r2
MonitorElement * Occ_map_L
MonitorElement * Etsum_map_L
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING2
MonitorElement * COEradiusVSeta
MonitorElement * Occ_phi_S
MonitorElement * HFlumi_ETsum_perwedge
MonitorElement * HFlumi_Ring2Status_vs_LS
MonitorElement * Occ_phi_L
MonitorElement * HFlumi_ETsum_vs_BX
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING1
MonitorElement * HFCenterOfEnergy
MonitorElement * HFlumi_diag_deadcells
MonitorElement * Etsum_ratio_map
MonitorElement * HECenterOfEnergyRadius
MonitorElement * HFlumi_occ_LS
MonitorElement * CenterOfEnergyRadius
MonitorElement * CenterOfEnergy
MonitorElement * HFlumi_Occupancy_below_thr_r1
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING2
MonitorElement * Energy_Occ
MonitorElement * HFlumi_Ring1Status_vs_LS
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING1
MonitorElement * Occ_eta_L
MonitorElement * HFlumi_Occupancy_between_thrs_r1
MonitorElement * HECenterOfEnergy
MonitorElement * HOCenterOfEnergyRadius
MonitorElement * Etsum_ratio_m
MonitorElement * HFlumi_Et_per_channel_vs_lumiblock
MonitorElement * HBCenterOfEnergyRadius
MonitorElement * Etsum_rphi_S
MonitorElement * HFlumi_Occupancy_above_thr_r2
MonitorElement * HFlumi_diag_hotcells
MonitorElement * Etsum_ratio_p
MonitorElement * Etsum_phi_L
void Reset(void)
reset ME (ie. contents, errors, etc)
MonitorElement * Etsum_rphi_L
MonitorElement * Occ_map_S
MonitorElement * HFlumi_total_deadcells
MonitorElement * HFlumi_total_hotcells
MonitorElement * Occ_eta_S
void HcalBeamMonitor::SetEtaLabels ( MonitorElement h)
private

Definition at line 1290 of file HcalBeamMonitor.cc.

References MonitorElement::getTH2F().

Referenced by setup().

1291 {
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");
1300  return;
1301 }
TH2F * getTH2F(void) const
void HcalBeamMonitor::setup ( DQMStore::IBooker ib)
virtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 149 of file HcalBeamMonitor.cc.

References funct::abs(), DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), CenterOfEnergy, CenterOfEnergyRadius, COEradiusVSeta, gather_cfg::cout, HcalBaseDQMonitor::debug_, Energy_Occ, ETA_BOUND_HE, ETA_BOUND_HF, ETA_OFFSET_HB, ETA_OFFSET_HE, ETA_OFFSET_HF, ETA_OFFSET_HO, Etsum_eta_L, Etsum_eta_S, Etsum_map_L, Etsum_map_S, Etsum_phi_L, Etsum_phi_S, Etsum_ratio_m, Etsum_ratio_map, Etsum_ratio_p, Etsum_rphi_L, Etsum_rphi_S, MonitorElement::getTH1F(), MonitorElement::getTProfile(), HB_CenterOfEnergyRadius, HBCenterOfEnergy, HBCenterOfEnergyRadius, HE_CenterOfEnergyRadius, HECenterOfEnergy, HECenterOfEnergyRadius, HF_CenterOfEnergyRadius, HFCenterOfEnergy, HFCenterOfEnergyRadius, HFlumi_diag_deadcells, HFlumi_diag_hotcells, HFlumi_Et_per_channel_vs_lumiblock, HFlumi_ETsum_perwedge, HFlumi_ETsum_vs_BX, HFlumi_occ_LS, HFlumi_Occupancy_above_thr_r1, HFlumi_Occupancy_above_thr_r2, HFlumi_Occupancy_below_thr_r1, HFlumi_Occupancy_below_thr_r2, HFlumi_Occupancy_between_thrs_r1, HFlumi_Occupancy_between_thrs_r2, HFlumi_Occupancy_per_channel_vs_BX_RING1, HFlumi_Occupancy_per_channel_vs_BX_RING2, HFlumi_Occupancy_per_channel_vs_lumiblock_RING1, HFlumi_Occupancy_per_channel_vs_lumiblock_RING2, HFlumi_Ring1Status_vs_LS, HFlumi_Ring2Status_vs_LS, HFlumi_total_deadcells, HFlumi_total_hotcells, HO_CenterOfEnergyRadius, HOCenterOfEnergy, HOCenterOfEnergyRadius, i, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::NLumiBlocks_, Occ_eta_L, Occ_eta_S, Occ_map_L, Occ_map_S, Occ_phi_L, Occ_phi_S, Occ_rphi_L, Occ_rphi_S, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), SetEtaLabels(), HcalBaseDQMonitor::setup(), setupDone_, and HcalBaseDQMonitor::subdir_.

Referenced by bookHistograms().

150 {
151  if (setupDone_)
152  return;
153  setupDone_ = true;
154  if (debug_>0) std::cout <<"<HcalBeamMonitor::setup> Setup in progress..."<<std::endl;
156 
157  //jason's
159  CenterOfEnergyRadius = ib.book1D("CenterOfEnergyRadius",
160  "Center Of Energy radius",
161  200,0,1);
162 
163  CenterOfEnergyRadius->setAxisTitle("(normalized) radius",1);
164 
165  CenterOfEnergy = ib.book2D("CenterOfEnergy",
166  "Center of Energy;normalized x coordinate;normalize y coordinate",
167  40,-1,1,
168  40,-1,1);
169 
170  COEradiusVSeta = ib.bookProfile("COEradiusVSeta",
171  "Center of Energy radius vs i#eta",
172  172,-43,43,
173  20,0,1);
174  COEradiusVSeta->setAxisTitle("i#eta",1);
175  COEradiusVSeta->setAxisTitle("(normalized) radius",2);
176 
177  std::stringstream histname;
178  std::stringstream histtitle;
179  ib.setCurrentFolder(subdir_+"HB");
180  HBCenterOfEnergyRadius = ib.book1D("HBCenterOfEnergyRadius",
181  "HB Center Of Energy radius",
182  200,0,1);
183  HBCenterOfEnergy = ib.book2D("HBCenterOfEnergy",
184  "HB Center of Energy",
185  40,-1,1,
186  40,-1,1);
187  if (makeDiagnostics_)
188  {
189  for (int i=-16;i<=16;++i)
190  {
191  if (i==0) continue;
192  histname.str("");
193  histtitle.str("");
194  histname<<"HB_CenterOfEnergyRadius_ieta"<<i;
195  histtitle<<"HB Center Of Energy ieta = "<<i;
196  HB_CenterOfEnergyRadius[i+ETA_OFFSET_HB]=ib.book1D(histname.str().c_str(),
197  histtitle.str().c_str(),
198  200,0,1);
199  } // end of HB loop
200  }
201  ib.setCurrentFolder(subdir_+"HE");
202  HECenterOfEnergyRadius = ib.book1D("HECenterOfEnergyRadius",
203  "HE Center Of Energy radius",
204  200,0,1);
205  HECenterOfEnergy = ib.book2D("HECenterOfEnergy",
206  "HE Center of Energy",
207  40,-1,1,
208  40,-1,1);
209 
210  if (makeDiagnostics_)
211  {
212  for (int i=-29;i<=29;++i)
213  {
214  if (abs(i)<ETA_BOUND_HE) continue;
215  histname.str("");
216  histtitle.str("");
217  histname<<"HE_CenterOfEnergyRadius_ieta"<<i;
218  histtitle<<"HE Center Of Energy ieta = "<<i;
219  HE_CenterOfEnergyRadius[i+ETA_OFFSET_HE]=ib.book1D(histname.str().c_str(),
220  histtitle.str().c_str(),
221  200,0,1);
222  } // end of HE loop
223  }
224  ib.setCurrentFolder(subdir_+"HO");
225  HOCenterOfEnergyRadius = ib.book1D("HOCenterOfEnergyRadius",
226  "HO Center Of Energy radius",
227  200,0,1);
228  HOCenterOfEnergy = ib.book2D("HOCenterOfEnergy",
229  "HO Center of Energy",
230  40,-1,1,
231  40,-1,1);
232  if (makeDiagnostics_)
233  {
234  for (int i=-15;i<=15;++i)
235  {
236  if (i==0) continue;
237  histname.str("");
238  histtitle.str("");
239  histname<<"HO_CenterOfEnergyRadius_ieta"<<i;
240  histtitle<<"HO Center Of Energy radius ieta = "<<i;
241  HO_CenterOfEnergyRadius[i+ETA_OFFSET_HO]=ib.book1D(histname.str().c_str(),
242  histtitle.str().c_str(),
243  200,0,1);
244  } // end of HO loop
245  }
246  ib.setCurrentFolder(subdir_+"HF");
247  HFCenterOfEnergyRadius = ib.book1D("HFCenterOfEnergyRadius",
248  "HF Center Of Energy radius",
249  200,0,1);
250  HFCenterOfEnergy = ib.book2D("HFCenterOfEnergy",
251  "HF Center of Energy",
252  40,-1,1,
253  40,-1,1);
254  if (makeDiagnostics_)
255  {
256  for (int i=-41;i<=41;++i)
257  {
258  if (abs(i)<ETA_BOUND_HF) continue;
259  histname.str("");
260  histtitle.str("");
261  histname<<"HF_CenterOfEnergyRadius_ieta"<<i;
262  histtitle<<"HF Center Of Energy radius ieta = "<<i;
263  HF_CenterOfEnergyRadius[i+ETA_OFFSET_HF]=ib.book1D(histname.str().c_str(),
264  histtitle.str().c_str(),
265  200,0,1);
266  } // end of HF loop
267  }
268 
269  ib.setCurrentFolder(subdir_+"Lumi");
270  // Wenhan's
271  // reducing bins from ",200,0,2000" to ",40,0,800"
272 
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);
286 
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);
288  Energy_Occ=ib.book1D("Occ vs Energy","Occupancy vs Energy",200,0,2000);
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);
292 
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);
295 
296  Etsum_ratio_map=ib.book2D("Abnormal PMT events","Abnormal PMT events",
297  8,0,8,36, 0.5,72.5);
299 
300  HFlumi_occ_LS = ib.book2D("HFlumi_occ_LS","HFlumi occupancy for current LS",
301  8,0,8,36, 0.5,72.5);
303 
304  HFlumi_total_deadcells = ib.book2D("HFlumi_total_deadcells","Number of dead lumi channels for LS with at least 10 bad channels",
305  8,0,8,36,0.5,72.5);
307  HFlumi_total_hotcells = ib.book2D("HFlumi_total_hotcells","Number of hot lumi channels for LS with at least 10 bad channels",
308  8,0,8,36,0.5,72.5);
310 
311  HFlumi_diag_deadcells = ib.book2D("HFlumi_diag_deadcells","Channels that had no hit for at least one LS",
312  8,0,8,36,0.5,72.5);
314  HFlumi_diag_hotcells = ib.book2D("HFlumi_diag_hotcells","Channels that appeared hot for at least one LS",
315  8,0,8,36,0.5,72.5);
317 
318 
319 
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);
324 
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);
326 
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);
328 
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);
331 
332  std::stringstream binlabel;
333  for (int zz=0;zz<27;++zz)
334  {
335  if (zz<13)
336  binlabel<<zz-41;
337  else if (zz==13)
338  binlabel<<"NULL";
339  else
340  binlabel<<zz+15;
341  Occ_eta_S->setBinLabel(zz+1,binlabel.str().c_str());
342  Occ_eta_L->setBinLabel(zz+1,binlabel.str().c_str());
343  Occ_map_S->setBinLabel(zz+1,binlabel.str().c_str());
344  Occ_map_L->setBinLabel(zz+1,binlabel.str().c_str());
345  Etsum_eta_S->setBinLabel(zz+1,binlabel.str().c_str());
346  Etsum_eta_L->setBinLabel(zz+1,binlabel.str().c_str());
347  Etsum_map_S->setBinLabel(zz+1,binlabel.str().c_str());
348  Etsum_map_L->setBinLabel(zz+1,binlabel.str().c_str());
349  binlabel.str("");
350  }
351 
352  //HFlumi plots
353  HFlumi_ETsum_perwedge = ib.book1D("HF lumi ET-sum per wedge","HF lumi ET-sum per wedge;wedge",36,1,37);
354  HFlumi_ETsum_perwedge->getTH1F()->SetMinimum(0);
355 
356  HFlumi_Occupancy_above_thr_r1 = ib.book1D("HF lumi Occupancy above threshold ring1","HF lumi Occupancy above threshold ring1;wedge",36,1,37);
357  HFlumi_Occupancy_between_thrs_r1 = ib.book1D("HF lumi Occupancy between thresholds ring1","HF lumi Occupancy between thresholds ring1;wedge",36,1,37);
358  HFlumi_Occupancy_below_thr_r1 = ib.book1D("HF lumi Occupancy below threshold ring1","HF lumi Occupancy below threshold ring1;wedge",36,1,37);
359  HFlumi_Occupancy_above_thr_r2 = ib.book1D("HF lumi Occupancy above threshold ring2","HF lumi Occupancy above threshold ring2;wedge",36,1,37);
360  HFlumi_Occupancy_between_thrs_r2 = ib.book1D("HF lumi Occupancy between thresholds ring2","HF lumi Occupancy between thresholds ring2;wedge",36,1,37);
361  HFlumi_Occupancy_below_thr_r2 = ib.book1D("HF lumi Occupancy below threshold ring2","HF lumi Occupancy below threshold ring2;wedge",36,1,37);
362 
363  HFlumi_Occupancy_above_thr_r1->getTH1F()->SetMinimum(0);
364  HFlumi_Occupancy_between_thrs_r1->getTH1F()->SetMinimum(0);
365  HFlumi_Occupancy_below_thr_r1->getTH1F()->SetMinimum(0);
366  HFlumi_Occupancy_above_thr_r2->getTH1F()->SetMinimum(0);
367  HFlumi_Occupancy_between_thrs_r2->getTH1F()->SetMinimum(0);
368  HFlumi_Occupancy_below_thr_r2->getTH1F()->SetMinimum(0);
369 
370  HFlumi_Occupancy_per_channel_vs_lumiblock_RING1 = ib.bookProfile("HFlumiRing1OccupancyPerChannelVsLB",
371  "HFlumi Occupancy per channel vs lumi-block (RING 1);LS; -ln(empty fraction)",
372  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
373  HFlumi_Occupancy_per_channel_vs_lumiblock_RING2 = ib.bookProfile("HFlumiRing2OccupancyPerChannelVsLB","HFlumi Occupancy per channel vs lumi-block (RING 2);LS; -ln(empty fraction)",NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
374 
375  HFlumi_Occupancy_per_channel_vs_BX_RING1 = ib.bookProfile("HFlumi Occupancy per channel vs BX (RING 1)","HFlumi Occupancy per channel vs BX (RING 1);BX; -ln(empty fraction)",4000,0,4000,100,0,10000);
376  HFlumi_Occupancy_per_channel_vs_BX_RING2 = ib.bookProfile("HFlumi Occupancy per channel vs BX (RING 2)","HFlumi Occupancy per channel vs BX (RING 2);BX; -ln(empty fraction)",4000,0,4000,100,0,10000);
377  HFlumi_ETsum_vs_BX = ib.bookProfile("HFlumi_ETsum_vs_BX","HFlumi ETsum vs BX; BX; ETsum",4000,0,4000,100,0,10000);
378 
379  HFlumi_Et_per_channel_vs_lumiblock = ib.bookProfile("HFlumi Et per channel vs lumi-block","HFlumi Et per channel vs lumi-block;LS;ET",NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
380 
383  HFlumi_Et_per_channel_vs_lumiblock->getTProfile()->SetMarkerStyle(20);
384 
385  HFlumi_Ring1Status_vs_LS = ib.bookProfile("HFlumi_Ring1Status_vs_LS","Fraction of good Ring 1 channels vs LS;LS; Fraction of Good Channels",NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
386  HFlumi_Ring2Status_vs_LS = ib.bookProfile("HFlumi_Ring2Status_vs_LS","Fraction of good Ring 2 channels vs LS;LS; Fraction of Good Channels",NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
387  HFlumi_Ring1Status_vs_LS->getTProfile()->SetMarkerStyle(20);
388  HFlumi_Ring2Status_vs_LS->getTProfile()->SetMarkerStyle(20);
389 
390  return;
391 }
MonitorElement * HFCenterOfEnergyRadius
MonitorElement * Etsum_map_S
MonitorElement * HBCenterOfEnergy
int i
Definition: DBlmapReader.cc:9
MonitorElement * Etsum_eta_L
MonitorElement * Occ_rphi_L
MonitorElement * HOCenterOfEnergy
MonitorElement * HFlumi_Occupancy_above_thr_r1
MonitorElement * Occ_rphi_S
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * HFlumi_Occupancy_below_thr_r2
MonitorElement * Etsum_eta_S
MonitorElement * Etsum_phi_S
MonitorElement * HFlumi_Occupancy_between_thrs_r2
MonitorElement * Occ_map_L
MonitorElement * Etsum_map_L
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 * HFlumi_Occupancy_per_channel_vs_lumiblock_RING2
MonitorElement * COEradiusVSeta
MonitorElement * Occ_phi_S
const int ETA_OFFSET_HF
MonitorElement * HFlumi_ETsum_perwedge
MonitorElement * HFlumi_Ring2Status_vs_LS
MonitorElement * Occ_phi_L
MonitorElement * HFlumi_ETsum_vs_BX
const int ETA_BOUND_HF
std::map< int, MonitorElement * > HB_CenterOfEnergyRadius
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING1
MonitorElement * HFCenterOfEnergy
MonitorElement * HFlumi_diag_deadcells
MonitorElement * Etsum_ratio_map
MonitorElement * HECenterOfEnergyRadius
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * HFlumi_occ_LS
MonitorElement * CenterOfEnergyRadius
MonitorElement * CenterOfEnergy
MonitorElement * HFlumi_Occupancy_below_thr_r1
std::map< int, MonitorElement * > HE_CenterOfEnergyRadius
MonitorElement * HFlumi_Occupancy_per_channel_vs_BX_RING2
MonitorElement * Energy_Occ
MonitorElement * HFlumi_Ring1Status_vs_LS
MonitorElement * HFlumi_Occupancy_per_channel_vs_lumiblock_RING1
std::map< int, MonitorElement * > HO_CenterOfEnergyRadius
void SetEtaLabels(MonitorElement *h)
MonitorElement * Occ_eta_L
MonitorElement * HFlumi_Occupancy_between_thrs_r1
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
MonitorElement * HECenterOfEnergy
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * HOCenterOfEnergyRadius
MonitorElement * Etsum_ratio_m
MonitorElement * HFlumi_Et_per_channel_vs_lumiblock
MonitorElement * HBCenterOfEnergyRadius
TH1F * getTH1F(void) const
MonitorElement * Etsum_rphi_S
MonitorElement * HFlumi_Occupancy_above_thr_r2
TProfile * getTProfile(void) const
tuple cout
Definition: gather_cfg.py:145
MonitorElement * HFlumi_diag_hotcells
const int ETA_OFFSET_HO
MonitorElement * Etsum_ratio_p
const int ETA_OFFSET_HB
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)
virtual void setup(DQMStore::IBooker &)
MonitorElement * Etsum_rphi_L
MonitorElement * Occ_map_S
std::map< int, MonitorElement * > HF_CenterOfEnergyRadius
MonitorElement * HFlumi_total_deadcells
const int ETA_BOUND_HE
MonitorElement * HFlumi_total_hotcells
MonitorElement * Occ_eta_S
const int ETA_OFFSET_HE

Member Data Documentation

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}
staticprivate

Definition at line 124 of file HcalBeamMonitor.h.

Referenced by processEvent().

std::map<HcalDetId, int> HcalBeamMonitor::BadCells_
private

Definition at line 112 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), endLuminosityBlock(), and processEvent().

MonitorElement* HcalBeamMonitor::CenterOfEnergy
private

Definition at line 55 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::CenterOfEnergyRadius
private

Definition at line 54 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::COEradiusVSeta
private

Definition at line 56 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

edm::InputTag HcalBeamMonitor::digiLabel_
private

Definition at line 134 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

MonitorElement* HcalBeamMonitor::Energy_Occ
private

Definition at line 78 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

const int HcalBeamMonitor::ETA_BOUND_HE
private

Definition at line 119 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

const int HcalBeamMonitor::ETA_BOUND_HF
private

Definition at line 122 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

const int HcalBeamMonitor::ETA_OFFSET_HB
private

Definition at line 117 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

const int HcalBeamMonitor::ETA_OFFSET_HE
private

Definition at line 118 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

const int HcalBeamMonitor::ETA_OFFSET_HF
private

Definition at line 121 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

const int HcalBeamMonitor::ETA_OFFSET_HO
private

Definition at line 120 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_eta_L
private

Definition at line 67 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_eta_S
private

Definition at line 68 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_map_L
private

Definition at line 73 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_map_S
private

Definition at line 74 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_phi_L
private

Definition at line 69 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_phi_S
private

Definition at line 70 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_ratio_m
private

Definition at line 72 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_ratio_map
private

Definition at line 75 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_ratio_p
private

Definition at line 71 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_rphi_L
private

Definition at line 76 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Etsum_rphi_S
private

Definition at line 77 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

std::map<int,MonitorElement* > HcalBeamMonitor::HB_CenterOfEnergyRadius
private

Definition at line 49 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

MonitorElement* HcalBeamMonitor::HBCenterOfEnergy
private

Definition at line 59 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HBCenterOfEnergyRadius
private

Definition at line 58 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

edm::InputTag HcalBeamMonitor::hbheRechitLabel_
private

Definition at line 135 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

std::map<int,MonitorElement* > HcalBeamMonitor::HE_CenterOfEnergyRadius
private

Definition at line 50 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

MonitorElement* HcalBeamMonitor::HECenterOfEnergy
private

Definition at line 61 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HECenterOfEnergyRadius
private

Definition at line 60 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

std::map<int,MonitorElement* > HcalBeamMonitor::HF_CenterOfEnergyRadius
private

Definition at line 51 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

MonitorElement* HcalBeamMonitor::HFCenterOfEnergy
private

Definition at line 65 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFCenterOfEnergyRadius
private

Definition at line 64 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_diag_deadcells
private

Definition at line 108 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_diag_hotcells
private

Definition at line 107 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Et_per_channel_vs_lumiblock
private

Definition at line 102 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_ETsum_perwedge
private

Definition at line 89 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_ETsum_vs_BX
private

Definition at line 101 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_occ_LS
private
MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_above_thr_r1
private

Definition at line 90 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_above_thr_r2
private

Definition at line 93 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_below_thr_r1
private

Definition at line 92 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_below_thr_r2
private

Definition at line 95 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_between_thrs_r1
private

Definition at line 91 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_between_thrs_r2
private

Definition at line 94 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_per_channel_vs_BX_RING1
private

Definition at line 99 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_per_channel_vs_BX_RING2
private

Definition at line 100 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_per_channel_vs_lumiblock_RING1
private

Definition at line 97 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Occupancy_per_channel_vs_lumiblock_RING2
private

Definition at line 98 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Ring1Status_vs_LS
private

Definition at line 110 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_Ring2Status_vs_LS
private

Definition at line 111 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_total_deadcells
private

Definition at line 106 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HFlumi_total_hotcells
private

Definition at line 105 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), reset(), and setup().

edm::InputTag HcalBeamMonitor::hfRechitLabel_
private

Definition at line 135 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

std::map<int,MonitorElement* > HcalBeamMonitor::HO_CenterOfEnergyRadius
private

Definition at line 52 of file HcalBeamMonitor.h.

Referenced by processEvent(), and setup().

MonitorElement* HcalBeamMonitor::HOCenterOfEnergy
private

Definition at line 63 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::HOCenterOfEnergyRadius
private

Definition at line 62 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

edm::InputTag HcalBeamMonitor::hoRechitLabel_
private

Definition at line 135 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

double HcalBeamMonitor::hotrate_
private

Definition at line 45 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), and HcalBeamMonitor().

unsigned int HcalBeamMonitor::lastProcessedLS_
private

Definition at line 128 of file HcalBeamMonitor.h.

Referenced by beginLuminosityBlock(), bookHistograms(), and endLuminosityBlock().

std::string HcalBeamMonitor::lumiqualitydir_
private

Definition at line 47 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), endLuminosityBlock(), and HcalBeamMonitor().

int HcalBeamMonitor::minBadCells_
private

Definition at line 133 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), and HcalBeamMonitor().

int HcalBeamMonitor::minEvents_
private

Definition at line 46 of file HcalBeamMonitor.h.

Referenced by endLuminosityBlock(), and HcalBeamMonitor().

MonitorElement* HcalBeamMonitor::Occ_eta_L
private

Definition at line 82 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_eta_S
private

Definition at line 83 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_map_L
private

Definition at line 86 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_map_S
private

Definition at line 87 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_phi_L
private

Definition at line 84 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_phi_S
private

Definition at line 85 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_rphi_L
private

Definition at line 80 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

MonitorElement* HcalBeamMonitor::Occ_rphi_S
private

Definition at line 81 of file HcalBeamMonitor.h.

Referenced by processEvent(), reset(), and setup().

double HcalBeamMonitor::occThresh_
private

Definition at line 44 of file HcalBeamMonitor.h.

Referenced by HcalBeamMonitor(), and processEvent().

std::ostringstream HcalBeamMonitor::outfile_
private

Definition at line 127 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), and endLuminosityBlock().

bool HcalBeamMonitor::Overwrite_
private

Definition at line 130 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), and HcalBeamMonitor().

const float HcalBeamMonitor::radius ={1300,1162,975,818,686,576,483,406,340,286,240,201,169}
staticprivate

Definition at line 125 of file HcalBeamMonitor.h.

Referenced by processEvent().

int HcalBeamMonitor::ring1totalchannels_
private

Definition at line 114 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), endLuminosityBlock(), and processEvent().

int HcalBeamMonitor::ring2totalchannels_
private

Definition at line 115 of file HcalBeamMonitor.h.

Referenced by bookHistograms(), endLuminosityBlock(), and processEvent().

int HcalBeamMonitor::runNumber_
private

Definition at line 129 of file HcalBeamMonitor.h.

Referenced by bookHistograms().

bool HcalBeamMonitor::setupDone_
private

Definition at line 131 of file HcalBeamMonitor.h.

Referenced by HcalBeamMonitor(), and setup().

edm::EDGetTokenT<HBHERecHitCollection> HcalBeamMonitor::tok_hbhe_
private

Definition at line 138 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

edm::EDGetTokenT<HFRecHitCollection> HcalBeamMonitor::tok_hf_
private

Definition at line 139 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

edm::EDGetTokenT<HFDigiCollection> HcalBeamMonitor::tok_hfdigi_
private

Definition at line 137 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().

edm::EDGetTokenT<HORecHitCollection> HcalBeamMonitor::tok_ho_
private

Definition at line 140 of file HcalBeamMonitor.h.

Referenced by analyze(), and HcalBeamMonitor().