00001 #ifndef FastSimulation_Event_FSimEvent_H 00002 #define FastSimulation_Event_FSimEvent_H 00003 00004 // CMSSW Headers 00005 #include "DataFormats/Provenance/interface/EventID.h" 00006 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" 00007 #include "SimDataFormats/Track/interface/SimTrackContainer.h" 00008 #include "SimDataFormats/Vertex/interface/SimVertexContainer.h" 00009 00010 // FAMOS Headers 00011 #include "FastSimulation/Event/interface/FBaseSimEvent.h" 00012 00029 class RandomEngine; 00030 00031 class FSimEvent : public FBaseSimEvent { 00032 00033 public: 00034 00036 FSimEvent(const edm::ParameterSet& kine); 00037 00038 FSimEvent(const edm::ParameterSet& vtx, 00039 const edm::ParameterSet& kine, 00040 const RandomEngine* engine); 00041 00043 virtual ~FSimEvent(); 00044 00046 void fill(const HepMC::GenEvent & hev, edm::EventID & Id); 00047 00049 void fill(const reco::GenParticleCollection & parts, edm::EventID & Id); 00050 00052 void fill(const std::vector<SimTrack>& simTracks, 00053 const std::vector<SimVertex>& simVertices); 00054 00056 edm::EventID id() const; 00057 00059 float weight() const; 00060 00062 unsigned int nTracks() const; 00064 unsigned int nVertices() const; 00066 unsigned int nGenParts() const; 00067 00069 void load(edm::SimTrackContainer & c, edm::SimTrackContainer & m) const; 00070 void load(edm::SimVertexContainer & c) const; 00071 void load(FSimVertexTypeCollection & c) const; 00072 00073 private: 00074 00075 edm::EventID id_; 00076 double weight_; 00077 00078 }; 00079 00080 #endif // FSIMEVENT_H