LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar::dump Namespace Reference

Namespace for LArSoft dumping utilities. More...

Namespaces

 details
 

Classes

struct  ArrayDumper
 Dumps the first N elements of an array. More...
 
struct  ArrayDumper< T * >
 
struct  VectorDumper
 Manipulator managing the dump of the vector content into a stream. More...
 
struct  VectorDumper< T * >
 
struct  VectorDumper< T[3]>
 

Functions

template<size_t N, typename Array >
auto array (Array const &a)
 Returns a manipulator which will print the specified array. More...
 
template<typename Vector >
auto vector (Vector const &v)
 Returns a manipulator which will print the specified array. More...
 
template<typename Vector3D >
auto vector3D (Vector3D const &v)
 Returns a manipulator which will print the specified vector. More...
 
template<typename Stream , typename Array >
Stream & operator<< (Stream &&out, ArrayDumper< Array > &&manip)
 Dumps the array contained in the manipulator into a stream. More...
 
template<typename Stream , typename Vector >
Stream & operator<< (Stream &&out, VectorDumper< Vector > &&manip)
 Dumps the vector contained in the manipulator into a stream. More...
 
template<typename String , typename Vector >
String operator+ (String const &s, VectorDumper< Vector > const &manip)
 Concatenates a vector to the specified string. More...
 
template<typename Vector >
std::string operator+ (const char *s, VectorDumper< Vector > const &manip)
 Creates a string with s concatenated to the rendered vector. More...
 
template<typename String , typename Vector >
String operator+ (VectorDumper< Vector > const &manip, String const &s)
 
template<typename Vector >
std::string operator+ (VectorDumper< Vector > const &manip, const char *s)
 Creates a string with the rendered vector concatenated to s. More...
 
template<typename String , typename Vector >
String & operator+= (String &s, VectorDumper< Vector > const &manip)
 Appends a string rendering of a vector to the specified string. More...
 

Detailed Description

Namespace for LArSoft dumping utilities.

Function Documentation

template<size_t N, typename Array >
auto lar::dump::array ( Array const &  a)

Returns a manipulator which will print the specified array.

Template Parameters
Nthe number of entries to be printed
Arraythe type of array to be printed
Parameters
athe array to be printed
Returns
a manipulator

Example of usage:

double const data[5] = { 1., 2., 3., 4., 6. };
std::cout << "Data: " << lar::dump::array<5>(data) << std::endl;

will produce an output like:

Data: { 1; 2; 3; 4; 6 }

Addition of specific classes can be achieved via specialization of the class ArrayDumper.

Requirements

  • the type Array is required to respond to a global function cbegin() (like std::cbegin()) with a forward iterator
  • the value type of the iterator returned by the aforementioned Array method must have its insertion operator into a stream defined
  • the array a must not fall out of scope until the insertion into the stream happens

Definition at line 250 of file DumpUtils.h.

Referenced by lar_content::LArGraph::ConnectRegions(), util::LArFFTW::DoInvFFT(), lar_content::LArGraph::MakeGraph(), and geo::vect::details::makeIndexSeqImpl().

251  {
252  return ArrayDumper<Array>(a, N);
253  }
template<typename String , typename Vector >
String lar::dump::operator+ ( String const &  s,
VectorDumper< Vector > const &  manip 
)

Concatenates a vector to the specified string.

Template Parameters
Stringa string type that can handle "addition" to std::string
Vector3Dthe type of 3D vector to be printed
Parameters
sthe string
manipthe manipulator containing the vector to be printed
Returns
a new string with s concatenated to a rendering of the vector
See also
VectorDumper

Example of usage:

TVector3 pos;
std::runtime_error e("Position: " + lar::dump::vector3D(pos));
std::cout << e.what() << std::endl;

will produce an output like:

Position: { 0; 0; 0 }

Requirements

  • the type Vector3D is required to provide constant accessor methods returning the vector components, called X(), Y() and Z()
  • the values returned by the aforementioned Vector3D methods must have their insertion operator into Stream defined

Definition at line 435 of file DumpUtils.h.

