1 #ifndef FastSimulation_Event_FBaseSimEvent_H
2 #define FastSimulation_Event_FBaseSimEvent_H
74 void fill(
const std::vector<SimTrack>&,
const std::vector<SimVertex>&);
139 const HepMC::GenVertex* ev=0);
157 inline std::vector<FSimTrack>*
tracks()
const {
167 inline std::vector<HepMC::GenParticle*>*
genparts()
const {
208 #include "FastSimulation/Event/interface/FBaseSimEvent.icc"
210 #endif // FBaseSimEvent_H
const ParticleDataTable * pdt
double lateVertexPosition
PrimaryVertexGenerator * theVertexGenerator
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
int addSimVertex(const XYZTLorentzVector &decayVertex, int im=-1, FSimVertexType::VertexType type=FSimVertexType::ANY)
Add a new vertex to the Event and to the various lists.
int addSimTrack(const RawParticle *p, int iv, int ig=-1, const HepMC::GenVertex *ev=0)
Add a new track to the Event and to the various lists.
const HepMC::GenParticle * embdGenpart(int i) const
return MC track with a given id
HepPDT::ParticleDataTable ParticleDataTable
std::vector< FSimTrack > * theSimTracks
std::vector< unsigned > * theChargedTracks
FBaseSimEvent(const edm::ParameterSet &kine)
Default constructor.
unsigned int theTrackSize
unsigned int theVertexSize
KineParticleFilter * myFilter
The particle filter.
const HepPDT::ParticleDataTable * theTable() const
Get the pointer to the particle data table.
math::XYZPoint theBeamSpot
std::vector< FSimVertex > * vertices() const
The pointer to the vector of FSimVertex's.
void clear()
clear the FBaseSimEvent content before the next event
FSimVertex & vertex(int id) const
Return vertex with given Id.
unsigned int nChargedTracks() const
Number of "reconstructed" charged tracks.
unsigned int nVertices() const
Number of vertices.
FSimVertexType & vertexType(int id) const
Return vertex with given Id.
std::vector< FSimTrack > * tracks() const
The pointer to the vector of FSimTrack's.
void addParticles(const HepMC::GenEvent &hev, RandomEngineAndDistribution const *)
Add the particles and their vertices to the list.
const FSimVertexType & embdVertexType(int i) const
return embedded vertex type with given id
~FBaseSimEvent()
usual virtual destructor
unsigned int nTracks() const
Number of tracks.
unsigned int nSimVertices
A FSimVertexType hold the information on the vertex origine.
void fill(const HepMC::GenEvent &hev, RandomEngineAndDistribution const *)
fill the FBaseSimEvent from the current HepMC::GenEvent
std::vector< FSimVertexType > FSimVertexTypeCollection
collection of FSimVertexType objects
unsigned int nGenParticles
std::vector< FSimVertex > * theSimVertices
void setBeamSpot(const math::XYZPoint &aBeamSpot)
Set the beam spot position.
const SimVertex & embdVertex(int i) const
return embedded vertex with given id
PrimaryVertexGenerator * thePrimaryVertexGenerator() const
XYZPointD XYZPoint
point in space with cartesian internal representation
unsigned int theChargedSize
void addChargedTrack(int id)
Add an id in the vector of charged tracks id's.
const SimTrack & embdTrack(int i) const
return embedded track with given id
unsigned int nChargedParticleTracks
void initializePdt(const HepPDT::ParticleDataTable *aPdt)
Initialize the particle data table.
unsigned int nGenParts() const
Number of generator particles.
std::vector< HepMC::GenParticle * > * genparts() const
The pointer to the vector of GenParticle's.
const KineParticleFilter & filter() const
int chargedTrack(int id) const
return "reconstructed" charged tracks index.
void printMCTruth(const HepMC::GenEvent &hev)
print the original MCTruth event
std::vector< HepMC::GenParticle * > * theGenParticles
math::XYZTLorentzVector XYZTLorentzVector
void print() const
print the FBaseSimEvent in an intelligible way
FSimTrack & track(int id) const
Return track with given Id.
FSimVertexTypeCollection * theFSimVerticesType