CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ETLUncalibRecHitAlgo.cc
Go to the documentation of this file.
3 
5 
7 public:
11  adcNBits_(conf.getParameter<uint32_t>("adcNbits")),
12  adcSaturation_(conf.getParameter<double>("adcSaturation")),
14  toaLSBToNS_(conf.getParameter<double>("toaLSB_ns")),
15  tofDelay_(conf.getParameter<double>("tofDelay")),
16  timeError_(conf.getParameter<std::string>("timeResolutionInNs")) {}
17 
19  ~ETLUncalibRecHitAlgo() override {}
20 
22  void getEvent(const edm::Event&) final {}
23  void getEventSetup(const edm::EventSetup&) final {}
24 
26  FTLUncalibratedRecHit makeRecHit(const ETLDataFrame& dataFrame) const final;
27 
28 private:
29  const uint32_t adcNBits_;
30  const double adcSaturation_;
31  const double adcLSB_;
32  const double toaLSBToNS_;
33  const double tofDelay_;
35 };
36 
38  constexpr int iSample = 2; //only in-time sample
39  const auto& sample = dataFrame.sample(iSample);
40 
41  const std::array<double, 1> amplitudeV = {{double(sample.data()) * adcLSB_}};
42  // NB: Here amplitudeV is defined as an array in order to be used
43  // below as an input to FormulaEvaluator::evaluate.
44  double time = double(sample.toa()) * toaLSBToNS_ - tofDelay_;
45  unsigned char flag = 0;
46 
47  LogDebug("ETLUncalibRecHit") << "ADC+: set the charge to: " << amplitudeV[0] << ' ' << sample.data() << ' ' << adcLSB_
48  << ' ' << std::endl;
49  LogDebug("ETLUncalibRecHit") << "ADC+: set the time to: " << time << ' ' << sample.toa() << ' ' << toaLSBToNS_ << ' '
50  << std::endl;
51  LogDebug("ETLUncalibRecHit") << "Final uncalibrated amplitude : " << amplitudeV[0] << std::endl;
52 
53  const std::array<double, 1> emptyV = {{0.}};
54  double timeError = timeError_.evaluate(amplitudeV, emptyV);
55 
56  return FTLUncalibratedRecHit(dataFrame.id(),
57  dataFrame.row(),
58  dataFrame.column(),
59  {amplitudeV[0], 0.f},
60  {time, 0.f},
61  timeError,
62  -1.f,
63  -1.f,
64  flag);
65 }
66 
FTLUncalibratedRecHit makeRecHit(const ETLDataFrame &dataFrame) const final
make the rec hit
const int row() const
row
Definition: FTLDataFrameT.h:36
const reco::FormulaEvaluator timeError_
const S & sample(int i) const
Definition: FTLDataFrameT.h:57
ETLUncalibRecHitAlgo(const edm::ParameterSet &conf, edm::ConsumesCollector &sumes)
Constructor.
double evaluate(V const &iVariables, P const &iParameters) const
~ETLUncalibRecHitAlgo() override
Destructor.
void getEvent(const edm::Event &) final
get event and eventsetup information
Readout digi for HGC.
Definition: FTLDataFrameT.h:14
const int column() const
column
Definition: FTLDataFrameT.h:41
#define DEFINE_EDM_PLUGIN(factory, type, name)
const D & id() const
det id
Definition: FTLDataFrameT.h:31
#define LogDebug(id)
void getEventSetup(const edm::EventSetup &) final