CMS 3D CMS Logo

QIE11Task.cc
Go to the documentation of this file.
3 
4 using namespace hcaldqm;
5 using namespace hcaldqm::constants;
7  : DQTask(ps), hcalDbServiceToken_(esConsumes<HcalDbService, HcalDbRecord, edm::Transition::BeginRun>()) {
8  // tags
9  _tagQIE11 = ps.getUntrackedParameter<edm::InputTag>("tagQIE11", edm::InputTag("hcalDigis"));
10  _tokQIE11 = consumes<QIE11DigiCollection>(_tagQIE11);
11 
12  _taguMN = ps.getUntrackedParameter<edm::InputTag>("taguMN", edm::InputTag("hcalDigis"));
13  _tokuMN = consumes<HcalUMNioDigi>(_taguMN);
14 
15  // cuts
16  _cut = ps.getUntrackedParameter<double>("cut", 50.0);
17  _ped = ps.getUntrackedParameter<int>("ped", 4);
18  _laserType = ps.getUntrackedParameter<int32_t>("laserType", -1);
19  _eventType = ps.getUntrackedParameter<int32_t>("eventType", -1);
20 }
21 //statis
24 
25  //from class inheritance
27 
28  desc.addUntracked<std::string>("name", "QIE11Task");
29  desc.addUntracked<int>("debug", 0);
30  desc.addUntracked<int>("runkeyVal", 0);
31  desc.addUntracked<std::string>("runkeyName", "pp_run");
32  desc.addUntracked<edm::InputTag>("tagQIE11", edm::InputTag("hcalDigis"));
33  desc.addUntracked<double>("cut", 20);
34  desc.addUntracked<int>("ped", 4);
35  desc.addUntracked<int>("laserType", -1);
36  desc.addUntracked<int>("eventType", -1);
37 
38  _desc.addDefault(desc);
39 }
40 
41 /* virtual */ void QIE11Task::bookHistograms(DQMStore::IBooker& ib, edm::Run const& r, edm::EventSetup const& es) {
42  if (_ptype == fLocal)
43  if (r.runAuxiliary().run() == 1)
44  return;
45 
47 
48  // GET WHAT YOU NEED
50  _emap = dbs->getHcalMapping();
51  std::vector<uint32_t> vhashC34;
52  vhashC34.push_back(HcalElectronicsId(34, 11, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
53  vhashC34.push_back(HcalElectronicsId(34, 12, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
55 
56  std::vector<std::pair<int, int> > timingChannels;
57  timingChannels.push_back(std::pair<int, int>(28, 63));
58  timingChannels.push_back(std::pair<int, int>(28, 65));
59  timingChannels.push_back(std::pair<int, int>(20, 63));
60  timingChannels.push_back(std::pair<int, int>(20, 65));
61  for (int iChan = 0; iChan < 4; ++iChan) {
62  std::vector<uint32_t> vhashTimingChannel;
63  for (int depth = 1; depth <= 7; ++depth) {
64  vhashTimingChannel.push_back(
65  HcalDetId(HcalEndcap, timingChannels[iChan].first, timingChannels[iChan].second, depth));
66  }
68  }
69 
70  // INITIALIZE what you need
71 
72  // EChannel plots, online+local only
73  if (_ptype != fOffline) {
74  unsigned int itr = 0;
75  for (unsigned int crate = 34; crate <= 34; ++crate) {
76  for (unsigned int slot = 11; slot <= 12; ++slot) {
77  std::vector<uint32_t> vhashSlot;
78  vhashSlot.push_back(HcalElectronicsId(crate, slot, FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
81  "ShapeCut",
86  "LETDCvsTS",
91  0);
93  "LETDCTime",
97  0);
98  for (unsigned int j = 0; j < 10; j++) {
100  _name,
101  "LETDCvsADC",
106  0);
108  "ADC",
112  0);
114  "LETDC",
118  0);
119  }
120  ++itr;
121  }
122  }
123  }
125  "ShapeCut",
129  "LETDCvsADC",
133  0);
135  "LETDCTimevsADC",
139  0);
141  "LETDC",
144  0);
146  "ADC",
149  0);
150 
151  if (_ptype != fOffline) {
152  unsigned int itr = 0;
153  std::map<std::pair<unsigned int, unsigned int>, unsigned int> itr_map;
154  for (unsigned int crate = 34; crate <= 34; ++crate) {
155  for (unsigned int slot = 11; slot <= 12; ++slot) {
156  char aux[100];
157  sprintf(aux, "/Crate%d_Slot%d", crate, slot);
161  for (unsigned int j = 0; j < 10; j++) {
162  char aux2[100];
163  sprintf(aux2, "/Crate%d_Slot%d/TS%d", crate, slot, j);
165  _cLETDC_EChannel[j][itr].book(ib, _emap, _filter_slot[itr], _subsystem, aux2);
166  _cADC_EChannel[j][itr].book(ib, _emap, _filter_slot[itr], _subsystem, aux2);
167  }
168  itr_map[std::make_pair(crate, slot)] = itr;
169  ++itr;
170  }
171  }
172  }
178 
180 }
181 
183  // finish
184  DQTask::globalEndLuminosityBlock(lb, es);
185 }
186 
187 /* virtual */ void QIE11Task::_process(edm::Event const& e, edm::EventSetup const&) {
189  if (!e.getByToken(_tokQIE11, cqie11))
190  return;
191 
192  for (uint32_t i = 0; i < cqie11->size(); i++) {
193  QIE11DataFrame frame = static_cast<QIE11DataFrame>((*cqie11)[i]);
194  DetId did = frame.detid();
195  if (HcalDetId(frame.detid()).subdet() != HcalEndcap) {
196  continue;
197  }
198 
200  if (!eid.rawId()) {
201  continue;
202  }
203  int fakecrate = -1;
204  if (eid.crateId() == 34)
205  fakecrate = 0;
206  int index = fakecrate * 12 + (eid.slot() - 10) - 1;
207 
208  // compute the signal, ped subracted
209  CaloSamples digi_fC = hcaldqm::utilities::loadADC2fCDB<QIE11DataFrame>(_dbService, did, frame);
210  // double q = hcaldqm::utilities::aveTS_v10<QIE11DataFrame>(frame,
211  // constants::adc2fC[_ped], 0, frame.samples()-1);
212 
213  // iterate thru all TS and fill
214  for (int j = 0; j < frame.samples(); j++) {
215  double q_pedsub = hcaldqm::utilities::adc2fCDBMinusPedestal<QIE11DataFrame>(_dbService, digi_fC, did, frame, j);
216  if (_ptype != fOffline) {
217  if (index == 0 || index == 1) {
218  // shapes are after the cut
219  _cShapeCut_EChannel[index].fill(eid, j, q_pedsub);
221 
222  // w/o a cut
224  _cLETDC_EChannel[j][index].fill(eid, frame[j].tdc());
225  if (frame[j].tdc() < 50) {
226  // Each TDC count is 0.5 ns.
227  // tdc == 62 or 63 means value was below or above threshold for whole time slice.
228  _cLETDCTime_EChannel[index].fill(eid, j * 25. + (frame[j].tdc() / 2.));
229  }
231  }
232  }
233  _cShapeCut.fill(eid, j, q_pedsub);
234 
235  _cLETDCvsADC.fill(frame[j].adc(), frame[j].tdc());
236  if (frame[j].tdc() < 50) {
237  _cLETDCTimevsADC.fill(frame[j].adc(), j * 25. + (frame[j].tdc() / 2.));
238  }
239  _cLETDC.fill(eid, frame[j].tdc());
240 
241  _cADC.fill(eid, frame[j].adc());
242  }
243  }
244 }
245 
246 /* virtual */ bool QIE11Task::_isApplicable(edm::Event const& e) {
247  if (_ptype != fOnline || (_laserType < 0 && _eventType < 0))
248  return true;
249  else {
250  // fOnline mode
252  if (!e.getByToken(_tokuMN, cumn))
253  return false;
254 
255  // event type check first
256  int eventType = cumn->eventType();
257  if (eventType == _eventType)
258  return true;
259 
260  // check if this analysis task is of the right laser type
261  int laserType = cumn->valueUserWord(0);
262  if (laserType == _laserType)
263  return true;
264  }
265 
266  return false;
267 }
268 
270 
QIE11Task::_filter_slot
hcaldqm::filter::HashFilter _filter_slot[2]
Definition: QIE11Task.h:52
QIE11Task::_cLETDC
hcaldqm::ContainerSingle1D _cLETDC
Definition: QIE11Task.h:71
QIE11Task::_resetMonitors
void _resetMonitors(hcaldqm::UpdateFreq) override
Definition: QIE11Task.cc:269
mps_fire.i
i
Definition: mps_fire.py:428
QIE11Task::_filter_timingChannels
hcaldqm::filter::HashFilter _filter_timingChannels[4]
Definition: QIE11Task.h:53
hcaldqm::constants
Definition: Constants.h:9
QIE11Task
Definition: QIE11Task.py:1
hcaldqm::Container2D::initialize
virtual void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:25
hcaldqm::UpdateFreq
UpdateFreq
Definition: DQTask.h:32
QIE11Task::_ehashmap
hcaldqm::electronicsmap::ElectronicsMap _ehashmap
Definition: QIE11Task.h:56
hcaldqm::electronicsmap::ElectronicsMap::lookup
uint32_t lookup(DetId const &)
Definition: ElectronicsMap.cc:122
bookHistograms
example_stream void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
HcalUMNioDigi::eventType
uint8_t eventType() const
Definition: HcalUMNioDigi.cc:35
hcaldqm::hashfunctions::fEChannel
Definition: HashFunctions.h:155
QIE11Task::_cut
double _cut
Definition: QIE11Task.h:45
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
hcaldqm::quantity::ValueQuantity
Definition: ValueQuantity.h:319
edm
HLT enums.
Definition: AlignableModifier.h:19
gpuClustering::adc
uint16_t *__restrict__ uint16_t const *__restrict__ adc
Definition: gpuClusterChargeCut.h:20
hcaldqm
Definition: Constants.h:8
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
hcaldqm::electronicsmap::ElectronicsMap::initialize
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
Definition: ElectronicsMap.cc:6
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
QIE11Task::hcalDbServiceToken_
edm::ESGetToken< HcalDbService, HcalDbRecord > hcalDbServiceToken_
Definition: QIE11Task.h:42
QIE11Task::_cLETDCvsTS_EChannel
hcaldqm::Container2D _cLETDCvsTS_EChannel[2]
Definition: QIE11Task.h:61
hcaldqm::filter::fPreserver
Definition: HashFilter.h:19
hcaldqm::fLocal
Definition: DQModule.h:26
hcaldqm::ContainerSingleProf1D::initialize
void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *qy=new quantity::ValueQuantity(quantity::fN), int debug=0) override
Definition: ContainerSingleProf1D.cc:17
hcaldqm::constants::FIBER_uTCA_MIN1
const int FIBER_uTCA_MIN1
Definition: Constants.h:128
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
QIE11Task::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &)
Definition: QIE11Task.cc:22
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
hcaldqm::DQModule::_ptype
ProcessingType _ptype
Definition: DQModule.h:44
QIE11Task::_laserType
int _laserType
Definition: QIE11Task.h:47
edm::Handle
Definition: AssociativeIterator.h:50
HcalDbService::getHcalMapping
const HcalElectronicsMap * getHcalMapping() const
Definition: HcalDbService.cc:343
QIE11Task::_cShapeCut
hcaldqm::ContainerSingleProf1D _cShapeCut
Definition: QIE11Task.h:68
QIE11Task::_taguMN
edm::InputTag _taguMN
Definition: QIE11Task.h:40
hcaldqm::hashfunctions::fCrateSlot
Definition: HashFunctions.h:150
hcaldqm::ContainerSingle2D::fill
virtual void fill(int, int)
Definition: ContainerSingle2D.cc:105
DetId
Definition: DetId.h:17
QIE11Task::_cADC
hcaldqm::ContainerSingle1D _cADC
Definition: QIE11Task.h:72
QIE11Task::QIE11Task
QIE11Task(edm::ParameterSet const &)
Definition: QIE11Task.cc:6
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
hcaldqm::quantity::fQIE10TDC_64
Definition: ValueQuantity.h:35
hcaldqm::filter::HashFilter::initialize
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
QIE11Task::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: QIE11Task.cc:41
Run.h
edm::ESHandle< HcalDbService >
HcalElectronicsId
Readout chain identification for Hcal.
Definition: HcalElectronicsId.h:32
hcaldqm::DQModule::_name
std::string _name
Definition: DQModule.h:42
HcalUMNioDigi::valueUserWord
uint32_t valueUserWord(int iword) const
Definition: HcalUMNioDigi.cc:62
hcaldqm::constants::FIBERCH_MIN
const int FIBERCH_MIN
Definition: Constants.h:134
QIE11Task::_isApplicable
bool _isApplicable(edm::Event const &) override
Definition: QIE11Task.cc:246
QIE11Task::_tagQIE11
edm::InputTag _tagQIE11
Definition: QIE11Task.h:37
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
hcaldqm::quantity::fN
Definition: ValueQuantity.h:11
QIE11Task::_tokuMN
edm::EDGetTokenT< HcalUMNioDigi > _tokuMN
Definition: QIE11Task.h:41
QIE11Task::_cLETDCTime_EChannel
hcaldqm::Container1D _cLETDCTime_EChannel[2]
Definition: QIE11Task.h:63
hcaldqm::quantity::fQIE10fC_400000
Definition: ValueQuantity.h:50
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
hcaldqm::Container2D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:567
QIE11Task::_cLETDCTimevsADC
hcaldqm::ContainerSingle2D _cLETDCTimevsADC
Definition: QIE11Task.h:70
hcaldqm::Container2D::fill
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
QIE11Task::_ped
int _ped
Definition: QIE11Task.h:46
hcaldqm::hashfunctions::fDChannel
Definition: HashFunctions.h:143
hcaldqm::Container1D::fill
virtual void fill(uint32_t)
Definition: Container1D.cc:73
QIE11Task.eventType
eventType
Definition: QIE11Task.py:25
QIE11Task::_filter_C34
hcaldqm::filter::HashFilter _filter_C34
Definition: QIE11Task.h:51
QIE11Task::_eventType
int _eventType
Definition: QIE11Task.h:48
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
HcalDetId
Definition: HcalDetId.h:12
hcaldqm::quantity::fQIE10ADC_256
Definition: ValueQuantity.h:34
runTauDisplay.eid
eid
Definition: runTauDisplay.py:298
hcaldqm::DQTask::_dbService
edm::ESHandle< HcalDbService > _dbService
Definition: DQTask.h:80
hcaldqm::ContainerSingle1D::fill
virtual void fill(int)
Definition: ContainerSingle1D.cc:80
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
cuy.ib
ib
Definition: cuy.py:661
hcaldqm::ContainerSingle1D::book
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerSingle1D.cc:57
edm::EventSetup
Definition: EventSetup.h:58
CaloSamples
Definition: CaloSamples.h:14
hcaldqm::DQTask::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &des)
Definition: DQTask.cc:26
QIE11Task::_cShapeCut_EChannel
hcaldqm::ContainerProf1D _cShapeCut_EChannel[2]
Definition: QIE11Task.h:59
QIE11Task::globalEndLuminosityBlock
void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: QIE11Task.cc:182
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
QIE11Task::_cADC_EChannel
hcaldqm::Container1D _cADC_EChannel[10][2]
Definition: QIE11Task.h:64
hcaldqm::DQModule::_subsystem
std::string _subsystem
Definition: DQModule.h:49
alignCSCRings.r
r
Definition: alignCSCRings.py:93
QIE11Task.laserType
laserType
Definition: QIE11Task.py:24
HcalDbService
Definition: HcalDbService.h:23
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
hcaldqm::ContainerProf1D::initialize
void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, int debug=0) override
Definition: ContainerProf1D.cc:22
QIE11Task::_process
void _process(edm::Event const &, edm::EventSetup const &) override
Definition: QIE11Task.cc:187
hcaldqm::electronicsmap::fD2EHashMap
Definition: ElectronicsMap.h:25
HcalEndcap
Definition: HcalAssistant.h:34
amptDefault_cfi.frame
frame
Definition: amptDefault_cfi.py:12
QIE11DataFrame
Definition: QIE11DataFrame.h:11
hcaldqm::DQTask::_emap
const HcalElectronicsMap * _emap
Definition: DQTask.h:81
hcaldqm::ContainerSingle2D::book
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerSingle2D.cc:68
QIE11Task.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
hcaldqm::ContainerSingle1D::initialize
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *qy=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: ContainerSingle1D.cc:37
hcaldqm::DQTask
Definition: DQTask.h:33
HcalDbRecord
Definition: HcalDbRecord.h:30
hcaldqm::ContainerSingle2D::initialize
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: ContainerSingle2D.cc:46
hcaldqm::Container1D::initialize
virtual void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *qy=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: Container1D.cc:33
QIE11Task::_tokQIE11
edm::EDGetTokenT< QIE11DigiCollection > _tokQIE11
Definition: QIE11Task.h:38
hcaldqm::ContainerProf1D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: ContainerProf1D.cc:40
hcaldqm::fOnline
Definition: DQModule.h:26
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Event
Definition: Event.h:73
hcaldqm::quantity::fTiming_TS
Definition: ValueQuantity.h:21
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
edm::InputTag
Definition: InputTag.h:15
QIE11Task::_cLETDCvsADC
hcaldqm::ContainerSingle2D _cLETDCvsADC
Definition: QIE11Task.h:69
QIE11Task::_cLETDCvsADC_EChannel
hcaldqm::Container2D _cLETDCvsADC_EChannel[10][2]
Definition: QIE11Task.h:60
hcaldqm::Container1D::book
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:592
hcaldqm::quantity::fTime_ns_250
Definition: ValueQuantity.h:55
edm::DataFrameContainer::size
size_type size() const
Definition: DataFrameContainer.h:162
hcaldqm::ContainerSingleProf1D::book
void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="") override
Definition: ContainerSingleProf1D.cc:33
hcaldqm::fOffline
Definition: DQModule.h:26
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
QIE11Task::_cLETDC_EChannel
hcaldqm::Container1D _cLETDC_EChannel[10][2]
Definition: QIE11Task.h:62