62 _minJetEt ( iConfig.getParameter<double>(
"minJetEt") ),
63 _minMuonEt ( iConfig.getParameter<double>(
"minMuonEt") ),
64 _minElectronEt ( iConfig.getParameter<double>(
"minElectronEt") ),
65 _minTauEt ( iConfig.getParameter<double>(
"minTauEt") ),
66 _minPhotonEt ( iConfig.getParameter<double>(
"minPhotonEt") ),
68 _maxJetEta ( iConfig.getParameter<double>(
"maxJetEta") ),
69 _maxMuonEta ( iConfig.getParameter<double>(
"maxMuonEta") ),
70 _maxElectronEta ( iConfig.getParameter<double>(
"maxElectronEta") ),
71 _maxTauEta ( iConfig.getParameter<double>(
"maxTauEta") ),
72 _maxPhotonEta ( iConfig.getParameter<double>(
"maxPhotonEta") ),
74 _seedMethod ( iConfig.getParameter<int>(
"seedMethod") ),
75 _combinationMethod ( iConfig.getParameter<int>(
"combinationMethod") )
80 produces< std::vector<pat::Hemisphere> >();
103 std::vector<float> vPx, vPy, vPz, vE;
104 std::vector<float> vA1, vA2;
105 std::vector<int> vgroups;
106 std::vector<reco::CandidatePtr> componentPtrs;
130 for(
int i = 0;
i < (int) (*pJets).size() ;
i++){
133 componentPtrs.push_back(pJets->ptrAt(
i));
136 for(
int i = 0;
i < (int) (*pMuons).size() ;
i++){
139 componentPtrs.push_back(pMuons->ptrAt(
i));
142 for(
int i = 0;
i < (int) (*pElectrons).size() ;
i++){
145 componentPtrs.push_back(pElectrons->ptrAt(
i));
148 for(
int i = 0;
i < (int) (*pPhotons).size() ;
i++){
151 componentPtrs.push_back(pPhotons->ptrAt(
i));
155 for(
int i = 0;
i < (int) (*pTaus).size() ;
i++){
158 componentPtrs.push_back(pTaus->ptrAt(
i));
162 std::auto_ptr< std::vector<Hemisphere> >
hemispheres(
new std::vector<Hemisphere>);;
163 hemispheres->reserve(2);
181 for (
unsigned int i=0;
i<vgroups.size(); ++
i ) {
182 if ( vgroups[
i]==1 ) {
183 (*hemispheres)[0].addDaughter(componentPtrs[
i]);
186 (*hemispheres)[1].addDaughter(componentPtrs[
i]);
191 iEvent.
put(hemispheres);
bool getByToken(EDGetToken token, Handle< PROD > &result) 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
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
const float _minElectronEt
virtual 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(const edm::ParameterSet &)
const edm::EDGetTokenT< reco::CandidateView > _patPhotonsToken
math::XYZTLorentzVector LorentzVector
Lorentz vector.
const edm::EDGetTokenT< reco::CandidateView > _patMuonsToken
std::vector< float > getAxis2()