18 for (
const auto& vec :
input) {
20 const int sector = detid.arm(), plane = detid.plane(), channel = detid.channel();
31 for (
const auto& digi : vec) {
32 const int t_lead = digi.leadingEdge(), t_trail = digi.trailingEdge();
33 if (t_lead == 0 && t_trail == 0)
35 double tot = -1., ch_t_twc = 0.;
36 if (t_lead != 0 && t_trail != 0) {
39 ch_t_twc =
calib_fct_->evaluate(std::vector<double>{
tot}, ch_params);
46 const auto& tile =
geom.tile(detid);
49 filler.emplace_back(tile.centre(), t_lead *
ts_to_ns_ - ch_t_offset - ch_t_twc, ch_t_precis,
tot);
const PPSTimingCalibration * calib_
DB-loaded calibration object.
Detector ID class for Totem T2 detectors. Bits [19:31] : Base CTPPSDetId class attributes Bits [16:18...
constexpr bool isNotFinite(T x)
double timeOffset(int key1, int key2, int key3, int key4=-1) const
bool apply_calib_
Switch on/off the timing calibration.
static std::string const input
void build(const TotemGeometry &, const edmNew::DetSetVector< TotemT2Digi > &, edmNew::DetSetVector< TotemT2RecHit > &) override
double timePrecision(int key1, int key2, int key3, int key4=-1) const
std::unique_ptr< reco::FormulaEvaluator > calib_fct_
Timing correction formula.
std::vector< double > parameters(int key1, int key2, int key3, int key4) const
double ts_to_ns_
Conversion constant between time slice and absolute time (in ns)