CMS 3D CMS Logo

UMNioTask.cc
Go to the documentation of this file.
1 
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
7  _tagHBHE = ps.getUntrackedParameter<edm::InputTag>("tagHBHE", edm::InputTag("hcalDigis"));
8  _tagHO = ps.getUntrackedParameter<edm::InputTag>("tagHO", edm::InputTag("hcalDigis"));
9  _tagHF = ps.getUntrackedParameter<edm::InputTag>("tagHF", edm::InputTag("hcalDigis"));
10  _taguMN = ps.getUntrackedParameter<edm::InputTag>("taguMN", edm::InputTag("hcalDigis"));
11 
12  _tokHBHE = consumes<HBHEDigiCollection>(_tagHBHE);
13  _tokHO = consumes<HODigiCollection>(_tagHO);
14  _tokHF = consumes<HFDigiCollection>(_tagHF);
15  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
16 
17  _lowHBHE = ps.getUntrackedParameter<double>("lowHBHE", 20);
18  _lowHO = ps.getUntrackedParameter<double>("lowHO", 20);
19  _lowHF = ps.getUntrackedParameter<double>("lowHF", 20);
20 
21  // push all the event types to monitor - whole range basically
22  // This corresponds to all enum values in hcaldqm::constants::OrbitGapType
23  for (uint32_t type = constants::tNull; type < constants::nOrbitGapType; type++) {
24  _eventtypes.push_back(type);
25  }
26 }
27 
28 /* virtual */ void UMNioTask::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
29  if (_ptype == fLocal)
30  if (r.runAuxiliary().run() == 1)
31  return;
32 
33  DQTask::bookHistograms(ib, r, es);
34 
36  es.get<HcalDbRecord>().get(dbService);
37  _emap = dbService->getHcalMapping();
38 
40  "EventType",
44  0);
46  "TotalCharge",
50  0);
52  "TotalChargeProfile",
56  0);
60 }
61 
63  constants::OrbitGapType orbitGapType;
64  if (eventType == constants::EVENTTYPE_PEDESTAL) {
65  orbitGapType = tPedestal;
66  } else if (eventType == constants::EVENTTYPE_LED) {
67  orbitGapType = tLED;
68  } else if (eventType == constants::EVENTTYPE_LASER) {
69  switch (laserType) {
70  //case tNull : return "Null";
71  //case tHFRaddam : return "HFRaddam";
72  case 3:
73  return tHBHEHPD;
74  case 4:
75  return tHO;
76  case 5:
77  return tHF;
78  //case tZDC : return "ZDC";
79  case 7:
80  return tHEPMega;
81  case 8:
82  return tHEMMega;
83  case 9:
84  return tHBPMega;
85  case 10:
86  return tHBMMega;
87  //case tCRF : return "CRF";
88  //case tCalib : return "Calib";
89  //case tSafe : return "Safe";
90  default:
91  return tUnknown;
92  }
93  }
94  return (int)(std::find(_eventtypes.begin(), _eventtypes.end(), orbitGapType) - _eventtypes.begin());
95 }
96 
97 /* virtual */ void UMNioTask::_process(edm::Event const& e, edm::EventSetup const& es) {
99  if (!e.getByToken(_tokuMN, cumn))
100  return;
101 
102  uint8_t eventType = cumn->eventType();
103  uint32_t laserType = cumn->valueUserWord(0);
104  _cEventType.fill(_currentLS, getOrbitGapIndex(eventType, laserType));
105 
106  // Compute the Total Charge in the Detector...
110 
111  if (!e.getByToken(_tokHBHE, chbhe))
112  _logger.dqmthrow("Collection HBHEDigiCollection isn't available " + _tagHBHE.label() + " " + _tagHBHE.instance());
113  if (!e.getByToken(_tokHO, cho))
114  _logger.dqmthrow("Collection HODigiCollection isn't available " + _tagHO.label() + " " + _tagHO.instance());
115  if (!e.getByToken(_tokHF, chf))
116  _logger.dqmthrow("Collection HFDigiCollection isn't available " + _tagHF.label() + " " + _tagHF.instance());
117 
118  for (HBHEDigiCollection::const_iterator it = chbhe->begin(); it != chbhe->end(); ++it) {
119  double sumQ = hcaldqm::utilities::sumQ<HBHEDataFrame>(*it, 2.5, 0, it->size() - 1);
120  _cTotalCharge.fill(it->id(), _currentLS, sumQ);
122  }
123  for (HODigiCollection::const_iterator it = cho->begin(); it != cho->end(); ++it) {
124  double sumQ = hcaldqm::utilities::sumQ<HODataFrame>(*it, 8.5, 0, it->size() - 1);
125  _cTotalCharge.fill(it->id(), _currentLS, sumQ);
127  }
128  for (HFDigiCollection::const_iterator it = chf->begin(); it != chf->end(); ++it) {
129  double sumQ = hcaldqm::utilities::sumQ<HFDataFrame>(*it, 2.5, 0, it->size() - 1);
130  _cTotalCharge.fill(it->id(), _currentLS, sumQ);
132  }
133 }
135  DQTask::dqmEndLuminosityBlock(lb, es);
136 }
137 
edm::InputTag _tagHBHE
Definition: UMNioTask.h:48
edm::EDGetTokenT< HFDigiCollection > _tokHF
Definition: UMNioTask.h:53
void dqmEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: UMNioTask.cc:134
type
Definition: HCALResponse.h:21
T getUntrackedParameter(std::string const &, T const &) const
std::vector< uint32_t > _eventtypes
Definition: UMNioTask.h:44
edm::EDGetTokenT< HODigiCollection > _tokHO
Definition: UMNioTask.h:52
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: UMNioTask.h:54
std::vector< T >::const_iterator const_iterator
edm::InputTag _tagHF
Definition: UMNioTask.h:50
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
hcaldqm::ContainerSingleProf2D _cTotalChargeProfile
Definition: UMNioTask.h:67
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
double _lowHO
Definition: UMNioTask.h:57
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
UMNioTask(edm::ParameterSet const &)
Definition: UMNioTask.cc:6
ProcessingType _ptype
Definition: DQModule.h:43
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
uint8_t const EVENTTYPE_LED
Definition: Constants.h:281
void dqmthrow(std::string const &msg) const
Definition: Logger.h:12
uint32_t valueUserWord(int iword) const
uint8_t eventType() const
edm::InputTag _taguMN
Definition: UMNioTask.h:47
Logger _logger
Definition: DQModule.h:54
RunAuxiliary const & runAuxiliary() const override
Definition: Run.h:61
int getOrbitGapIndex(uint8_t eventType, uint32_t laserType)
Definition: UMNioTask.cc:62
std::string _name
Definition: DQModule.h:41
HcalElectronicsMap const * _emap
Definition: DQTask.h:59
edm::InputTag _tagHO
Definition: UMNioTask.h:49
void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0) override
const_iterator end() const
uint8_t const EVENTTYPE_LASER
Definition: Constants.h:280
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: UMNioTask.cc:28
example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
double _lowHBHE
Definition: UMNioTask.h:57
std::string const & label() const
Definition: InputTag.h:36
uint8_t const EVENTTYPE_PEDESTAL
Definition: Constants.h:279
edm::EDGetTokenT< HBHEDigiCollection > _tokHBHE
Definition: UMNioTask.h:51
T get() const
Definition: EventSetup.h:73
const HcalElectronicsMap * getHcalMapping() const
std::string _subsystem
Definition: DQModule.h:48
hcaldqm::ContainerSingle2D _cTotalCharge
Definition: UMNioTask.h:66
double _lowHF
Definition: UMNioTask.h:57
virtual void fill(int, int)
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: UMNioTask.cc:97
void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="") override
hcaldqm::ContainerSingle2D _cEventType
Definition: UMNioTask.h:65
std::string const & instance() const
Definition: InputTag.h:37
RunNumber_t run() const
Definition: RunAuxiliary.h:31
const_iterator begin() const
Definition: Run.h:45
ib
Definition: cuy.py:662
double sumQ(DIGI const &digi, double ped, int i=0, int j=3)
Definition: Utilities.h:126