@@ -129,7 +129,7 @@ inline float DigitTime::getCommonMode(const GEMstack& gemstack) const
129129template <DigitzationMode MODE >
130130inline void DigitTime::fillOutputContainer (std::vector<Digit>& output, dataformats::MCTruthContainer<MCCompLabel>& mcTruth,
131131 std::vector<CommonMode>& commonModeOutput, const Sector& sector, TimeBin timeBin,
132- PrevDigitInfoArray* prevTime, Streamer* debugStream, const CalPad* padParams[3 ],
132+ PrevDigitInfoArray* prevTime, Streamer* debugStream, const CalPad* padParams[4 ],
133133 const CalDet<bool >* deadMap)
134134{
135135 const auto & mapper = Mapper::instance ();
@@ -148,7 +148,12 @@ inline void DigitTime::fillOutputContainer(std::vector<Digit>& output, dataforma
148148 }
149149 const CRU cru = mapper.getCRU (sector, iPad);
150150 const float cmKValue = (padParams[2 ]) ? padParams[2 ]->getValue (sector.getSector (), iPad) : 1 .f ;
151- mCommonMode [cru.gemStack ()] += digit.getChargePad () * eleParam.commonModeCoupling * cmKValue; // TODO: Add stack-by-stack variation?
151+ float commonModeSignal = digit.getChargePad () * eleParam.commonModeCoupling * cmKValue; // TODO: Add stack-by-stack variation?
152+ if (eleParam.doCommonModePerPadSaturation ) {
153+ const float pedestal = (padParams[3 ]) ? padParams[3 ]->getValue (sector.getSector (), iPad) : 77 .f ;
154+ commonModeSignal = std::min (commonModeSignal, pedestal);
155+ }
156+ mCommonMode [cru.gemStack ()] += commonModeSignal;
152157 }
153158
154159 // fill common mode output container
0 commit comments