CMS 3D CMS Logo

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

#include <ZdcSimpleReconstructor.h>

Inheritance diagram for ZdcSimpleReconstructor:
edm::stream::EDProducer< T >

Public Member Functions

void beginRun (edm::Run const &r, edm::EventSetup const &es) final
 
void endRun (edm::Run const &r, edm::EventSetup const &es) final
 
void produce (edm::Event &e, const edm::EventSetup &c) override
 
 ZdcSimpleReconstructor (const edm::ParameterSet &ps)
 
 ~ZdcSimpleReconstructor () override
 
- Public Member Functions inherited from edm::stream::EDProducer< T >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

edm::ESGetToken< HcalDbService,
HcalDbRecord
conditionsToken_
 
DetId::Detector det_
 
bool dropZSmarkedPassed_
 
const HcalTimeSlewhcalTimeSlew_delay_
 
edm::ESGetToken< HcalTopology,
HcalRecNumberingRecord
htopoToken_
 
std::unique_ptr
< HcalLongRecoParams
longRecoParams_
 
edm::ESGetToken
< HcalLongRecoParams,
HcalLongRecoParamsRcd
paramsToken_
 
ZdcSimpleRecAlgo reco_
 
int subdet_
 
HcalOtherSubdetector subdetOther_
 
edm::ESGetToken< HcalTimeSlew,
HcalTimeSlewRecord
timeSlewToken_
 
edm::EDGetTokenT
< ZDCDigiCollection
tok_input_castor
 
edm::EDGetTokenT
< ZDCDigiCollection
tok_input_hcal
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< T >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 34 of file ZdcSimpleReconstructor.h.

Constructor & Destructor Documentation

ZdcSimpleReconstructor::ZdcSimpleReconstructor ( const edm::ParameterSet ps)
explicit

Definition at line 13 of file ZdcSimpleReconstructor.cc.

References DetId::Calo, conditionsToken_, gather_cfg::cout, det_, edm::ParameterSet::getParameter(), HcalCalibration, HcalOther, hcalTimeSlew_delay_, htopoToken_, paramsToken_, AlCaHLTBitMon_QueryRunRegistry::string, subdet_, HcalZDCDetId::SubdetectorId, subdetOther_, timeSlewToken_, tok_input_castor, and tok_input_hcal.

14  : reco_(conf.getParameter<bool>("correctForTimeslew"),
15  conf.getParameter<bool>("correctForPhaseContainment"),
16  conf.getParameter<double>("correctionPhaseNS"),
17  conf.getParameter<int>("recoMethod"),
18  conf.getParameter<int>("lowGainOffset"),
19  conf.getParameter<double>("lowGainFrac")),
21  dropZSmarkedPassed_(conf.getParameter<bool>("dropZSmarkedPassed")) {
22  tok_input_castor = consumes<ZDCDigiCollection>(conf.getParameter<edm::InputTag>("digiLabelcastor"));
23  tok_input_hcal = consumes<ZDCDigiCollection>(conf.getParameter<edm::InputTag>("digiLabelhcal"));
24 
25  std::string subd = conf.getParameter<std::string>("Subdetector");
26  if (!strcasecmp(subd.c_str(), "ZDC")) {
27  det_ = DetId::Calo;
29  produces<ZDCRecHitCollection>();
30  } else if (!strcasecmp(subd.c_str(), "CALIB")) {
33  produces<HcalCalibRecHitCollection>();
34  } else {
35  std::cout << "ZdcSimpleReconstructor is not associated with a specific subdetector!" << std::endl;
36  }
37 
38  hcalTimeSlew_delay_ = nullptr;
39 
40  // ES tokens
41  htopoToken_ = esConsumes<HcalTopology, HcalRecNumberingRecord, edm::Transition::BeginRun>();
42  paramsToken_ = esConsumes<HcalLongRecoParams, HcalLongRecoParamsRcd, edm::Transition::BeginRun>();
43  conditionsToken_ = esConsumes<HcalDbService, HcalDbRecord>();
44  timeSlewToken_ = esConsumes<HcalTimeSlew, HcalTimeSlewRecord>(edm::ESInputTag("", "HBHE"));
45 }
HcalOtherSubdetector subdetOther_
edm::EDGetTokenT< ZDCDigiCollection > tok_input_hcal
const HcalTimeSlew * hcalTimeSlew_delay_
edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
edm::EDGetTokenT< ZDCDigiCollection > tok_input_castor
edm::ESGetToken< HcalLongRecoParams, HcalLongRecoParamsRcd > paramsToken_
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > timeSlewToken_
tuple cout
Definition: gather_cfg.py:144
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > htopoToken_
ZdcSimpleReconstructor::~ZdcSimpleReconstructor ( )
override

