4 #include "G4SystemOfUnits.hh"
12 : hepMCEvent(nullptr),
24 for (i = 0; i <
g4tracks.size(); i++) {
38 for (
unsigned int i = 0;
i <
g4tracks.size();
i++) {
61 t.setCrossedBoundaryVars(
65 std::stable_sort(c.begin(), c.end(),
IdSort());
const edm::EventSetup & c
bool crossedBoundary() const
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::vector< G4SimTrack * > g4tracks
const math::XYZVectorD & trackerSurfacePosition() const
void setProcessType(unsigned int ty)
bool operator()(const SimTrack &a, const SimTrack &b)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
const math::XYZTLorentzVectorF & getPositionAtBoundary() const
U second(std::pair< T, U > const &p)
unsigned int processType() const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
int getIDAtBoundary() const
const math::XYZVectorD & vertexPosition() const
index of the parent (-1 if no parent)
void load(edm::SimTrackContainer &c) const
const math::XYZTLorentzVectorF & getMomentumAtBoundary() const
unsigned int trackId() const
std::vector< SimVertex > SimVertexContainer
std::vector< G4SimVertex * > g4vertices
double vertexGlobalTime() const
const math::XYZTLorentzVectorD & trackerSurfaceMomentum() const
std::vector< SimTrack > SimTrackContainer
void setEventId(EncodedEventId e)
const math::XYZVectorD & momentum() const