10 #include "art/Utilities/ToolMacros.h"
17 namespace ShowerRecoTools {
47 , fVerbose(pset.
get<int>(
"Verbose"))
48 , fUsePandoraVertex(pset.
get<
bool>(
"UsePandoraVertex"))
49 , fUsePositonInfo(pset.
get<
bool>(
"UsePositonInfo"))
50 , fTrajPoint(pset.
get<int>(
"TrajPoint"))
51 , fInitialTrackInputLabel(pset.
get<
std::string>(
"InitialTrackInputLabel"))
52 , fShowerStartPositionInputLabel(pset.
get<
std::string>(
"ShowerStartPositionInputLabel"))
53 , fShowerDirectionOutputLabel(pset.
get<
std::string>(
"ShowerDirectionOutputLabel"))
58 const art::Ptr<recob::PFParticle>& pfparticle,
66 mf::LogError(
"ShowerTrackTrajPointDirection") <<
"Initial track not set" << std::endl;
74 mf::LogError(
"ShowerTrackTrajPointDirection")
75 <<
"Less that fTrajPoint trajectory points, bailing." << std::endl;
83 mf::LogError(
"ShowerTrackTrajPointDirection")
84 <<
"Bogus trajectory point bailing." << std::endl;
97 mf::LogError(
"ShowerTrackTrajPointDirection")
98 <<
"Shower start position not set" << std::endl;
101 TVector3 StartPosition_vec = {-999, -999, -999};
103 StartPosition.SetCoordinates(
104 StartPosition_vec.X(), StartPosition_vec.Y(), StartPosition_vec.Z());
107 StartPosition = InitialTrack.
Start();
111 Direction_vec = (TrajPosition - StartPosition).Unit();
118 TVector3 Direction = {Direction_vec.X(), Direction_vec.Y(), Direction_vec.Z()};
119 TVector3 DirectionErr = {-999, -999, -999};
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
double std(const std::vector< short > &wf, const double ped_mean, size_t start, size_t nsample)
static constexpr Flag_t NoPoint
The trajectory point is not defined.
Point_t const & LocationAtPoint(size_t i) const
void SetElement(T &dataproduct, const std::string &Name, bool checktag=false)
size_t NumberTrajectoryPoints() const
Various functions related to the presence and the number of (valid) points.
Point_t const & Start() const
Access to track position at different points.
bool CheckElement(const std::string &Name) const
int GetElement(const std::string &Name, T &Element) const
Provides recob::Track data product.
PointFlags_t const & FlagsAtPoint(size_t i) const
Vector_t DirectionAtPoint(size_t i) const
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a "fitted" track: