LArSoft  v08_31_00
Liquid Argon Software toolkit - http://larsoft.org/
Todo List
Member AcceptFindNeighbors::isNear (const BoundingBox &b) const
activating these should throw a warning or something
Member calo::CalorimetryAlg::dEdx_AMP (double dQ, double time, double pitch, unsigned int plane, double T0=0) const
The plane argument should really be for a view instead
Member calo::LinearEnergyAlg::CalculateClusterEnergy (recob::Cluster const &cluster, BeginHitIter beginHit, EndHitIter endHit) const
Describe the algorithm
Member calo::LinearEnergyAlg::CalculateHitEnergy (recob::Hit const &hit) const
document the algorithm here
Member cheat::RecoCheckAna::CheckRecoEvents (art::Event const &evt, std::string const &label, art::Handle< std::vector< recob::Event > > const &evtcol, std::vector< art::Ptr< recob::Hit > > const &allhits)
need to divy it up in the case where there is more than 1 true interaction in a spill
Member cluster::ClusterCheater::produce (art::Event &evt)
: The above encoding of the ID probably won't work for DUNE and should be revisited
Class cluster::ClusterCreator
Add the example!
Member cluster::DBcluster::produce (art::Event &evt)
: need to define start and end positions for this cluster and slopes for dTdW, dQdW
Member cluster::DBScanAlg::getSimilarity (const std::vector< double > v1, const std::vector< double > v2)
this code assumes that all planes have the same wire pitch
Member cluster::DBScanAlg::getSimilarity2 (const std::vector< double > v1, const std::vector< double > v2)
this code assumes all planes have the same wire pitch
Member cluster::HoughBaseAlg::Transform (std::vector< art::Ptr< recob::Hit > > const &hits, CLHEP::HepRandomEngine &engine, std::vector< unsigned int > *fpointId_to_clusterId, unsigned int clusterId, unsigned int *nClusters, std::vector< protoTrack > *protoTracks)

provide comment about where the 0.001 comes from

: the collection plane's characteristic hit width's are,

: on average, about 5 time samples wider than the induction plane's.

: this is hard-coded for now.

Member cluster::HoughBaseAlg::Transform (std::vector< art::Ptr< recob::Hit > > const &hits, double &slope, double &intercept)

could eventually refine this method to throw out hits that are

far from the hough line and refine the fit

Member cluster::LazyClusterParamsAlg::Width () override
provide a description of the algorithm by words
Member cluster::LineMerger::EndpointCompatibility (float sclstartwire, float sclstarttime, float sclendwire, float sclendtime, float cl2startwire, float cl2starttime, float cl2endwire, float cl2endtime)
13.5 ticks/wire. need to make this detector agnostic–spitz
Member cluster::StandardClusterParamsAlg::Width () override
provide a description of the algorithm by words
Class details::PointerToData_t< T >
Document this code and make it into a library
Class detinfo::DetectorClocks
Add a method to convert electronics time tick into electronics time.
Member detinfo::DetectorTimings::startTick () const
The example is not even supported yet!
Member detinfo::LArPropertiesServiceStandard::reconfigure (fhicl::ParameterSet const &pset) override
these values should eventually come from a database
Member detsim::DriftElectronstoPlane::produce (art::Event &evt) override

think about effects of drift between planes.

think about effects of drift between planes

Member detsim::SimDriftElectrons::produce (art::Event &evt) override

think about effects of drift between planes.

think about effects of drift between planes

check on what happens if we allow the tdc value to be

beyond the end of the expected number of ticks

Member detsim::WienerFilterAna::analyze (const art::Event &evt)
Need to change hardcoded values to an automatic determination of noise vs. signal
File electromagnetism.h
Also belong here: ampere, volt, farad, ohm...
Member evd::GraphCluster::produce (art::Event &evt)

This method appears to produce a recob::Cluster really as it is

a collection of 2D clusters from single planes

Member evd::RecoBaseDrawer::EndPoint2D (const art::Event &evt, evdb::View2D *view, unsigned int plane)
- have to verify that we are in the right TPC, but to do that we
Member evd::RecoBaseDrawer::Event3D (const art::Event &evt, evdb::View3D *view)
need a better way to grab the vertex module labels,
Member evd::RecoDrawingOptions::fCaloPSet
Why are calorimetry related drawing options in RecoDrawingOptions instead of a separate service?
Member evd::TQPad::BookHistogram ()
decide if ndivraw and ndivreco are useful
Member evd::TWireProjPad::Draw (const char *opt=0)
: Why is kSelectedColor hard coded?
Member evd::TWQProjectionView::SelectHit (int plane)
What the heck is this all about???
Member evgb::CRYHelper::Sample (simb::MCTruth &mctruth, double const &surfaceY, double const &detectorLength, double *w, double rantime=0)
Check if this time slice passes selection criteria
Member filter::MuonFilter::filter (art::Event &evt) override

