4 #include "G4SystemOfUnits.hh" 12 : hepMCEvent_(nullptr),
40 trk->momentum().x() / GeV, trk->momentum().y() / GeV, trk->momentum().z() / GeV, trk->energy() / GeV);
41 int iv = trk->ivert();
42 int ig = trk->igenpart();
45 trk->trackerSurfacePosition().y() / cm,
46 trk->trackerSurfacePosition().z() / cm);
48 trk->trackerSurfaceMomentum().y() / GeV,
49 trk->trackerSurfaceMomentum().z() / GeV,
50 trk->trackerSurfaceMomentum().e() / GeV);
58 if (trk->crossedBoundary())
59 t.setCrossedBoundaryVars(
60 trk->crossedBoundary(), trk->getIDAtBoundary(), trk->getPositionAtBoundary(), trk->getMomentumAtBoundary());
63 std::stable_sort(
c.begin(),
c.end(),
IdSort());
74 int iv =
vtx->parentIndex();
79 v.setProcessType(
vtx->processType());
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
bool operator()(const SimTrack &a, const SimTrack &b)
std::vector< G4SimTrack * > g4tracks_
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
void load(edm::SimTrackContainer &c) const
U second(std::pair< T, U > const &p)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
std::vector< SimVertex > SimVertexContainer
std::vector< G4SimVertex * > g4vertices_
std::vector< SimTrack > SimTrackContainer