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:
DQMEDAnalyzer edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

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 DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (edm::Event const &, edm::EventSetup const &) override
 
- 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

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
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

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().

8 {
9 
10  // tags
11  _tagQIE10 = ps.getUntrackedParameter<edm::InputTag>("tagQIE10",
12  edm::InputTag("hcalDigis"));
13  _tokQIE10 = consumes<ZDCDigiCollection>(_tagQIE10);
14 
15  // cuts
16  _cut = ps.getUntrackedParameter<double>("cut", 50.0);
17  _ped = ps.getUntrackedParameter<int>("ped", 4);
18 }
double _cut
Definition: ZDCTask.h:39
edm::EDGetTokenT< ZDCDigiCollection > _tokQIE10
Definition: ZDCTask.h:36
edm::InputTag _tagQIE10
Definition: ZDCTask.h:35
int _ped
Definition: ZDCTask.h:40
ZDCTask::~ZDCTask ( )
inlineoverride

Definition at line 26 of file ZDCTask.h.

References analyze(), and bookHistograms().

26 {}

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 157 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().

158 {
160  if (!e.getByToken(_tokQIE10, cqie10))
161  edm::LogError("Collection ZDCDigiCollection isn't available"
162  + _tagQIE10.label() + " " + _tagQIE10.instance());
163 
164 
165  for (uint32_t i=0; i<cqie10->size(); i++)
166  {
167  ZDCDataFrame frame = static_cast<ZDCDataFrame>((*cqie10)[i]);
168  HcalElectronicsId eid = frame.elecId();
169 
170  char histoname[300];
171  sprintf(histoname,"%d_%d_%d_%d",eid.fiberChanId(),eid.fiberIndex(),eid.spigot(),eid.dccid());
172 
173  // compute the signal, ped subracted
174  //double q = hcaldqm::utilities::sumQ_v10<ZDCDataFrame>(frame, constants::adc2fC[_ped], 0, frame.size()-1);
175 
176  // iterate thru all TS and fill
177  for (int j=0; j<frame.size(); j++)
178  {
179  _cShape_EChannel[histoname]->Fill(j, frame[j].nominal_fC());
180  _cShape->Fill(j, frame[j].nominal_fC());
181 
182  _cADC_EChannel[histoname]->Fill(frame[j].adc());
183  _cADC->Fill(frame[j].adc());
184 
185  _cADC_vs_TS_EChannel[histoname]->Fill(j,frame[j].adc());
186  _cADC_vs_TS->Fill(j,frame[j].adc());
187 
188 
189  }
190  }
191 }
int adc(sample_type sample)
get the ADC sample (12 bits)
std::map< std::string, MonitorElement * > _cADC_EChannel
Definition: ZDCTask.h:45
edm::EDGetTokenT< ZDCDigiCollection > _tokQIE10
Definition: ZDCTask.h:36
edm::InputTag _tagQIE10
Definition: ZDCTask.h:35
std::map< std::string, MonitorElement * > _cShape_EChannel
Definition: ZDCTask.h:44
constexpr int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
MonitorElement * _cShape
Definition: ZDCTask.h:50
void Fill(long long x)
constexpr int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
MonitorElement * _cADC_vs_TS
Definition: ZDCTask.h:52
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:51
std::string const & label() const
Definition: InputTag.h:36
std::map< std::string, MonitorElement * > _cADC_vs_TS_EChannel
Definition: ZDCTask.h:46
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
void ZDCTask::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  r,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 20 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().

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

Member Data Documentation

MonitorElement* ZDCTask::_cADC
protected

Definition at line 51 of file ZDCTask.h.

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

Definition at line 45 of file ZDCTask.h.

MonitorElement* ZDCTask::_cADC_vs_TS
protected

Definition at line 52 of file ZDCTask.h.

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

Definition at line 46 of file ZDCTask.h.

MonitorElement* ZDCTask::_cShape
protected

Definition at line 50 of file ZDCTask.h.

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

Definition at line 44 of file ZDCTask.h.

double ZDCTask::_cut
protected

Definition at line 39 of file ZDCTask.h.

int ZDCTask::_ped
protected

Definition at line 40 of file ZDCTask.h.

edm::InputTag ZDCTask::_tagQIE10
protected

Definition at line 35 of file ZDCTask.h.

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

Definition at line 36 of file ZDCTask.h.