: the delta wire numbers seem a bit magic,

: should also change to using Geometry::ChannelsIntersect method

Member geo::AuxDetGeometryCore::AuxDet (unsigned int const ad=0) const

what happens if it does not exist?

remove the default parameter?

Member geo::AuxDetGeometryCore::FindAuxDetAtPosition (double const worldLoc[3]) const
replace with numeric_limits<>?
Member geo::AuxDetGeometryCore::NAuxDets () const

use a AutDetID_t instead of unsigned int?

Change return type to size_t

Member geo::AuxDetGeometryCore::PositionToAuxDet (double const worldLoc[3], unsigned int &ad) const
what happens if it does not exist?
Member geo::AuxDetGeometryCore::PositionToAuxDetSensitive (double const worldLoc[3], size_t &ad, size_t &sv) const
what happens if it does not exist?
Member geo::GeometryCore::AuxDet (unsigned int const ad=0) const

what happens if it does not exist?

remove the default parameter?

Member geo::GeometryCore::ChannelsIntersect (raw::ChannelID_t c1, raw::ChannelID_t c2, double &y, double &z) const

what happens for channels from different TPCs?

what happens for channels with multiple intersection points?

Member geo::GeometryCore::Cryostat (geo::CryostatID const &cryoid) const
Make the cryostat number mandatory (as CryostatID)
Member geo::GeometryCore::CryostatBoundaries (double *boundaries, geo::CryostatID const &cid) const
What happen on invalid cryostat?
Member geo::GeometryCore::DefaultWiggle () const
Confirm the definition of wiggle: this one is taken from other doc
Member geo::GeometryCore::DetHalfHeight (geo::TPCID const &tpcid) const

deprecate this function

rename the function

Member geo::GeometryCore::DetHalfWidth (geo::TPCID const &tpcid) const

deprecate this function

rename the function

Member geo::GeometryCore::DetLength (geo::TPCID const &tpcid) const

deprecate this function

rename the function

Member geo::GeometryCore::GetCryostatVolumeName (geo::CryostatID const &cid) const

Use a cryostat ID instead

What if it does not exist?

Member geo::GeometryCore::GetLArTPCVolumeName (geo::TPCID const &tpcid) const

Use a TPCID instead

What if it does not exist?

Member geo::GeometryCore::NAuxDets () const

use a AutDetID_t instead of unsigned int?

Change return type to size_t

Change return type to size_t

Change return type to size_t

Change return type to size_t

Member geo::GeometryCore::Ncryostats () const
Change return type to size_t
Member geo::GeometryCore::NearestChannel (const double worldLoc[3], geo::PlaneID const &planeid) const
remove the integers version
Member geo::GeometryCore::NearestWire (const double worldLoc[3], geo::PlaneID const &planeid) const

remove the integers version

what happens when no wire is found?

Member geo::GeometryCore::NearestWireID (const double point[3], geo::PlaneID const &planeid) const
remove the integers version
Member geo::GeometryCore::NOpChannels () const
add explanation of the different IDs
Member geo::GeometryCore::Nplanes (unsigned int tpc=0, unsigned int cstat=0) const

Make all the arguments mandatory (as TPCID)

Change return type to size_t

what happens if TPC does not exist?

Member geo::GeometryCore::Nplanes (geo::TPCID const &tpcid) const
Change return type to size_t
Member geo::GeometryCore::NTPC (unsigned int cstat=0) const

Make the cryostat number mandatory (as CryostatID)

Change return type to size_t

what happens if it does not exist?

Member geo::GeometryCore::NTPC (geo::CryostatID const &cryoid) const
Change return type to size_t
Member geo::GeometryCore::Nviews () const
Change return type to size_t
Member geo::GeometryCore::Nwires (unsigned int p, unsigned int tpc=0, unsigned int cstat=0) const

Make all the arguments mandatory (as PlaneID)

Change return type to size_t

what happens if it does not exist?

