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