diff --git a/DataFormats/Scouting/interface/Run3ScoutingElectron.h b/DataFormats/Scouting/interface/Run3ScoutingElectron.h index d973b3f235370..8f8e8abbdec4f 100644 --- a/DataFormats/Scouting/interface/Run3ScoutingElectron.h +++ b/DataFormats/Scouting/interface/Run3ScoutingElectron.h @@ -2,6 +2,7 @@ #define DataFormats_Run3ScoutingElectron_h #include +#include // Class for holding electron information, for use in data scouting // IMPORTANT: the content of this class should be changed only in backwards compatible ways! @@ -27,8 +28,9 @@ class Run3ScoutingElectron { float r9, float sMin, float sMaj, - unsigned int seedId, + uint32_t seedId, std::vector energyMatrix, + std::vector detIds, std::vector timingMatrix) : pt_(pt), eta_(eta), @@ -51,6 +53,7 @@ class Run3ScoutingElectron { sMaj_(sMaj), seedId_(seedId), energyMatrix_(std::move(energyMatrix)), + detIds_(std::move(detIds)), timingMatrix_(std::move(timingMatrix)) {} //default constructor Run3ScoutingElectron() @@ -95,8 +98,9 @@ class Run3ScoutingElectron { float r9() const { return r9_; } float sMin() const { return sMin_; } float sMaj() const { return sMaj_; } - unsigned int seedId() const { return seedId_; } + uint32_t seedId() const { return seedId_; } std::vector const& energyMatrix() const { return energyMatrix_; } + std::vector const& detIds() const { return detIds_; } std::vector const& timingMatrix() const { return timingMatrix_; } private: @@ -119,8 +123,9 @@ class Run3ScoutingElectron { float r9_; float sMin_; float sMaj_; - unsigned int seedId_; + uint32_t seedId_; std::vector energyMatrix_; + std::vector detIds_; std::vector timingMatrix_; }; diff --git a/DataFormats/Scouting/interface/Run3ScoutingPhoton.h b/DataFormats/Scouting/interface/Run3ScoutingPhoton.h index f0e4971e06c81..5bc73c740c435 100644 --- a/DataFormats/Scouting/interface/Run3ScoutingPhoton.h +++ b/DataFormats/Scouting/interface/Run3ScoutingPhoton.h @@ -2,6 +2,7 @@ #define DataFormats_Run3ScoutingPhoton_h #include +#include // Class for holding photon information, for use in data scouting // IMPORTANT: the content of this class should be changed only in backwards compatible ways! @@ -20,8 +21,9 @@ class Run3ScoutingPhoton { float r9, float sMin, float sMaj, - unsigned int seedId, + uint32_t seedId, std::vector energyMatrix, + std::vector detIds, std::vector timingMatrix) : pt_(pt), eta_(eta), @@ -37,6 +39,7 @@ class Run3ScoutingPhoton { sMaj_(sMaj), seedId_(seedId), energyMatrix_(std::move(energyMatrix)), + detIds_(std::move(detIds)), timingMatrix_(std::move(timingMatrix)) {} //default constructor Run3ScoutingPhoton() @@ -69,8 +72,9 @@ class Run3ScoutingPhoton { float r9() const { return r9_; } float sMin() const { return sMin_; } float sMaj() const { return sMaj_; } - float seedId() const { return seedId_; } + uint32_t seedId() const { return seedId_; } std::vector const& energyMatrix() const { return energyMatrix_; } + std::vector const& detIds() const { return detIds_; } std::vector const& timingMatrix() const { return timingMatrix_; } private: @@ -86,8 +90,9 @@ class Run3ScoutingPhoton { float r9_; float sMin_; float sMaj_; - unsigned int seedId_; + uint32_t seedId_; std::vector energyMatrix_; + std::vector detIds_; std::vector timingMatrix_; }; diff --git a/DataFormats/Scouting/src/classes_def.xml b/DataFormats/Scouting/src/classes_def.xml index e5810d434b250..a46abbfcf3d4b 100755 --- a/DataFormats/Scouting/src/classes_def.xml +++ b/DataFormats/Scouting/src/classes_def.xml @@ -39,14 +39,16 @@ - + + - + + diff --git a/HLTrigger/Egamma/plugins/HLTScoutingEgammaProducer.cc b/HLTrigger/Egamma/plugins/HLTScoutingEgammaProducer.cc index f42e0b9a3f878..35b23d017a0ec 100644 --- a/HLTrigger/Egamma/plugins/HLTScoutingEgammaProducer.cc +++ b/HLTrigger/Egamma/plugins/HLTScoutingEgammaProducer.cc @@ -16,6 +16,8 @@ Description: Producer for Run3ScoutingElectron and Run3ScoutingPhoton #include "HLTScoutingEgammaProducer.h" +#include + // function to find rechhit associated to detid and return energy float recHitE(const DetId id, const EcalRecHitCollection& recHits) { if (id == DetId(0)) { @@ -205,20 +207,21 @@ void HLTScoutingEgammaProducer::produce(edm::StreamID sid, edm::Event& iEvent, e float sMin = moments.sMin; float sMaj = moments.sMaj; - unsigned int seedId = (*SCseed).seed(); + uint32_t seedId = (*SCseed).seed(); std::vector mDetIds = EcalClusterTools::matrixDetId((topology), (*SCseed).seed(), rechitMatrixSize); int detSize = mDetIds.size(); + std::vector mDetIdIds(detSize, 0); std::vector mEnergies(detSize, 0.); std::vector mTimes(detSize, 0.); for (int i = 0; i < detSize; i++) { + mDetIdIds[i] = mDetIds[i]; mEnergies[i] = - MiniFloatConverter::reduceMantissaToNbitsRounding(recHitE(mDetIds.at(i), *rechits), mantissaPrecision); + MiniFloatConverter::reduceMantissaToNbitsRounding(recHitE(mDetIds[i], *rechits), mantissaPrecision); if (saveRecHitTiming) - mTimes[i] = - MiniFloatConverter::reduceMantissaToNbitsRounding(recHitT(mDetIds.at(i), *rechits), mantissaPrecision); + mTimes[i] = MiniFloatConverter::reduceMantissaToNbitsRounding(recHitT(mDetIds[i], *rechits), mantissaPrecision); } float HoE = 999.; @@ -254,6 +257,7 @@ void HLTScoutingEgammaProducer::produce(edm::StreamID sid, edm::Event& iEvent, e sMaj, seedId, mEnergies, + mDetIdIds, mTimes); //read for(ieta){for(iphi){}} } else { // Candidate is a scouting electron outElectrons->emplace_back(candidate.pt(), @@ -277,6 +281,7 @@ void HLTScoutingEgammaProducer::produce(edm::StreamID sid, edm::Event& iEvent, e sMaj, seedId, mEnergies, + mDetIdIds, mTimes); //read for(ieta){for(iphi){}} } }