Member geo::GeometryCore::Nwires (geo::PlaneID const &planeid) const
Change return type to size_t
Member geo::GeometryCore::OpDetGeoName (unsigned int c=0) const
Change to use CryostatID
Member geo::GeometryCore::Plane (unsigned int const p, unsigned int const tpc=0, unsigned int const cstat=0) const
remove the version with integers
Member geo::GeometryCore::PlanePitch (geo::TPCID const &tpcid, geo::PlaneID::PlaneID_t p1=0, geo::PlaneID::PlaneID_t p2=1) const

add a version with plane IDs

deprecate this function

add a default version for a given TPCID

add a version with two plane indices for a given TPCID

return the absolute value of the distance (makes the order unimportant)

document what will happen (in the future methods) with planes on different TPCs

Member geo::GeometryCore::PlaneWireToChannel (WireID const &wireid) const

Verify the raw::InvalidChannelID part

remove the integers version

Member geo::GeometryCore::PositionToAuxDet (geo::Point_t const &point, unsigned int &ad) const
what happens if it does not exist?
Member geo::GeometryCore::PositionToAuxDet (double const worldLoc[3], unsigned int &ad) const
what happens if it does not exist?
Member geo::GeometryCore::PositionToAuxDetSensitive (double const worldLoc[3], size_t &ad, size_t &sv) const
what happens if it does not exist?
Member geo::GeometryCore::PositionToAuxDetSensitive (geo::Point_t const &point, size_t &ad, size_t &sv) const
what happens if it does not exist?
Member geo::GeometryCore::SignalType (geo::PlaneID const &pid) const
verify that kMysteryType is returned on invalid plane
Member geo::GeometryCore::SignalType (raw::ChannelID_t const channel) const
verify that kMysteryType is returned on invalid channel
Member geo::GeometryCore::SurfaceY () const
check that this is actually how it is used
Member geo::GeometryCore::TPC (unsigned int const tpc=0, unsigned int const cstat=0) const
remove the version with integers
Member geo::GeometryCore::ValueInRange (double value, double min, double max) const

Use wiggle instead of 10^-6

resort source code for a bit of speed up

Member geo::GeometryCore::VolumeName (geo::Point_t const &point) const

what happens if none?

Unify the coordinates type

Member geo::GeometryCore::WireCoordinate (double YPos, double ZPos, geo::PlaneID const &planeid) const
Unify (y, z) coordinate
Member geo::GeometryCore::WirePitch (geo::PlaneID const &planeid) const

add a version with wire IDs

deprecate this function

document what will happen (in the future methods) with wires on different planes

Member geo::PlaneGeo::NearestWireID (geo::Point_t const &pos) const
When the ID is out of range, instead of throwing an exception, return an invalid wire ID with the wire number set to the non-existing wire which would be the nearest to pos.
Member geo::PlaneGeo::WidthDepthProjection_t
the following should be a PositionVector2D
Class geo::vect::CoordConstIterator< Vector >
Not fully unit-tested yet!
Member geo::WireID::planeID () const
Remove the instances of geo::WireID::planeID() in the code
File HelpMenu.cxx
This needs a lot of work if it is to actually provide help...
Member hit::DisambigCheater::InitHitToWids (const std::vector< art::Ptr< recob::Hit > > &ChHits)

: Why would an IDE xyz position be outside of a TPC?

: Why would an IDE ossociated with a hit return a nearest wire not on the hit's channel? Usually only one off.

Member hit::DisambigCheater::produce (art::Event &e) override
: Decide how to handle the hits with multiple-wid activity. For now, randomly choose.
Member hit::FFTHitFinder::produce (art::Event &evt) override

- just get the integral from the fit for totSig

need to have a disambiguation algorithm somewhere in here

- multiplicity and local_index have to be determined

Member lar::double_fwd_const_iterator
write documentation about how to use it
Class lar::sparse_vector< T >
backward iteration; reverse iterators; iterator on non-void elements only; iterator on non-void elements only, returning a pair (index;value)
Member lar::util::TrackProjectedLength (recob::Track const &track, geo::View_t view)

CAREFUL: using view to determine projected length does not work for DUNE. Need to think more about this.

is this right, or should it be dist*cosgamma???

is this right, or should it be dist*cosgamma???

Member larg4::G4BadIdeaAction::SteppingAction (const G4Step *)

Do not copy the code below. Contact Brian Rebel, Eric Church,

Bill Seligman and Andrzej Szelc for reasons why not to!

