CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
ZDCTask Class Reference

#include <ZDCTask.h>

Inheritance diagram for ZDCTask:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 ZDCTask (edm::ParameterSet const &)
 
 ~ZDCTask () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Protected Member Functions

void analyze (edm::Event const &, edm::EventSetup const &) override
 

Protected Attributes

MonitorElement_cADC
 
std::map< std::string, MonitorElement * > _cADC_EChannel
 
MonitorElement_cADC_vs_TS
 
std::map< std::string, MonitorElement * > _cADC_vs_TS_EChannel
 
MonitorElement_cShape
 
std::map< std::string, MonitorElement * > _cShape_EChannel
 
double _cut
 
int _ped
 
edm::InputTag _tagQIE10
 
edm::EDGetTokenT< ZDCDigiCollection_tokQIE10
 

Detailed Description

Definition at line 22 of file ZDCTask.h.

Constructor & Destructor Documentation

ZDCTask::ZDCTask ( edm::ParameterSet const &  ps)

Definition at line 7 of file ZDCTask.cc.

References edm::ParameterSet::getUntrackedParameter().

7  {
8  // tags
9  _tagQIE10 = ps.getUntrackedParameter<edm::InputTag>("tagQIE10", edm::InputTag("hcalDigis"));
10  _tokQIE10 = consumes<ZDCDigiCollection>(_tagQIE10);
11 
12  // cuts
13  _cut = ps.getUntrackedParameter<double>("cut", 50.0);
14  _ped = ps.getUntrackedParameter<int>("ped", 4);
15 }
double _cut
Definition: ZDCTask.h:37
edm::EDGetTokenT< ZDCDigiCollection > _tokQIE10
Definition: ZDCTask.h:34
edm::InputTag _tagQIE10
Definition: ZDCTask.h:33
int _ped
Definition: ZDCTask.h:38
ZDCTask::~ZDCTask ( )
inlineoverride

Definition at line 25 of file ZDCTask.h.

References analyze(), and bookHistograms().

25 {}

Member Function Documentation

void ZDCTask::analyze ( edm::Event const &  e,
edm::EventSetup const &   
)
overrideprotected

Definition at line 181 of file ZDCTask.cc.

References ecalMGPA::adc(), HcalElectronicsId::dccid(), DEFINE_FWK_MODULE, runTauDisplay::eid, ZDCDataFrame::elecId(), HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), edm::Event::getByToken(), mps_fire::i, ZDCDataFrame::size(), edm::SortedCollection< T, SORT >::size(), and HcalElectronicsId::spigot().

Referenced by ~ZDCTask().

181  {
183  if (!e.getByToken(_tokQIE10, cqie10))
184  edm::LogError("Collection ZDCDigiCollection isn't available" + _tagQIE10.label() + " " + _tagQIE10.instance());
185 
186  for (uint32_t i = 0; i < cqie10->size(); i++) {
187  ZDCDataFrame frame = static_cast<ZDCDataFrame>((*cqie10)[i]);
188  HcalElectronicsId eid = frame.elecId();
189 
190  char histoname[300];
191  sprintf(histoname, "%d_%d_%d_%d", eid.fiberChanId(), eid.fiberIndex(), eid.spigot(), eid.dccid());
192 
193  // compute the signal, ped subracted
194  //double q = hcaldqm::utilities::sumQ_v10<ZDCDataFrame>(frame, constants::adc2fC[_ped], 0, frame.size()-1);
195 
196  // iterate thru all TS and fill
197  for (int j = 0; j < frame.size(); j++) {
198  _cShape_EChannel[histoname]->Fill(j, frame[j].nominal_fC());
199  _cShape->Fill(j, frame[j].nominal_fC());
200 
201  _cADC_EChannel[histoname]->Fill(frame[j].adc());
202  _cADC->Fill(frame[j].adc());
203 
204  _cADC_vs_TS_EChannel[histoname]->Fill(j, frame[j].adc());
205  _cADC_vs_TS->Fill(j, frame[j].adc());
206  }
207  }
208 }
std::map< std::string, MonitorElement * > _cADC_EChannel
Definition: ZDCTask.h:42
edm::EDGetTokenT< ZDCDigiCollection > _tokQIE10
Definition: ZDCTask.h:34
edm::InputTag _tagQIE10
Definition: ZDCTask.h:33
constexpr int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
MonitorElement * _cShape
Definition: ZDCTask.h:46
std::map< std::string, MonitorElement * > _cShape_EChannel
Definition: ZDCTask.h:41
void Fill(long long x)
constexpr int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
MonitorElement * _cADC_vs_TS
Definition: ZDCTask.h:48
constexpr int fiberIndex() const
get the fiber index. For VME 1-8 (which of eight fibers carried by a spigot), for uTCA fibers are zer...
int size() const
total number of samples in the digi
Definition: ZDCDataFrame.h:26
MonitorElement * _cADC
Definition: ZDCTask.h:47
std::string const & label() const
Definition: InputTag.h:36
size_type size() const
const HcalElectronicsId & elecId() const
Definition: ZDCDataFrame.h:23
constexpr int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
Readout chain identification for Hcal.
std::string const & instance() const
Definition: InputTag.h:37
std::map< std::string, MonitorElement * > _cADC_vs_TS_EChannel
Definition: ZDCTask.h:43
void ZDCTask::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  r,
edm::EventSetup const &  es 
)
override