Definition at line 47 of file ZdcSimpleReconstructor.cc.

47 {}

Member Function Documentation

void ZdcSimpleReconstructor::beginRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
final

Definition at line 49 of file ZdcSimpleReconstructor.cc.

References edm::EventSetup::getData(), hcalTimeSlew_delay_, htopoToken_, longRecoParams_, AlCaHLTBitMon_ParallelJobs::p, paramsToken_, and timeSlewToken_.

49  {
50  const HcalTopology& htopo = es.getData(htopoToken_);
51  const HcalLongRecoParams& p = es.getData(paramsToken_);
52  longRecoParams_ = std::make_unique<HcalLongRecoParams>(p);
53  longRecoParams_->setTopo(&htopo);
54 
55  hcalTimeSlew_delay_ = &es.getData(timeSlewToken_);
56 }
const HcalTimeSlew * hcalTimeSlew_delay_
edm::ESGetToken< HcalLongRecoParams, HcalLongRecoParamsRcd > paramsToken_
std::unique_ptr< HcalLongRecoParams > longRecoParams_
edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > timeSlewToken_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > htopoToken_
void ZdcSimpleReconstructor::endRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
final

Definition at line 58 of file ZdcSimpleReconstructor.cc.

58 {}
void ZdcSimpleReconstructor::produce ( edm::Event e,
const edm::EventSetup c 
)
override

Definition at line 60 of file ZdcSimpleReconstructor.cc.

References DetId::Calo, submitPVValidationJobs::conditions, conditionsToken_, det_, dropZSmarkedPassed_, edm::Event::getByToken(), edm::EventSetup::getData(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), hcalTimeSlew_delay_, mps_fire::i, ZdcSimpleRecAlgo::initPulseCorr(), longRecoParams_, eostools::move(), HcalLongRecoParam::noiseTS(), edm::Event::put(), reco_, ZdcSimpleRecAlgo::reconstruct(), HcalLongRecoParam::signalTS(), subdet_, HcalZDCDetId::SubdetectorId, tok_input_castor, and tok_input_hcal.

60  {
61  // get conditions
62  const HcalDbService* conditions = &eventSetup.getData(conditionsToken_);
63 
64  // define vectors to pass noiseTS and signalTS
65  std::vector<unsigned int> mySignalTS;
66  std::vector<unsigned int> myNoiseTS;
67 
70  e.getByToken(tok_input_hcal, digi);
71 
72  if (digi->empty()) {
74  if (digi->empty())
75  edm::LogInfo("ZdcHitReconstructor") << "No ZDC info found in either castorDigis or hcalDigis." << std::endl;
76  }
77 
78  // create empty output
79  auto rec = std::make_unique<ZDCRecHitCollection>();
80  rec->reserve(digi->size());
81  // run the algorithm
82  unsigned int toaddMem = 0;
83 
85  for (i = digi->begin(); i != digi->end(); i++) {
86  HcalZDCDetId cell = i->id();
87  DetId detcell = (DetId)cell;
88  // rof 27.03.09: drop ZS marked and passed digis:
90  if (i->zsMarkAndPass())
91  continue;
92 
93  // get db values for signalTSs and noiseTSs
94  const HcalLongRecoParam* myParams = longRecoParams_->getValues(detcell);
95  mySignalTS.clear();
96  myNoiseTS.clear();
97  mySignalTS = myParams->signalTS();
98  myNoiseTS = myParams->noiseTS();
99  // warning: the PulseCorrection is not used by ZDC. If it gets a non-contingious set of
100  // signal TS, it may not work properly. Assume contiguous here....
101  unsigned int toadd = mySignalTS.size();
102  if (toaddMem != toadd) {
104  toaddMem = toadd;
105  }
106  const HcalCalibrations& calibrations = conditions->getHcalCalibrations(cell);
107  const HcalQIECoder* channelCoder = conditions->getHcalCoder(cell);
108  const HcalQIEShape* shape = conditions->getHcalShape(channelCoder);
109  HcalCoderDb coder(*channelCoder, *shape);
110  rec->push_back(reco_.reconstruct(*i, myNoiseTS, mySignalTS, coder, calibrations));
111  }
112  // return result
113  e.put(std::move(rec));
114  }
115 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
std::vector< unsigned int > signalTS() const
void initPulseCorr(int toadd, const HcalTimeSlew *hcalTimeSlew_delay)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< ZDCDigiCollection > tok_input_hcal
std::vector< T >::const_iterator const_iterator
const HcalTimeSlew * hcalTimeSlew_delay_
edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
ZDCRecHit reconstruct(const ZDCDataFrame &digi, const std::vector< unsigned int > &myNoiseTS, const std::vector< unsigned int > &mySignalTS, const HcalCoder &coder, const HcalCalibrations &calibs) const
def move
Definition: eostools.py:511
edm::EDGetTokenT< ZDCDigiCollection > tok_input_castor
Definition: DetId.h:17
std::unique_ptr< HcalLongRecoParams > longRecoParams_
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
std::vector< unsigned int > noiseTS() const
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const

