86 auto pOut = std::make_unique<CTPPSLocalTrackLiteCollection>();
96 for (
const auto &rpv : *inputSiStripTracks) {
97 const uint32_t rpId = rpv.detId();
98 for (
const auto &trk : rpv) {
102 float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<14>(trk.x0());
103 float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.x0Sigma());
104 float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.y0());
105 float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.y0Sigma());
106 float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.tx());
107 float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.txSigma());
108 float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.ty());
109 float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.tySigma());
110 float roundedChiSquaredOverNDF = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.chiSquaredOverNDF());
112 pOut->emplace_back(rpId,
124 roundedChiSquaredOverNDF,
126 trk.numberOfPointsUsedForFit(),
142 for (
const auto &rpv : *inputDiamondTracks) {
143 const unsigned int rpId = rpv.detId();
144 for (
const auto &trk : rpv) {
152 float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.x0());
153 float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.x0Sigma());
154 float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.y0());
155 float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.y0Sigma());
156 float roundedT = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(abs_time);
157 float roundedTSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.timeSigma());
159 pOut->emplace_back(rpId,
173 trk.numberOfPlanes(),
189 for (
const auto &rpv : *inputPixelTracks) {
190 const uint32_t rpId = rpv.detId();
191 for (
const auto &trk : rpv) {
196 float roundedX0 = MiniFloatConverter::reduceMantissaToNbitsRounding<16>(trk.x0());
197 float roundedX0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.x0Sigma());
198 float roundedY0 = MiniFloatConverter::reduceMantissaToNbitsRounding<13>(trk.y0());
199 float roundedY0Sigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.y0Sigma());
200 float roundedTx = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.tx());
201 float roundedTxSigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.txSigma());
202 float roundedTy = MiniFloatConverter::reduceMantissaToNbitsRounding<11>(trk.ty());
203 float roundedTySigma = MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.tySigma());
204 float roundedChiSquaredOverNDF =
205 MiniFloatConverter::reduceMantissaToNbitsRounding<8>(trk.chiSquaredOverNDF());
207 pOut->emplace_back(rpId,
219 roundedChiSquaredOverNDF,
221 trk.numberOfPointsUsedForFit(),
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static float HPTDC_TIME_SLICE_WIDTH
HPTDC time slice width, in ns.
edm::EDGetTokenT< edm::DetSetVector< CTPPSDiamondLocalTrack > > diamondTrackToken_
edm::EDGetTokenT< edm::DetSetVector< CTPPSPixelLocalTrack > > pixelTrackToken_
bool isUninitialized() const
edm::EDGetTokenT< edm::DetSetVector< TotemRPLocalTrack > > siStripTrackToken_