436  {
437  return s + std::string(manip);
438  }
template<typename Vector >
std::string lar::dump::operator+ ( const char *  s,
VectorDumper< Vector > const &  manip 
)

Creates a string with s concatenated to the rendered vector.

Definition at line 442 of file DumpUtils.h.

443  {
444  return std::string(s) + manip;
445  }
template<typename String , typename Vector >
String lar::dump::operator+ ( VectorDumper< Vector > const &  manip,
String const &  s 
)
See also
documentation of function with arguments swapped.

Definition at line 449 of file DumpUtils.h.

450  {
451  return std::string(manip) + s;
452  }
template<typename Vector >
std::string lar::dump::operator+ ( VectorDumper< Vector > const &  manip,
const char *  s 
)

Creates a string with the rendered vector concatenated to s.

Definition at line 456 of file DumpUtils.h.

457  {
458  return manip + std::string(s);
459  }
template<typename String , typename Vector >
String& lar::dump::operator+= ( String &  s,
VectorDumper< Vector > const &  manip 
)
template<typename Stream , typename Array >
Stream& lar::dump::operator<< ( Stream &&  out,
ArrayDumper< Array > &&  manip 
)

Dumps the array contained in the manipulator into a stream.

Template Parameters
Streamthe type of output stream
Arraythe type of array to be printed
NPrintthe number of element of the array to be printed
Parameters
outthe output stream
manipthe manipulator containing the array to be printed
Returns
a reference to the output stream
See also
ArrayDumper

Example of usage:

double const data[5] = { 1., 2., 3., 4., 6. };
std::cout << "Position: " << lar::dump::array<5>(data) << std::endl;

will produce an output like:

Position: { 1, 2, 3, 4, 5 }

Requirements

  • the type Vector3D is required to provide constant accessor methods returning the vector components, called X(), Y() and Z()
  • the values returned by the aforementioned Vector3D methods must have their insertion operator into Stream defined

Definition at line 362 of file DumpUtils.h.

363  {
364  manip(std::forward<Stream>(out));
365  return out;
366  }
template<typename Stream , typename Vector >
Stream& lar::dump::operator<< ( Stream &&  out,
VectorDumper< Vector > &&  manip 
)

Dumps the vector contained in the manipulator into a stream.

Template Parameters
Streamthe type of output stream
Vector3Dthe type of 3D vector to be printed
Parameters
outthe output stream
manipthe manipulator containing the vector to be printed
Returns
a reference to the output stream
See also
VectorDumper

Example of usage:

TVector3 pos;
std::cout << "Position: " << lar::dump::vector3D(pos) << std::endl;

will produce an output like:

Position: { 0; 0; 0 }

Requirements

  • the type Vector3D is required to provide constant accessor methods returning the vector components, called X(), Y() and Z()
  • the values returned by the aforementioned Vector3D methods must have their insertion operator into Stream defined

Definition at line 398 of file DumpUtils.h.

399  {
400  manip(std::forward<Stream>(out));
401  return out;
402  }
template<typename Vector >
auto lar::dump::vector ( Vector const &  v)

Returns a manipulator which will print the specified array.

Template Parameters
Vectortype of vector to be printed
Parameters
vthe vector to be printed
Returns
a manipulator

Example of usage:

std::vector<double> data = { 1., 2., 3., 4., 6. };
std::cout << "Data: " << lar::dump::vector(data) << std::endl;

will produce an output like:

Data: { 1; 2; 3; 4; 6 }

Addition of specific classes can be achieved via specialization of the class ArrayDumper.

Requirements

  • a method Vector::size() const must be available returning the number of elements in the vector
  • the type Vector is required to respond to a global function cbegin() (like std::cbegin()) with a forward iterator
  • the value type returned by the aforementioned Vector method must have its insertion operator into a stream defined
  • the vector v must not fall out of scope until the insertion into the stream happens

Definition at line 289 of file DumpUtils.h.

