00001 // -*- C++ -*- 00002 // 00003 // Package: PatShapeAna 00004 // Class: PatShapeAna 00005 // 00013 // 00014 // Original Author: Christian AUTERMANN 00015 // Created: Sat Mar 22 12:58:04 CET 2008 00016 // $Id: PATHemisphereProducer.h,v 1.7 2010/01/11 13:36:48 hegner Exp $ 00017 // 00018 // 00019 00020 #ifndef PATHemisphereProducer_h 00021 #define PATHemisphereProducer_h 00022 00023 // system include files 00024 #include <memory> 00025 #include <map> 00026 #include <utility>//pair 00027 // user include files 00028 #include "FWCore/Framework/interface/Frameworkfwd.h" 00029 #include "FWCore/Framework/interface/EDProducer.h" 00030 #include "FWCore/Framework/interface/Event.h" 00031 #include "FWCore/Framework/interface/MakerMacros.h" 00032 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00033 #include "DataFormats/Candidate/interface/CandidateFwd.h" 00034 #include "PhysicsTools/UtilAlgos/interface/ParameterAdapter.h" 00035 00036 #include "PhysicsTools/PatAlgos/interface/HemisphereAlgo.h" 00037 // 00038 // class decleration 00039 // 00040 00041 class PATHemisphereProducer : public edm::EDProducer { 00042 public: 00043 explicit PATHemisphereProducer(const edm::ParameterSet&); 00044 ~PATHemisphereProducer(); 00045 00046 private: 00047 virtual void produce(edm::Event&, const edm::EventSetup&); 00048 virtual void endJob() ; 00049 00050 // ----------member data --------------------------- 00052 edm::InputTag _patJets; 00053 edm::InputTag _patMets; 00054 edm::InputTag _patMuons; 00055 edm::InputTag _patElectrons; 00056 edm::InputTag _patPhotons; 00057 edm::InputTag _patTaus; 00058 00059 float _minJetEt; 00060 float _minMuonEt; 00061 float _minElectronEt; 00062 float _minTauEt; 00063 float _minPhotonEt; 00064 00065 float _maxJetEta; 00066 float _maxMuonEta; 00067 float _maxElectronEta; 00068 float _maxTauEta; 00069 float _maxPhotonEta; 00070 00071 int _seedMethod; 00072 int _combinationMethod; 00073 00074 HemisphereAlgo* myHemi; 00075 00076 std::vector<float> vPx, vPy, vPz, vE; 00077 std::vector<float> vA1, vA2; 00078 std::vector<int> vgroups; 00079 std::vector<reco::CandidatePtr> componentPtrs_; 00080 00081 00082 typedef std::vector<float> HemiAxis; 00083 00084 00085 00086 00087 }; 00088 00089 #endif 00090 00091