00001 #ifndef RecoJets_JetProducers_SubEventGenJetProducer_h 00002 #define RecoJets_JetProducers_SubEventGenJetProducer_h 00003 00004 /* ********************************************************* 00005 \class SubEventGenJetProducer 00006 00007 \brief Jet producer to produce jets from 00008 \causally independent sub-events inside one event 00009 \(for heavy ions or pile up) 00010 00011 ************************************************************/ 00012 00013 #include <vector> 00014 #include "RecoJets/JetProducers/plugins/VirtualJetProducer.h" 00015 #include "DataFormats/JetReco/interface/GenJetCollection.h" 00016 00017 namespace cms 00018 { 00019 class SubEventGenJetProducer : public VirtualJetProducer 00020 { 00021 public: 00022 00023 SubEventGenJetProducer(const edm::ParameterSet& ps); 00024 virtual ~SubEventGenJetProducer() {} 00025 void produce(edm::Event&, const edm::EventSetup&); 00026 void runAlgorithm(edm::Event&, const edm::EventSetup&); 00027 00028 protected: 00029 std::vector<std::vector<fastjet::PseudoJet> > subInputs_; 00030 std::vector<reco::GenJet>* subJets_; 00031 std::vector<int> hydroTag_; 00032 std::vector<int> nSubParticles_; 00033 bool ignoreHydro_; 00034 00035 protected: 00036 00037 // overridden inputTowers method. Resets fjCompoundJets_ and 00038 // calls VirtualJetProducer::inputTowers 00039 virtual void inputTowers(); 00040 }; 00041 00042 00043 00044 00045 } 00046 00047 00048 #endif