4 #include <CLHEP/Units/SystemOfUnits.h> 30 const double invgev = 1.0 / CLHEP::GeV;
35 int iv = trk->ivert();
36 int ig = trk->igenpart();
42 SimTrack t =
SimTrack(ip,
p,
iv, ig, trk->trackerSurfacePosition(), trk->trackerSurfaceMomentum());
45 t.setCrossedBoundaryVars(
46 trk->crossedBoundary(), trk->getIDAtBoundary(), trk->getPositionAtBoundary(), trk->getMomentumAtBoundary());
49 std::stable_sort(
c.begin(),
c.end(),
IdSort());
53 const double invcm = 1.0 / CLHEP::cm;
57 auto pos =
vtx->vertexPosition();
60 int iv =
vtx->parentIndex();
65 v.setProcessType((
unsigned int)
vtx->processType());
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::vector< TmpSimTrack * > g4tracks_
std::vector< TmpSimVertex * > g4vertices_
void load(edm::SimTrackContainer &) const
bool operator()(const SimTrack &a, const SimTrack &b)
U second(std::pair< T, U > const &p)
static const float invgev
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
std::vector< SimVertex > SimVertexContainer
std::vector< SimTrack > SimTrackContainer