diff --git a/Producer/interface/ProtonsFiller.h b/Producer/interface/ProtonsFiller.h new file mode 100644 index 00000000..2172334f --- /dev/null +++ b/Producer/interface/ProtonsFiller.h @@ -0,0 +1,22 @@ +#ifndef PandaProd_Producer_ProtonsFiller_h +#define PandaProd_Producer_ProtonsFiller_h + +#include "FillerBase.h" + +#include "DataFormats/Common/interface/View.h" +#include "DataFormats/CTPPSReco/interface/CTPPSLocalTrackLite.h" + +class ProtonsFiller : public FillerBase { + public: + ProtonsFiller(std::string const&, edm::ParameterSet const&, edm::ConsumesCollector&); + ~ProtonsFiller() {} + + void branchNames(panda::utils::BranchList& eventBranches, panda::utils::BranchList&) const override; + void fill(panda::Event&, edm::Event const&, edm::EventSetup const&) override; + + protected: + typedef edm::View ProtonView; + NamedToken protonsToken_; +}; + +#endif diff --git a/Producer/python/panda_cfi.py b/Producer/python/panda_cfi.py index 77d9688f..2b03632a 100644 --- a/Producer/python/panda_cfi.py +++ b/Producer/python/panda_cfi.py @@ -204,6 +204,11 @@ puppiInput = cms.untracked.string('packedPFCandidates'), useExistingWeights = cms.untracked.bool(True) ), + protons = cms.untracked.PSet( + enabled = cms.untracked.bool(True), + filler = cms.untracked.string('Protons'), + protons = cms.untracked.string('ctppsLocalTrackLiteProducer') + ), partons = cms.untracked.PSet( enabled = cms.untracked.bool(True), filler = cms.untracked.string('Partons') diff --git a/Producer/src/ProtonsFiller.cc b/Producer/src/ProtonsFiller.cc new file mode 100644 index 00000000..e571f5e1 --- /dev/null +++ b/Producer/src/ProtonsFiller.cc @@ -0,0 +1,42 @@ +#include "../interface/ProtonsFiller.h" + +#include "DataFormats/Common/interface/RefToPtr.h" + +ProtonsFiller::ProtonsFiller(std::string const& _name, edm::ParameterSet const& _cfg, edm::ConsumesCollector& _coll) : + FillerBase(_name, _cfg) +{ + //if (isRealData_) + getToken_(protonsToken_, _cfg, _coll, "protons"); +} + +void +ProtonsFiller::branchNames(panda::utils::BranchList& _eventBranches, panda::utils::BranchList&) const +{ + //if (isRealData_) + _eventBranches.emplace_back("protons"); +} + +void +ProtonsFiller::fill(panda::Event& _outEvent, edm::Event const& _inEvent, edm::EventSetup const& _setup) +{ + //if (!isRealData_) + //return; + + auto& inProtons(getProduct_(_inEvent, protonsToken_)); + + auto& outProtons(_outEvent.protons); + + for (auto& inProton : inProtons) { + + auto& outProton(outProtons.create_back()); + + outProton.x = inProton.getX(); + outProton.xUnc = inProton.getXUnc(); + outProton.y = inProton.getY(); + outProton.yUnc = inProton.getYUnc(); + outProton.rpId = inProton.getRPId(); + + } +} + +DEFINE_TREEFILLER(ProtonsFiller);