97 _minJetEt(iConfig.getParameter<double>(
"minJetEt")),
98 _minMuonEt(iConfig.getParameter<double>(
"minMuonEt")),
99 _minElectronEt(iConfig.getParameter<double>(
"minElectronEt")),
100 _minTauEt(iConfig.getParameter<double>(
"minTauEt")),
101 _minPhotonEt(iConfig.getParameter<double>(
"minPhotonEt")),
103 _maxJetEta(iConfig.getParameter<double>(
"maxJetEta")),
104 _maxMuonEta(iConfig.getParameter<double>(
"maxMuonEta")),
105 _maxElectronEta(iConfig.getParameter<double>(
"maxElectronEta")),
106 _maxTauEta(iConfig.getParameter<double>(
"maxTauEta")),
107 _maxPhotonEta(iConfig.getParameter<double>(
"maxPhotonEta")),
109 _seedMethod(iConfig.getParameter<
int>(
"seedMethod")),
110 _combinationMethod(iConfig.getParameter<
int>(
"combinationMethod"))
113 produces<std::vector<pat::Hemisphere>>();
130 std::vector<float> vPx, vPy, vPz, vE;
131 std::vector<float> vA1, vA2;
132 std::vector<int> vgroups;
133 std::vector<reco::CandidatePtr> componentPtrs;
156 for (
int i = 0;
i < (
int)(*pJets).size();
i++) {
160 componentPtrs.push_back(pJets->
ptrAt(
i));
163 for (
int i = 0;
i < (
int)(*pMuons).size();
i++) {
167 componentPtrs.push_back(pMuons->
ptrAt(
i));
170 for (
int i = 0;
i < (
int)(*pElectrons).size();
i++) {
174 componentPtrs.push_back(pElectrons->
ptrAt(
i));
177 for (
int i = 0;
i < (
int)(*pPhotons).size();
i++) {
181 componentPtrs.push_back(pPhotons->
ptrAt(
i));
185 for (
int i = 0;
i < (
int)(*pTaus).size();
i++) {
189 componentPtrs.push_back(pTaus->
ptrAt(
i));
193 auto hemispheres = std::make_unique<std::vector<Hemisphere>>();
212 for (
unsigned int i = 0;
i < vgroups.size(); ++
i) {
213 if (vgroups[
i] == 1) {
214 (*hemispheres)[0].addDaughter(componentPtrs[
i]);
216 (*hemispheres)[1].addDaughter(componentPtrs[
i]);
Ptr< value_type > ptrAt(size_type i) const
#define DEFINE_FWK_MODULE(type)
const edm::EDGetTokenT< reco::CandidateView > _patElectronsToken
const float _maxElectronEta
const int _combinationMethod
const edm::EDGetTokenT< reco::CandidateView > _patTausToken
std::vector< float > getAxis1()
const float _maxPhotonEta
std::vector< float > HemiAxis
const float _minElectronEt
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
const edm::EDGetTokenT< reco::CandidateView > _patJetsToken
Input: All PAT objects that are to cross-clean or needed for that.
std::vector< int > getGrouping()
~PATHemisphereProducer() override
PATHemisphereProducer(const edm::ParameterSet &)
const edm::EDGetTokenT< reco::CandidateView > _patPhotonsToken
math::XYZTLorentzVector LorentzVector
Lorentz vector.
const edm::EDGetTokenT< reco::CandidateView > _patMuonsToken
std::vector< float > getAxis2()
edm::View< Candidate > CandidateView
view of a collection containing candidates