Definition at line 17 of file ZDCTask.cc.

References hcaldqm::constants::BIT_OFFSET, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), DQMStore::IBooker::cd(), runTauDisplay::eid, hcaldqm::quantity::fADC_128, hcaldqm::quantity::ffC_10000, hcaldqm::quantity::fTiming_TS, hcaldqm::quantity::fYAxis, MonitorElement::getRootObject(), hcaldqm::quantity::ValueQuantity::max(), hcaldqm::quantity::ValueQuantity::min(), hcaldqm::quantity::ValueQuantity::nbins(), MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), and HcalElectronicsId::setHTR().

Referenced by ~ZDCTask().

17  {
18  //############################## hardcode manually the zdc mapping #############################
19  //############################# this follows from https://github.com/cms-sw/cmssw/blob/CMSSW_8_0_X/EventFilter/CastorRawToDigi/src/ZdcUnpacker.cc#L118
20  //##############################################################################################
22  //PZDC
23  std::map<HcalElectronicsId, DetId> myEMap;
25  eid.setHTR(18, 8, 1);
26  myEMap[eid] = DetId(0x54000051); //PZDC EM1
27 
28  eid = HcalElectronicsId(1, 1, 0, 3);
29  eid.setHTR(18, 8, 1);
30  myEMap[eid] = DetId(0x54000052); //PZDC EM2
31 
32  eid = HcalElectronicsId(2, 1, 0, 3);
33  eid.setHTR(18, 8, 1);
34  myEMap[eid] = DetId(0x54000053); //PZDC EM3
35 
36  eid = HcalElectronicsId(0, 2, 0, 3);
37  eid.setHTR(18, 8, 1);
38  myEMap[eid] = DetId(0x54000061); //PZDC HAD1
39 
40  eid = HcalElectronicsId(1, 2, 0, 3);
41  eid.setHTR(18, 8, 1);
42  myEMap[eid] = DetId(0x54000054); //PZDC EM4
43 
44  eid = HcalElectronicsId(2, 2, 0, 3);
45  eid.setHTR(18, 8, 1);
46  myEMap[eid] = DetId(0x54000055); //PZDC EM5
47 
48  eid = HcalElectronicsId(0, 3, 0, 3);
49  eid.setHTR(18, 8, 1);
50  myEMap[eid] = DetId(0x54000062); //PZDC HAD2
51 
52  eid = HcalElectronicsId(1, 3, 0, 3);
53  eid.setHTR(18, 8, 1);
54  myEMap[eid] = DetId(0x54000063); //PZDC HAD3
55 
56  eid = HcalElectronicsId(2, 3, 0, 3);
57  eid.setHTR(18, 8, 1);
58  myEMap[eid] = DetId(0x54000064); //PZDC HAD4
59 
60  //NZDC
61  eid = HcalElectronicsId(0, 1, 1, 3);
62  eid.setHTR(18, 8, 0);
63  myEMap[eid] = DetId(0x54000011); //NZDC EM1
64 
65  eid = HcalElectronicsId(1, 1, 1, 3);
66  eid.setHTR(18, 8, 0);
67  myEMap[eid] = DetId(0x54000012); //NZDC EM2
68 
69  eid = HcalElectronicsId(2, 1, 1, 3);
70  eid.setHTR(18, 8, 0);
71  myEMap[eid] = DetId(0x54000013); //NZDC EM3
72 
73  eid = HcalElectronicsId(0, 2, 1, 3);
74  eid.setHTR(18, 8, 0);
75  myEMap[eid] = DetId(0x54000015); //NZDC EM5
76 
77  eid = HcalElectronicsId(1, 2, 1, 3);
78  eid.setHTR(18, 8, 0);
79  myEMap[eid] = DetId(0x54000021); //NZDC HAD1
80 
81  eid = HcalElectronicsId(2, 2, 1, 3);
82  eid.setHTR(18, 8, 0);
83  myEMap[eid] = DetId(0x54000014); //NZDC EM4
84 
85  eid = HcalElectronicsId(0, 3, 1, 3);
86  eid.setHTR(18, 8, 0);
87  myEMap[eid] = DetId(0x54000022); //NZDC HAD2
88 
89  eid = HcalElectronicsId(1, 3, 1, 3);
90  eid.setHTR(18, 8, 0);
91  myEMap[eid] = DetId(0x54000023); //NZDC HAD3
92 
93  eid = HcalElectronicsId(2, 3, 1, 3);
94  eid.setHTR(18, 8, 0);
95  myEMap[eid] = DetId(0x54000024); //NZDC HAD4
96  //##################################### end hardcoding ###################################
97 
98  ib.cd();
99 
100  //quantities for axis
103 
105 
106  //book histos per channel
107  for (std::map<HcalElectronicsId, DetId>::const_iterator itr = myEMap.begin(); itr != myEMap.end(); ++itr) {
108  char histoname[300];
109 
110  sprintf(histoname,
111  "%d_%d_%d_%d",
112  itr->first.fiberChanId(),
113  itr->first.fiberIndex(),
114  itr->first.spigot(),
115  itr->first.dccid());
116 
117  ib.setCurrentFolder("Hcal/ZDCTask/Shape_perChannel");
118  _cShape_EChannel[histoname] = ib.bookProfile(histoname,
119  histoname,
120  xAxisShape.nbins(),
121  xAxisShape.min(),
122  xAxisShape.max(),
123  yAxisShape.nbins(),
124  yAxisShape.min(),
125  yAxisShape.max());
126  _cShape_EChannel[histoname]->setAxisTitle("Timing", 1);
127  _cShape_EChannel[histoname]->setAxisTitle("fC QIE8", 2);
128 
129  ib.setCurrentFolder("Hcal/ZDCTask/ADC_perChannel");
130  _cADC_EChannel[histoname] = ib.book1D(histoname, histoname, xAxisADC.nbins(), xAxisADC.min(), xAxisADC.max());
131  _cADC_EChannel[histoname]->getRootObject()->SetBit(
133  _cADC_EChannel[histoname]->setAxisTitle("ADC QIE8", 1);
134 
135  ib.setCurrentFolder("Hcal/ZDCTask/ADC_vs_TS_perChannel");
136  _cADC_vs_TS_EChannel[histoname] = ib.book2D(histoname,
137  histoname,
138  xAxisShape.nbins(),
139  xAxisShape.min(),
140  xAxisShape.max(),
141  xAxisADC.nbins(),
142  xAxisADC.min(),
143  xAxisADC.max());
144  _cADC_vs_TS_EChannel[histoname]->getRootObject()->SetBit(
146  _cADC_vs_TS_EChannel[histoname]->setAxisTitle("Timing", 1);
147  _cADC_vs_TS_EChannel[histoname]->setAxisTitle("ADC QIE8", 2);
148  }
149 
150  //book global histos
151  ib.setCurrentFolder("Hcal/ZDCTask");
152 
153  _cShape = ib.bookProfile("Shape",
154  "Shape",
155  xAxisShape.nbins(),
156  xAxisShape.min(),
157  xAxisShape.max(),
158  yAxisShape.nbins(),
159  yAxisShape.min(),
160  yAxisShape.max());
161  _cShape->setAxisTitle("Timing", 1);
162  _cShape->setAxisTitle("fC QIE8", 2);
163 
164  _cADC = ib.book1D("ADC", "ADC", xAxisADC.nbins(), xAxisADC.min(), xAxisADC.max());
166  _cADC->setAxisTitle("ADC QIE8", 1);
167 
168  _cADC_vs_TS = ib.book2D("ADC_vs_TS",
169  "ADC_vs_TS",
170  xAxisShape.nbins(),
171  xAxisShape.min(),
172  xAxisShape.max(),
173  xAxisADC.nbins(),
174  xAxisADC.min(),
175  xAxisADC.max());
177  _cADC_vs_TS->setAxisTitle("Timing", 1);
178  _cADC_vs_TS->setAxisTitle("ADC QIE8", 2);
179 }
constexpr void setHTR(int crate, int slot, int tb)
std::map< std::string, MonitorElement * > _cADC_EChannel
Definition: ZDCTask.h:42
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:113
TObject * getRootObject() const
MonitorElement * _cShape
Definition: ZDCTask.h:46
std::map< std::string, MonitorElement * > _cShape_EChannel
Definition: ZDCTask.h:41
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * _cADC_vs_TS
Definition: ZDCTask.h:48
Definition: DetId.h:18
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * _cADC
Definition: ZDCTask.h:47
int const BIT_OFFSET
Definition: Constants.h:277
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Readout chain identification for Hcal.
std::map< std::string, MonitorElement * > _cADC_vs_TS_EChannel
Definition: ZDCTask.h:43

Member Data Documentation

MonitorElement* ZDCTask::_cADC
protected

Definition at line 47 of file ZDCTask.h.

std::map<std::string, MonitorElement*> ZDCTask::_cADC_EChannel
protected

Definition at line 42 of file ZDCTask.h.

MonitorElement* ZDCTask::_cADC_vs_TS
protected

Definition at line 48 of file ZDCTask.h.

std::map<std::string, MonitorElement*> ZDCTask::_cADC_vs_TS_EChannel
protected

Definition at line 43 of file ZDCTask.h.

MonitorElement* ZDCTask::_cShape
protected

Definition at line 46 of file ZDCTask.h.

std::map<std::string, MonitorElement*> ZDCTask::_cShape_EChannel
protected

Definition at line 41 of file ZDCTask.h.

double ZDCTask::_cut
protected

Definition at line 37 of file ZDCTask.h.

int ZDCTask::_ped
protected

Definition at line 38 of file ZDCTask.h.

edm::InputTag ZDCTask::_tagQIE10
protected

Definition at line 33 of file ZDCTask.h.

edm::EDGetTokenT<ZDCDigiCollection> ZDCTask::_tokQIE10
protected

Definition at line 34 of file ZDCTask.h.