Member Data Documentation

edm::ESGetToken<HcalDbService, HcalDbRecord> ZdcSimpleReconstructor::conditionsToken_
private

Definition at line 59 of file ZdcSimpleReconstructor.h.

Referenced by produce(), and ZdcSimpleReconstructor().

DetId::Detector ZdcSimpleReconstructor::det_
private

Definition at line 44 of file ZdcSimpleReconstructor.h.

Referenced by produce(), and ZdcSimpleReconstructor().

bool ZdcSimpleReconstructor::dropZSmarkedPassed_
private

Definition at line 50 of file ZdcSimpleReconstructor.h.

Referenced by produce().

const HcalTimeSlew* ZdcSimpleReconstructor::hcalTimeSlew_delay_
private

Definition at line 54 of file ZdcSimpleReconstructor.h.

Referenced by beginRun(), produce(), and ZdcSimpleReconstructor().

edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> ZdcSimpleReconstructor::htopoToken_
private

Definition at line 57 of file ZdcSimpleReconstructor.h.

Referenced by beginRun(), and ZdcSimpleReconstructor().

std::unique_ptr<HcalLongRecoParams> ZdcSimpleReconstructor::longRecoParams_
private

Definition at line 52 of file ZdcSimpleReconstructor.h.

Referenced by beginRun(), and produce().

edm::ESGetToken<HcalLongRecoParams, HcalLongRecoParamsRcd> ZdcSimpleReconstructor::paramsToken_
private

Definition at line 58 of file ZdcSimpleReconstructor.h.

Referenced by beginRun(), and ZdcSimpleReconstructor().

ZdcSimpleRecAlgo ZdcSimpleReconstructor::reco_
private

Definition at line 43 of file ZdcSimpleReconstructor.h.

Referenced by produce().

int ZdcSimpleReconstructor::subdet_
private

Definition at line 45 of file ZdcSimpleReconstructor.h.

Referenced by produce(), and ZdcSimpleReconstructor().

HcalOtherSubdetector ZdcSimpleReconstructor::subdetOther_
private

Definition at line 46 of file ZdcSimpleReconstructor.h.

Referenced by ZdcSimpleReconstructor().

edm::ESGetToken<HcalTimeSlew, HcalTimeSlewRecord> ZdcSimpleReconstructor::timeSlewToken_
private

Definition at line 60 of file ZdcSimpleReconstructor.h.

Referenced by beginRun(), and ZdcSimpleReconstructor().

edm::EDGetTokenT<ZDCDigiCollection> ZdcSimpleReconstructor::tok_input_castor
private

Definition at line 48 of file ZdcSimpleReconstructor.h.

Referenced by produce(), and ZdcSimpleReconstructor().

edm::EDGetTokenT<ZDCDigiCollection> ZdcSimpleReconstructor::tok_input_hcal
private

Definition at line 47 of file ZdcSimpleReconstructor.h.

Referenced by produce(), and ZdcSimpleReconstructor().