Member larg4::LArVoxelReadout::DriftIonizationElectrons (G4ThreeVector stepMidPoint, const double simTime, int trackID, unsigned short int cryostat, unsigned short int tpc)

think about effects of drift between planes

think about effects of drift between planes

check on what happens if we allow the tdc value to be

beyond the end of the expected number of ticks

Class proxy::details::OneTo01Data< Main, Aux, Metadata, Tag >
Metadata for proxy::details::OneTo01Data is not supported yet.
Member proxy::withZeroOrOneMeta (Args &&...args)
Metadata is not supported yet (the interface is apparently there though).
Member proxy::withZeroOrOneMetaAs (Args &&...args)
Metadata is not supported yet.
File RawDataDrawer.cxx
There are probably a number of glitches and shortcuts in the current preprocessing implementation. If they become a problem, they can probably be fixed on demand. Examples include:
  • no alignment of the boxes with the wire and tick numbers
  • possible border effects
  • the fact that only the maximum charge is displayed on each box , and no dynamic charge range detection is in place
  • the first drawing is performed with a grid that is not the final one (because for some reason the frame starts larger than it should and is resized later)
  • the drawing honours the zoom region the user selected, even if the viewport ends up being larger (that is, if upstream decides that the zoom region is too small and a larger area will be drawn, the additional area will be blank)
Member shwf::ShowerCheater::produce (art::Event &evt)
figure out the max transverse width of the shower in the x and y directions
Member shwf::ShowerFinder::produce (art::Event &evt)

This method appears to produce a recob::Cluster really as it is

a collection of 2D clusters from single planes

NEED TO TAKE OUT THE HOUGH LINES FROM THE PROTOSHOWERS!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

really need to determine the values of the arguments of the recob::Shower ctor

check if protoshower from further vertex is also contained in vertex nearer...

Member shwf::ShowerReco::beginJob ()

the call to geo->Nplanes() assumes this is a single cryostat and single TPC detector

need to generalize to multiple cryostats and TPCs

Member shwf::ShowerReco::produce (art::Event &evt)
really need to determine the values of the arguments of the recob::Shower ctor
File StatusBar.h
Currently unimplemented...
Member trkf::SpacePointAlg::makeSpacePoints (const art::PtrVector< recob::Hit > &hits, std::vector< recob::SpacePoint > &spts, bool useMC) const

Why are we still checking on whether this is MC or not?

Such checks should not be in reconstruction code.

Member trkf::SpacePts::produce (art::Event &evt)
really should fill the direction cosines with unique values
Member trkf::Track3DKalman::produce (art::Event &evt) override
: remove this statement, there is no place for checks on isRealData in reconstruction code
Member trkf::Track3DKalmanSPS::produce (art::Event &evt)

Should never test whether the event is real data in reconstruction algorithms

as that introduces potential data/MC differences that are very hard to track down

Remove this test as soon as possible please

Should never test whether the event is real data in reconstruction algorithms

as that introduces potential data/MC differences that are very hard to track down

Remove this test as soon as possible please

Member trkf::Track3Dreco::produce (art::Event &evt) override
: This is very bad practice and should be changed ASAP
Member util::GeometryUtilities::Get2DPointProjection (Double_t *xyz, Int_t plane) const
: this should use the cryostat and tpc as well in the NearestWire method
Member util::GeometryUtilities::Get2DPointProjectionCM (double *xyz, int plane) const
: this should use the cryostat and tpc as well in the NearestWire method
Member util::GeometryUtilities::Get2DPointProjectionCM (std::vector< double > xyz, int plane) const
: this should use the cryostat and tpc as well in the NearestWire method
Member util::GeometryUtilities::PitchInView (UInt_t plane, Double_t phi, Double_t theta) const

switch to using new Geometry::WireAngleToVertical(geo::View_t)

and Geometry::WirePitch(geo::View_t) methods

Member util::LArPropertiesServiceArgoNeuT::reconfigure (fhicl::ParameterSet const &pset) override
these values should eventually come from a database
Member vertex::PrimaryVertexFinder::produce (art::Event &evt)
replace with the real query when this module is updated to look for showers too
Member vertex::VertexFinder2D::produce (art::Event &evt)

should really get the actual vector of hits corresponding to end point

for now will get all hits from the current cluster

need to actually make tracks and showers to go into 3D vertex

currently just passing empty collections to the ctor

uncomment following lines when the shower vector actually contains showers from the art::Event

uncomment following lines when the track vector actually contains tracks from the art::Event