Referenced by showerreco::ShowerRecoManager::Algo(), ClusteringValidation::ClusterAnalyser::Analyse(), ShowerQuality::analyze(), trkf::SpacePointAna::analyze(), pma::ProjectionMatchingAlg::autoFlip(), btutil::MCMatchAlg::BTAlg(), trkf::KalmanFilterAlg::buildTrack(), cluster::HoughBaseAlg::ChargeInfo_t::ChargeInfo_t(), shower::EMShowerAlg::CheckIsolatedHits_(), shower::EMShowerAlg::CheckShowerPlanes(), genf::GFTrack::clearFailedHits(), cluster::BlurredClusteringAlg::ConvertRecobHitsToVector(), tf::Graph::create(), util::CreateAssn(), evgb::util::CreateAssn(), hit::RFFHitFitter::CreateMergeVector(), fhicl::detail::ValidateThenSet::delegated_parameter(), pma::Dist2(), noisefilteralg::WireCellNoiseFilter::DoNoiseFilter(), trkf::Track3DKalmanSPS::dQdxCalc(), trkf::KalmanFilterAlg::extendTrack(), cluster::HoughBaseAlg::FastTransform(), raw::fibonacci_encode_table(), simfilter::FilterSimPhotonLiteTime::FilterSimPhotonLiteTime(), simfilter::FilterSimPhotonTime::FilterSimPhotonTime(), shower::EMShowerAlg::FindShowerStart_(), cluster::SmallClusterFinderAlg::FindSmallClusters(), ClusteringValidation::ClusterAnalyser::FindTrueTrack(), phot::PropagationTimeModel::generateVUVParams(), trkf::Geometric3DVertexFitter::Geometric3DVertexFitter(), geo::vect::details::BoundCoordGetter< CoordHelper, StoredVector >::get(), img::DataProviderAlg::getDriftIndex(), pma::PMAlgTrackingBase::getKinks(), cluster::ClusterMergeHelper::GetManager(), cluster::BlurredClusteringAlg::GetMinSize(), evwgh::WeightCalc::GetName(), lar_pandora::LArPandoraHelper::GetPFParticleMetadata(), trkf::SeedFinderAlgorithm::GetSeedsFromSortedHits(), cheat::BackTracker::GetSetOfEveIds(), trkf::SeedFinderModule::GetSortedHitsFromClusters(), trkf::SeedFinderAlgorithm::GetSpacePointAlg(), phot::PhotonVisibilityService::GetTimingTF1(), pma::PMAlgVertexing::getVertices(), shower::TrackShowerSeparationAlg::Gradient(), pma::Track3D::HasTPC(), cheat::BackTracker::HitToEveTrackIDEs(), cheat::BackTracker::HitToXYZ(), cluster::HoughBaseAlg::HoughBaseAlg(), pma::PMAlgTracker::init(), trkmkr::KalmanFilterFitTrackMaker::initEvent(), anab::FVectorWriter< N >::initOutputs(), artg4tk::ArtG4tkModelConfig::Insert(), pma::ProjectionMatchingAlg::isContained(), GFException::isFatal(), ShowerRecoTools::ShowerIncrementalTrackHitFinder::IsResidualOK(), detinfo::LArPropertiesStandard::LArPropertiesStandard(), pma::Track3D::Length(), phot::PhotonVisibilityService::LoadTimingsForVUVPar(), shower::EMShowerAlg::MakeInitialTrack_(), cluster::BlurredClusteringAlg::MakeKernels(), shower::EMShowerAlg::MakeShower(), shower::TCShowerAlg::makeShowers(), shower::EMShowerAlg::MakeSpacePoints(), trkmkr::KalmanFilterFitTrackMaker::makeTrack(), trkmkr::TrackMaker::makeTrack(), pma::PMAlgTracker::matchCluster(), btutil::MCBTAlg::MCBTAlg(), cmtool::CMManagerBase::MergeTillConverge(), geo::vect::details::BoundCoordGetter< CoordHelper, StoredVector >::operator Scalar_t(), mvapid::MVAAlg::SumDistance2::operator()(), geo::vect::details::BoundCoordManager< CoordHelper, StoredVector >::operator*=(), geo::vect::details::BoundCoordManager< CoordHelper, StoredVector >::operator+=(), geo::vect::details::BoundCoordManager< CoordHelper, StoredVector >::operator-=(), geo::vect::details::BoundCoordManager< CoordHelper, StoredVector >::operator/=(), geo::vect::details::BoundCoordManager< CoordHelper, StoredVector >::operator=(), larg4::OpFastScintillation::OpFastScintillation(), cheat::PhotonBackTracker::OpHitToSimSDPs(), cheat::PhotonBackTracker::OpHitToTrackID(), shower::EMShowerAlg::OrderShowerHits(), nnet::PointIdAlg::outputLabels(), cmtool::PlaneClusterCombinations(), PointIdAlgTools::PointIdAlgKeras::PointIdAlgKeras(), DUNE::MuonTrackingEff::processEff(), art::Principal::processHistoryID(), trk::TrackContainmentAlg::ProcessTracks(), trkf::SpacePointCheater::produce(), trkf::SpacePointFinder::produce(), trkf::TrackStitcher::produce(), vertex::PrimaryVertexFinder::produce(), trkf::SpacePts::produce(), cluster::TrajCluster::produce(), trkf::TrackKalmanCheater::produce(), evd::GraphCluster::produce(), NuGraphInference::produce(), shower::EMShower::produce(), pma::ProjectionMatchingAlg::ProjectionMatchingAlg(), cheat::PhotonBackTrackerService::provider(), cheat::BackTrackerService::provider(), shower::EMShowerAlg::RelativeWireWidth_(), art::RPManager::RPManager(), tf::Graph::run(), nnet::ModelInterface::Run(), nnet::TfModelInterface::Run(), evd::HitSelector::SaveSeedLines(), cluster::SmallClusterFinderAlg::SelectLocalHitlist(), shower::TrackShowerSeparationAlg::SelectShowerHits(), util::SignalShaper::set_normflag(), cluster::ClusterMatchAlg::SetMCTruthModName(), cluster::ClusterMergeAlg::SetSquaredDistanceCut(), cluster::ClusterMergeAlg::SetTime2Cm(), shower::EMShowerAlg::ShowerCenter_(), shower::EMShowerAlg::ShowerDirection_(), shower::EMShowerAlg::ShowerHitRMS_(), shower::TrackShowerSeparationAlg::SpacePointsRMS(), cluster::ClusterMatchAlg::StoreSpacePoints(), trkf::TrackKalmanFitter::TrackKalmanFitter(), lcvn::PixelMapProducer< T, U >::TRes(), shower::LArPandoraShowerCheatingAlg::TrueParticleIDFromTrueChain(), pma::ProjectionMatchingAlg::validate(), art::OutputModule::writeProductDescriptionRegistry(), btutil::MCMatchAlg::~MCMatchAlg(), nnet::ModelInterface::~ModelInterface(), and geoalgo::Trajectory::~Trajectory().

290  {
291  return ArrayDumper<Vector>(v, v.size());
292  }
template<typename Vector3D >
auto lar::dump::vector3D ( Vector3D const &  v)

Returns a manipulator which will print the specified vector.

Template Parameters
Vector3Dthe type of 3D vector to be printed
Parameters
vthe vector to be printed
Returns
a manipulator

Example of usage:

TVector3 pos;
std::cout << "Position: " << lar::dump::vector3D(pos) << std::endl;

will produce an output like:

Position: { 0; 0; 0 }

Addition of specific classes can be achieved via specialization of the class VectorDumper.

Requirements

  • the type Vector3D is required to provide constant accessor methods returning the vector components, called X(), Y() and Z()
  • the values returned by the aforementioned Vector3D methods must have their insertion operator into a stream defined
  • the vector v must not fall out of scope until the insertion into the stream happens

Definition at line 326 of file DumpUtils.h.

Referenced by phot::PhotonLibraryAnalyzer::beginJob(), checkTPCcoords(), detectGlobalDriftDir(), and sim::dump::DumpMCParticle().

327  {
328  return VectorDumper<Vector3D>(v);
329  }