Public Types | Public Member Functions | Protected Attributes | List of all members
me::SlcME Class Reference

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N20-09-23/MEFinder/MEClusters.h"

Inheritance diagram for me::SlcME:
rb::Cluster me::TrkME

Public Types

enum  ESaveGeVMode { kInitializeTotalGeV = 0, kResetTotalGeV = 1 }
 

Public Member Functions

 SlcME ()
 
 ~SlcME ()
 
double MID () const
 
double DeltaT () const
 
double DistToSlc () const
 
art::Ptr< rb::ClusterParentSlc () const
 
void SetParentSlc (art::Ptr< rb::Cluster >)
 
void SetMID (double)
 
void SetDeltaT (double)
 
void SetDistToSlc (double)
 
virtual void Add (const art::Ptr< rb::CellHit > &cell, double weight=1)
 
virtual void Add (const art::PtrVector< rb::CellHit > &cells, const std::vector< double > &weights=std::vector< double >())
 
void SetID (int id)
 
const int ID () const
 
virtual double W (const rb::CellHit *chit) const
 Estimate the unmeasured coordinate of chit. More...
 
virtual bool Is3D () const
 
bool Is2D () const
 
virtual geo::View_t View () const
 kXorY for 3D clusters. More...
 
rb::Cluster Exclude (const rb::Cluster *excl) const
 Create a cluster from this one, but with the hits of excl removed. More...
 
rb::RecoHit RecoHit (const art::Ptr< rb::CellHit > &chit) const
 Return calibrated hit based on assumed W coordinate. More...
 
rb::RecoHit RecoHit (geo::View_t view, unsigned int viewIdx) const
 
rb::RecoHit RecoHit (unsigned int globalIdx) const
 
virtual void Clear ()
 Forget about all owned cell hits. More...
 
void RemoveHit (const art::Ptr< rb::CellHit > hit)
 Remove hit from current cluster. More...
 
void RemoveHit (unsigned int globalIdx)
 Remove the ith hit from current cluster. More...
 
void SetNoise (bool noise)
 Declare the cluster to consist of noise hits or not. More...
 
bool IsNoise () const
 Is the noise flag set? More...
 
void SetWeight (unsigned int globalIdx, double weight)
 Set weight of the cell at this index. More...
 
void SetWeight (geo::View_t view, unsigned int viewIdx, double weight)
 Set weight of the cell at this index in this view. More...
 
void StandardSort ()
 Put the cells in the cluster into a standard order. More...
 
void SavePrecalcTotalGeV (ESaveGeVMode savemode)
 Store the current result of TotalGeV / CalorimetricEnergy. More...
 
bool operator< (const Cluster &other) const
 
Cell counts
unsigned int NCell (geo::View_t view) const
 Number of cells in view view. More...
 
unsigned int NCell () const
 Number of cells in either view. More...
 
unsigned int NXCell () const
 Number of cells in the x-view. More...
 
unsigned int NYCell () const
 Number of cells in the y-view. More...
 
Cell Accessors
art::Ptr< rb::CellHitCell (geo::View_t view, unsigned int viewIdx) const
 Get the ith cell from view view. More...
 
art::Ptr< rb::CellHitCell (unsigned int globalIdx) const
 Get the ith cell from either view. More...
 
art::Ptr< rb::CellHitXCell (unsigned int xIdx) const
 Get the ith cell in the x-view. More...
 
art::Ptr< rb::CellHitYCell (unsigned int yIdx) const
 Get the ith cell in the y-view. More...
 
const art::PtrVector< rb::CellHit > & XCells () const
 Get all cells from the x-view. More...
 
const art::PtrVector< rb::CellHit > & YCells () const
 Get all cells from the x-view. More...
 
art::PtrVector< rb::CellHitAllCells () const
 Get all cells from both views. More...
 
std::vector< geo::OfflineChanOfflineChans () const
 Positions of all the CellHits. More...
 
std::vector< rb::WeightedHitWeightedHits () const
 Get all hits from both views, with weights attached. More...
 
double Weight (unsigned int globalIdx) const
 Weight assigned to the cell. More...
 
double Weight (geo::View_t view, unsigned int viewIdx) const
 Weight assigned to the cell. More...
 
Minima

The "lower" corner of a box containing all the hits

TVector3 MinXYZ () const
 
double MinV (geo::View_t view) const
 
double MinX () const
 
double MinY () const
 
double MinZ () const
 
double MinTNS () const
 
unsigned int MinPlane (geo::View_t view=geo::kXorY) const
 
unsigned int MinCell (geo::View_t view) const
 
Maxima

The "upper" corner of a box containing all the hits

TVector3 MaxXYZ () const
 
double MaxV (geo::View_t view) const
 
double MaxX () const
 
double MaxY () const
 
double MaxZ () const
 
double MaxTNS () const
 
unsigned int MaxPlane (geo::View_t view=geo::kXorY) const
 
unsigned int MaxCell (geo::View_t view) const
 
Means

The unweighted mean position and time of all the hits in the cluster

TVector3 MeanXYZ (rb::AveragingScheme=kDefaultScheme) const
 
double MeanV (geo::View_t view, rb::AveragingScheme scheme=kDefaultScheme) const
 
double MeanX (rb::AveragingScheme scheme=kDefaultScheme) const
 
double MeanY (rb::AveragingScheme scheme=kDefaultScheme) const
 
double MeanZ (rb::AveragingScheme scheme=kDefaultScheme) const
 
double MeanTNS (rb::AveragingScheme scheme=kDefaultScheme) const
 
void MinMaxMeanXYZ (TVector3 &lo, TVector3 &hi, TVector3 &mean, rb::AveragingScheme scheme=kDefaultScheme) const
 Gets the min/max/mean all at once, called by the functions above. More...
 
Extents

The size of a box containing all the hits

TVector3 ExtentXYZ () const
 
double ExtentV (geo::View_t view) const
 
double ExtentX () const
 
double ExtentY () const
 
double ExtentZ () const
 
unsigned int ExtentPlane (geo::View_t view=geo::kXorY) const
 
unsigned int ExtentCell (geo::View_t view) const
 
double ExtentTNS () const
 
Connectedness measures
int MostContiguousPlanes (geo::View_t view) const
 Longest run of adjacent planes with hits. More...
 
int MostMissingPlanes (geo::View_t view) const
 Longest run of adjacent planes with no hits. More...
 
int NMissingPlanes (geo::View_t view) const
 Total number of missing planes in cluster. More...
 

Protected Member Functions

Internal helpers
void EnsureWeightAlloc ()
 Helper. Resizes weights vectors to match cell vectors. More...
 

Protected Attributes

double fMID
 
double fDeltaT
 
double fDistToSlc
 
art::Ptr< rb::ClusterfParentSlc
 
geo::View_t fView
 view this cluster is in More...
 
art::PtrVector< rb::CellHitfXCell
 collection of x-view cells in cluster More...
 
art::PtrVector< rb::CellHitfYCell
 collection of y-view cells in cluster More...
 
std::vector< double > fXWeights
 Weights, matching cell indexing. More...
 
std::vector< double > fYWeights
 May be empty, means all weights are 1. More...
 
int fID
 ID for cluster. More...
 
bool fNoiseCluster
 flag for whether this is a noise cluster More...
 
double fPrecalcTotalGeV
 -1 = uninitialized More...
 

Totals

double TotalADC () const
 Sum of the ADC of all the contained hits. More...
 
double TotalPE () const
 Sum of the PE value of all the contained hits. More...
 
double TotalGeV (EEnergyCalcScheme escheme=kRecomputeEnergy) const
 Simple sum of the estimated GeV of all the hits. More...
 
double TotalWeight () const
 Sum of all the weights. The effective number of hits. More...
 
double CalorimetricEnergy (EEnergyCalcScheme escheme=kRecomputeEnergy) const
 Simple estimate of neutrino energy. More...
 
enum  EEnergyCalcScheme { kRecomputeEnergy = 0, kUsePrecalcEnergy = 1 }
 

Detailed Description

Definition at line 9 of file MEClusters.h.

Member Enumeration Documentation

Enumerator
kRecomputeEnergy 

Default. Ask Calibrator about each hit, and sum.

kUsePrecalcEnergy 

Use a value computed by a previous call to SavePrecalcTotalGeV.

Definition at line 177 of file Cluster.h.

177  {
178  kRecomputeEnergy = 0, ///< Default. Ask Calibrator about each hit, and sum
179  kUsePrecalcEnergy = 1 ///< Use a value computed by a previous call to \ref SavePrecalcTotalGeV
180  };
Use a value computed by a previous call to SavePrecalcTotalGeV.
Definition: Cluster.h:179
Default. Ask Calibrator about each hit, and sum.
Definition: Cluster.h:178
enum rb::Cluster::ESaveGeVMode
inherited
Enumerator
kInitializeTotalGeV 

Default, this is the initial/only call.

kResetTotalGeV 

Altering the already-set value is not an error.

Definition at line 281 of file Cluster.h.

281  {
282  kInitializeTotalGeV = 0, ///< Default, this is the initial/only call
283  kResetTotalGeV = 1 ///< Altering the already-set value is not an error
284  };
Default, this is the initial/only call.
Definition: Cluster.h:282
Altering the already-set value is not an error.
Definition: Cluster.h:283

Constructor & Destructor Documentation

me::SlcME::SlcME ( )

Definition at line 5 of file MEClusters.cxx.

5 : rb::Cluster() {}
A collection of associated CellHits.
Definition: Cluster.h:47
me::SlcME::~SlcME ( )

Definition at line 6 of file MEClusters.cxx.

6 {}

Member Function Documentation

void rb::Cluster::Add ( const art::Ptr< rb::CellHit > &  cell,
double  weight = 1 
)
virtualinherited

Definition at line 84 of file Cluster.cxx.

References ana::assert(), rb::Cluster::EnsureWeightAlloc(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::fView, rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, rb::Cluster::fYWeights, geo::kX, geo::kY, art::PtrVector< T >::push_back(), and rb::CellHit::View().

Referenced by rb::Cluster::Add(), fuzz::FuzzyKVertex::AddProng(), bpfit::BPFTmvaTrainer::analyze(), bpf::BPFCVNAna::analyze(), htk::HoughTrack::analyze(), rb::Cluster::Cluster(), ddthelpers::cluster_hits(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), tdslicer::TDSlicer::DBSCAN(), slicemergeviews::SliceMergeViews::DoMerge(), rb::Cluster::Exclude(), comi::NumiFiltering::filter(), mono::MonopoleCluster::filter(), bsf::BremShowerFilter::filter(), mono::MonopoleTrack::filter(), mono::MonopoleCluster::find_isolated_hits(), trk::KalmanTrack::FindTracks(), cosrej::CosRejFxs::getActivity(), numusand::NumuSandFxs::getActivityVtx(), ndreco::NDRecoFxs::getProngActivity(), ndreco::NDRecoFxs::getProngDedx(), ndreco::NDRecoFxs::getTrackActivity(), ndreco::NDRecoFxs::getTrackDedx(), trk::KalmanTrackMerge::JoinTracks(), trk::WindowTrackingAlg::LookForBremsstrahlungHits(), mono::Cluster::make(), me::MEFinder::MakeSlcME(), fuzz::ViewMatchAlg::MakeTestProng(), nerd::ViewMatchAlg::MakeTestProng(), trk::WindowTrackingAlg::MakeTrack(), airshower::AirSlicer::MakeTrackSlices(), me::MEFinder::MakeTrkME(), numue::NumuEAlg::MakeVertexCluster(), fuzz::ViewMatchAlg::Matching(), nerd::ViewMatchAlg::Matching(), trk::KalmanTrackMerge::MatchTracks(), cheat::BackTracker::MCTruthToCluster(), qeef::QeFinder::produce(), slicer::Slicer4D::produce(), nuesand::FillNueSandbox::produce(), slid::Recluster::produce(), numusand::FillSandbox::produce(), cvn::CVNCosmicMapper::produce(), zcl::SPCluster::produce(), airshower::AirSlicer::produce(), zcl::SMMCluster::produce(), sn::SNSlicer::produce(), zcl::FMMTracker::produce(), sn::SupernovaMCCluster::produce(), cvn::CVNMapper::produce(), dif::DiFShowerFinder::produce(), bpfit::BPFEnergyEstimator::produce(), bpfit::BPFEnergyEstimatorOnly::produce(), tdslicer::TDSlicer::produce(), trk::WindowTrackingAlg::ShortTrack(), trk::WindowTrackingAlg::ShortTrackExtraPlane(), airshower::AirSlicer::TemporalClusters(), dt::Cand::ToTrack(), htk::Track3D::Track3D(), mono::Track3D::Track3D(), zcl::FMMTracker::Tracking2D(), slicemergeviews::SliceMergeViews::TrimNoise(), tdslicer::TDSlicer::TrimNoise(), trk::KalmanTrackMerge::ViewMergeTracks(), slicer::MMSlicer::WindowSlice(), and slicer::Slicer::WindowSlice().

85  {
86  fPrecalcTotalGeV = -1; // Invalidate any cached value
87 
88  assert(weight >= 0 && weight <= 1);
89 
90  // Are we optimizing (omitting) the weights storage?
91  const bool optWeights = (weight == 1 && fXWeights.empty() && fYWeights.empty());
92  if(!optWeights) EnsureWeightAlloc();
93 
94  if(cell->View() == geo::kX){
95  assert(fView != geo::kY);
96  fXCell.push_back(cell);
97  if(!optWeights) fXWeights.push_back(weight);
98  }
99  else{
100  assert(fView != geo::kX);
101  fYCell.push_back(cell);
102  if(!optWeights) fYWeights.push_back(weight);
103  }
104  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
const Var weight
geo::View_t View() const
Definition: CellHit.h:41
Vertical planes which measure X.
Definition: PlaneGeo.h:28
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:441
geo::View_t fView
view this cluster is in
Definition: Cluster.h:316
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
assert(nhit_max >=nhit_nbins)
void EnsureWeightAlloc()
Helper. Resizes weights vectors to match cell vectors.
Definition: Cluster.cxx:712
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
void rb::Cluster::Add ( const art::PtrVector< rb::CellHit > &  cells,
const std::vector< double > &  weights = std::vector<double>() 
)
virtualinherited

Definition at line 107 of file Cluster.cxx.

References rb::Cluster::Add(), ana::assert(), art::PtrVector< T >::empty(), getGoodRuns4SAM::n, and art::PtrVector< T >::size().

109  {
110  const unsigned int N = cells.size();
111 
112  assert(weights.empty() || weights.size() == N);
113 
114  for(unsigned int n = 0; n < N; ++n){
115  assert(weights.empty() || (weights[n] >= 0 && weights[n] <= 1));
116  Add(cells[n], weights.empty() ? 1 : weights[n]);
117  }
118  }
virtual void Add(const art::Ptr< rb::CellHit > &cell, double weight=1)
Definition: Cluster.cxx:84
Var weights
size_type size() const
Definition: PtrVector.h:308
assert(nhit_max >=nhit_nbins)
art::PtrVector< rb::CellHit > rb::Cluster::AllCells ( ) const
inherited

Get all cells from both views.

Definition at line 180 of file Cluster.cxx.

References plot_validation_datamc::c, rb::Cluster::fXCell, rb::Cluster::fYCell, art::PtrVector< T >::push_back(), and art::PtrVector< T >::size().

Referenced by caf::AddSlcMEToVec(), caf::AddTrkMEToVec(), qeef::QeFinderVal::analyze(), calib::TestParticleCorrections::analyze(), sn::SNSlicerAna::analyze(), murem::MuonRemoveAna::analyze(), calib::HitEfficiency::analyze(), validation::NoiseClusterAnalysis::analyze(), showere::ShowerEnergyAna::analyze(), hough::HoughValidate::analyze(), zcl::FastMMStudy::analyze(), upmuana::UpMuRecoAna::analyze(), upmuana::UpMuAnalysis::analyze(), htk::HoughTrack::analyze(), murem::MRCCAna::analyze(), trk::KalmanTrackAna::CheckAssociations(), air::AirKalmanAna::CheckAssociations(), cheat::RecoCheckAna::CheckRecoClusters(), trk::KalmanTrackAna::CheckRecoTracks(), trk::WindowTrackingAlg::CheckTrackDirectionInY(), bpfit::dEdxCalculator::computeDEDX(), skim::SkimmingUtils::CopySlice(), murem::TrackCleanUpAlg::DeDxInPlane(), nnbar::NNbarUtilities::energyBalancingVertex(), dt::ViewMerger::FakeThirdDimension(), caf::FillDiFShowerVars(), caf::FillDiFVars(), calib::StopperThreshold::FillHist(), calib::CosmicTrends::FillHistograms(), caf::FillProngVars(), caf::FillShowerVars(), calib::StopperThreshold::FillTree(), trk::CosmicTrackAna::FillTrueInfo(), showere::ShowerEnergyFilterMC::filter(), sn::SNSlicer::FinalizeCluster(), cvn::Get2DProngEfficiencyByPDG(), cvn::Get2DProngEnergyByPDG(), cvn::Get2DProngPurityByPDG(), nnbar::NNbarUtilities::getCoordinateOfHits(), nuesand::FillNueSandbox::GetdEdx(), numusand::NumuSandFxs::getMissingE(), nnbar::NNbarUtilities::getMultipleCellFraction(), ndreco::NDRecoFxs::getProngActivity(), ndreco::NDRecoFxs::getProngDedx(), cvn::GetProngEfficiencyByPDG(), cvn::GetProngEnergyByPDG(), cvn::GetProngPurityByPDG(), nnbar::NNbarUtilities::getSliceBoundary(), nnbar::NNbarUtilities::getSliceTimeWindow(), ndreco::NDRecoFxs::getTrackActivity(), ndreco::NDRecoFxs::getTrackDedx(), nnbar::NNbarUtilities::getXyAsymmetry(), nnbar::NNbarUtilities::isFebFlasher(), novaddt::HorizontalMuonAna::IsHorzMuonTrack(), caf::IsTrueDiF(), calib::RockMuonStopperSelection::IsTrulyContainedStopper(), calib::StopperSelection::IsTrulyContainedStopper(), calib::RockMuonStopperSelection::IsTrulyInFiducial(), calib::ThroughgoingSelection::IsTrulyUncontained(), trk::KalmanTrackMerge::JoinTracks(), dt::ViewMerger::JoinTracks(), trk::WindowTrackingAlg::MakeTrack(), airshower::AirSlicer::MakeTrackSlices(), murem::FindParent::MatchToOrigSlice(), numue::NumuEAlg::MCTruthEnergyVariables(), murem::MuonRemove::MuonInfo(), mono::Monopole::n_mc_hits(), dq::FlasherFinder::Nflash(), zcl::FastMonopoleTriggers::NumberOfCellsPerLength(), zcl::FastMMStudy::NumberOfCellsPerLength(), zcl::FastMonopoleTriggers::NumberOfHitsInOverlapPlanesCut(), zcl::FastMMStudy::NumberOfHitsInOverlapPlanesCut(), mono::operator<<(), skim::ParametersNumu::ParametersNumu(), calib::PCHitsList::ProcessTrackForBelowThresholdHits(), calib::PCHitsList::ProcessTrackForFLSHits(), trk::TrkAssn::produce(), slid::Recluster::produce(), numusand::FillSandbox::produce(), hough::MultiHoughT::produce(), cosrej::CosRej::produce(), numue::NumuEnergy::produce(), ndreco::NDReco::produce(), earms::ElasticArmsHS::produce(), vdt::VertexDT::produce(), upmuana::UpMuProb::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), caf::CAFMaker::produce(), cvn::ProngClassify(), sn::SliceRemover::remove(), murem::MuonRemove::RemoveByEfficiency(), trk::WindowTrackingAlg::SetTrackEndPoints(), trk::WindowTrackingAlg::ShortTrack(), cheat::BackTracker::SliceToMCTruth(), cheat::BackTracker::SliceToNeutrinoInteractions(), cosrej::MakeNueCosRej::SparsenessAsymmetry(), zcl::FastMonopoleTriggers::StdevCellsPerPlane(), zcl::FastMMStudy::StdevCellsPerPlane(), htk::Track3D::time_fit(), mono::Track3D::time_fit(), htk::Track3D::Track3D(), mono::Track3D::Track3D(), slid::NuEEnergyAlg::VertexEnergy(), zcl::FastMonopoleTriggers::WeightedCenterCut(), zcl::FastMMStudy::WeightedCenterCut(), moonshadowana::MoonShadowAna::WriteTrackInfo(), moonshadowana::MoonShadowAnaHough::WriteTrackInfo(), rb::Cluster::YCells(), dt::ViewMerger::ZipVerticalTracks(), and rb::Track::ZipWith().

181  {
183  for(size_t c = 0; c < fXCell.size(); ++c) all.push_back(fXCell[c]);
184  for(size_t c = 0; c < fYCell.size(); ++c) all.push_back(fYCell[c]);
185 
186  return all;
187  }
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:441
size_type size() const
Definition: PtrVector.h:308
double rb::Cluster::CalorimetricEnergy ( EEnergyCalcScheme  escheme = kRecomputeEnergy) const
inherited

Simple estimate of neutrino energy.

Uses a simple scale factor to correct for dead material and thresholds, could be more advanced, but this is simple enough to use for preselection etc.

Definition at line 439 of file Cluster.cxx.

References calib::Calibrator::GetGeVToCalorimetricScale(), and rb::Cluster::TotalGeV().

Referenced by caf::AddSlcMEToVec(), caf::AddTrkMEToVec(), tbem::TBRecoAna::analyze(), ncid::CompareByCalEnergy(), cosrej::CompareByCalEnergy(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillHadClustVars(), caf::FillProngVars(), caf::FillShowerVars(), caf::FillSliceVars(), xsrec::MakeXSecCCPi0Inc::GetPhLL(), numue::NumuEAlg::GetUCMuonENonSingle(), numue::NumuEAlg::GetUCMuonESingle(), SliceLID::BasicProngVars::initBasicVars(), LSTME::BasicProngVars::initBasicVars(), me::MEFinder::MakeSlcME(), me::MEFinder::MakeTrkME(), skim::ParametersNue::ParametersNue(), skim::ParametersNumu::ParametersNumu(), me::MEFinder::PassesMEPresel(), presel::LEMPresel::produce(), numusand::FillSandbox::produce(), presel::NuePresel::produce(), cosrej::CosRej::produce(), cosrej::MakeNueCosRej::produce(), caf::CAFMaker::produce(), showerByEnergyNue(), showerByEnergyNumu(), lem::LEMSummarizer::SliceToLEMInput(), and ncid::NCNNKeras::TransMomFraction().

440  {
442  return cal->GetGeVToCalorimetricScale()*TotalGeV(escheme);
443  }
double GetGeVToCalorimetricScale() const
For use by RecoBase classes.
double TotalGeV(EEnergyCalcScheme escheme=kRecomputeEnergy) const
Simple sum of the estimated GeV of all the hits.
Definition: Cluster.cxx:378
art::Ptr< rb::CellHit > rb::Cluster::Cell ( geo::View_t  view,
unsigned int  viewIdx 
) const
inherited

Get the ith cell from view view.

Definition at line 145 of file Cluster.cxx.

References ana::assert(), geo::kX, geo::kXorY, geo::kY, rb::Cluster::XCell(), and rb::Cluster::YCell().

Referenced by dqsf::DQSpillFlags::AccumulateSyncMetric(), rb::HitMap::Add(), fuzz::FuzzyKVertex::AddProng(), dif::DiFShowerFinder::adjustPlane(), dif::DiFShowerFinder::adjustPlane_end(), tut::TutAnalyzer::analyze(), qeef::QeFinderVal::analyze(), rsim::RecordNoiseSpectrumFile::analyze(), chaninfo::CosmicEff::analyze(), remid::ReMIdValidate::analyze(), comi::CosmicMetrics::analyze(), dprf::ChannelPlots::analyze(), calib::TestParticleCorrections::analyze(), remid::ReMIdTrain::analyze(), mcchk::MonopoleAna::analyze(), dprf::TrackPlots::analyze(), mcchk::RockAna::analyze(), align::Alignment::analyze(), align::SplitTracks::analyze(), murem::MuonRemoveAna::analyze(), pa::ClusterEva::analyze(), vf::TrackEva::analyze(), comi::NumiFilteringAna::analyze(), tbem::TBRecoAna::analyze(), zcl::FmmTriggerAna::analyze(), zcl::FmmTrackerAna::analyze(), zcl::FmmTrackerValidation::analyze(), showere::ShowerEnergyAna::analyze(), bpfit::BPFTmvaTrainer::analyze(), bpf::BPFCVNAna::analyze(), calib::CosmicTrends::analyze(), calib::CalibAna::analyze(), ncs::Xeff::analyze(), ncs::ROCKMRE::analyze(), ncs::NCAna::analyze(), me::MEFinder::BestSlcMatch(), fuzz::ViewMatchAlg::CalcEnergyProfile(), nerd::ViewMatchAlg::CalcEnergyProfile(), trk::KalmanTrackMerge::CalcMatchScore(), slid::ParticleIDAlg::CalcPlaneHits(), trk::KalmanTrackMerge::CanJoinTracks(), slid::NuEEnergyAlg::CellEnergy(), murem::TrackCleanUpAlg::CleanUpTrack(), bpfit::dEdxCalculator::computeDEDX(), remid::ReMIdTrain::ContainedEvent(), remid::ReMIdDedx::ContainedEvent(), remid::ReMIdDedxRock::ContainedEvent(), remid::ReMIdDedxStudies::ContainedEvent(), cvn::RegPixelMapProducer::CreateMapGivenBoundary(), cvn::PixelMapProducer::CreateMapGivenBoundary(), cvn::RegPixelMapProducer::CreateMapGivenShowerVertex(), cvn::RegPixelMapProducer::CreateMapGivenVertex(), jmshower::RecoJMShower::DepositEnergy(), evd::RecoBaseDrawer::DrawTrack2D(), skim::ParametersNumu::EarliestLatestHitPos(), jmshower::RecoJMShower::Energy(), dif::DiFShowerFinder::eparm(), rb::Cluster::Exclude(), dt::ViewMerger::Extremes(), caf::FillHadClustVars(), calib::StopperThreshold::FillHist(), bpfit::BreakPoint::FillHitList(), sn::SupernovaAna::FillPlaneSeperations(), dqsf::DQSpillFlags::FillPopulatedDCMs(), caf::FillProngVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillSliceInfo(), caf::FillSliceVars(), trk::CosmicTrackAna::FillTrackHistograms(), calib::StopperThreshold::FillTree(), comi::NumiFiltering::filter(), bsf::BremShowerFilter::filter(), showere::ShowerEnergyFilterMC::filter(), cvn::RegPixelMapProducer::FindCenterMedian(), cvn::PixelMapProducer::FindCenterMedian(), airshower::AirSlicer::FindNeighbors(), bsf::BremShowerFilter::findShowerByReco(), dif::DiFShowerFinder::findShowerByReco(), trk::KalmanTrack::FindTracks(), trk::CosmicTrackUtilities::FindTriCells(), cvn::RegPixelMapProducer::FindVertexMaxGap(), cvn::PixelMapProducer::FindVertexMaxGap(), cvn::RegPixelMapProducer::FindVertexWindowThreshold(), cvn::PixelMapProducer::FindVertexWindowThreshold(), bpfit::DimuonFitter::FindVertexZ(), bpfit::BreakPoint::FitTracks(), bpfit::DimuonFitter::FitView(), nuesand::FillNueSandbox::FracAngChanges(), nuesand::FillNueSandbox::FracModalHits(), nuesand::FillNueSandbox::FracNonContiguous(), numusand::NumuSandFxs::getActivity(), numusand::NumuSandFxs::getAveTrackdEdx(), numusand::NumuSandFxs::getAveTrackdEdxLast4Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast6Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast8Cells(), trackinfo::TrackInfoFxs::getAveTrackdEdxLastCells(), cosrej::CosRejFxs::getBBC(), evd::SliceNavigator::GetBounds(), evd::SliceNavigator::GetBox(), evd::RecoBaseDrawer::GetClusterOutlines(), evd::RecoBaseDrawer::GetClusterOutlinesConvexHull(), nuesand::FillNueSandbox::GetdEdx(), cosrej::CosRejFxs::getFits(), jmshower::RecoJMShower::GetPlaneCentroidCell(), jmshower::RecoJMShower::GetPlaneE1Cell(), jmshower::JMShower::GetPlaneHits(), jmshower::RecoJMShower::GetRVPStats(), jmshower::JMShower::GetTransHits(), calib::PCHitsList::GetTrueEnergyPathAndLightForCell(), slid::DeconvolveAlg::GetWeights(), slid::NuEEnergyAlg::HadronicDepEnergy(), rb::HitList::HitList(), cvn::HitNuIndex(), tf::TimingFitAlg::HoughFit(), zcl::FastMonopoleTriggers::is_trigger_by_epoch1_fmmtrigger(), trk::CosmicTrackSelection::IsCalibTrack(), calib::RockMuonStopperSelection::IsContainedStopper(), calib::PCHitsList::IsGoodTrack(), trk::CosmicTrackAlg::IsTrackDownstreamFromTiming(), trk::KalmanTrackMerge::JoinTracks(), fuzz::ViewMatchAlg::MakeTestProng(), nerd::ViewMatchAlg::MakeTestProng(), trk::CosmicTrackAlg::MakeTrack(), me::MEFinder::MakeTrkME(), murem::FindParent::MatchToOrigSlice(), rb::Cluster::MaxCell(), nuesand::FillNueSandbox::MaxGap(), nuesand::FillNueSandbox::MaxHits(), rb::Cluster::MaxPlane(), rb::Cluster::MaxTNS(), rb::Cluster::MeanTNS(), dt::DiscreteTracker::MergeParasiteTracks(), rb::Cluster::MinCell(), nerd::NERDProng::MinHitClusterDist(), me::MEFinder::MinHitSlcDist(), rb::Cluster::MinMaxMeanXYZ(), rb::Cluster::MinPlane(), rb::Cluster::MinTNS(), rb::Cluster::MostContiguousPlanes(), rb::Cluster::MostMissingPlanes(), murem::MuonRemove::MuonInfo(), dif::DiFShowerFinder::muonstub(), rb::Cluster::NCell(), numue::NumuEAlg::NDEnergy(), numue::NumuEAlg::NDTrackEnergySplitting(), rb::Cluster::NMissingPlanes(), zcl::FmmTriggerEvd::NumberOfCellsPerLength(), zcl::FmmTriggerEvd::NumberOfHitsInOverlapPlanesCut(), zcl::FastMonopoleTriggers::NumberOfSurfaceHits(), zcl::FastMMStudy::NumberOfSurfaceHits(), rb::Cluster::OfflineChans(), skim::ParametersNumu::ParametersNumu(), zcl::FastMonopoleTriggers::passed_epoch2_fmmtrigger(), rb::Track::PlaneDirMap(), slid::ParticleIDAlg::PlaneRadius(), calib::PCHitsList::ProcessTrack(), calib::PCHitsList::ProcessTrackTrajectory(), trk::TrkAssn::produce(), vf::VertexFinder::produce(), qeef::QeFinder::produce(), hv::HoughVertex::produce(), nuesand::FillNueSandbox::produce(), slid::Recluster::produce(), presel::NuePresel::produce(), numusand::FillSandbox::produce(), lem::Preselection::produce(), slid::SliceLIDBuilder::produce(), zcl::SPCluster::produce(), earms::ElasticArmsHS::produce(), lem::MakeLibrary::produce(), dt::DiscreteTracker::produce(), zcl::SMMCluster::produce(), zcl::FMMTracker::produce(), zcl::FmmTriggerEvd::produce(), jmshower::NueSel::produce(), dif::DiFShowerFinder::produce(), rvp::RecVarPID::produce(), jmshower::NueSelLID::produce(), bpfit::BPFEnergyEstimator::produce(), bpfit::BPFEnergyEstimatorOnly::produce(), caf::CAFMaker::produce(), slid::ParticleIDAlg::Radius(), jmshower::RecoJMShower::Radius(), jmshower::RecoJMShower::RadiusV(), rb::Cluster::RecoHit(), jmshower::RecoJMShower::RecoShowers(), murem::MuonRemove::RemoveByTruth(), trk::KalmanTrack::RemoveHitsFromSignal(), trk::KalmanTrackMerge::ShiftInterpolationPoints(), lem::MakeLibrary::SliceMeanPosEWeighted(), lem::MakeLibrary::SliceOrigin(), lem::LEMSummarizer::SliceToLEMInput(), zcl::FmmTriggerEvd::StdevCellsPerPlane(), calib::StopperThreshold::testPath(), rb::Cluster::TotalADC(), dt::ViewMerger::TotalChargePerView(), rb::Prong::TotalLength(), rb::Cluster::TotalPE(), trk::CosmicTrackUtilities::TrackResiduals(), trk::KalmanTrackMerge::ViewMergeTracks(), rb::Prong::W(), rb::Track::W(), and rb::Cluster::WeightedHits().

147  {
148  switch(view){
149  case geo::kX: return XCell(viewIdx);
150  case geo::kY: return YCell(viewIdx);
151  case geo::kXorY: return Cell(viewIdx);
152  default: assert(0 && "Unknown view");
153  }
154  }
art::Ptr< rb::CellHit > XCell(unsigned int xIdx) const
Get the ith cell in the x-view.
Definition: Cluster.cxx:157
X or Y views.
Definition: PlaneGeo.h:30
Vertical planes which measure X.
Definition: PlaneGeo.h:28
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
art::Ptr< rb::CellHit > YCell(unsigned int yIdx) const
Get the ith cell in the y-view.
Definition: Cluster.cxx:165
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
art::Ptr< rb::CellHit > rb::Cluster::Cell ( unsigned int  globalIdx) const
inherited

Get the ith cell from either view.

Definition at line 173 of file Cluster.cxx.

References rb::Cluster::NXCell(), rb::Cluster::XCell(), and rb::Cluster::YCell().

174  {
175  if(globalIdx < NXCell()) return XCell(globalIdx);
176  return YCell(globalIdx-NXCell());
177  }
art::Ptr< rb::CellHit > XCell(unsigned int xIdx) const
Get the ith cell in the x-view.
Definition: Cluster.cxx:157
art::Ptr< rb::CellHit > YCell(unsigned int yIdx) const
Get the ith cell in the y-view.
Definition: Cluster.cxx:165
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
void rb::Cluster::Clear ( )
virtualinherited

Forget about all owned cell hits.

Virtual function because derived classes may have more stuff to clear

Definition at line 279 of file Cluster.cxx.

References art::PtrVector< T >::clear(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, and rb::Cluster::fYWeights.

Referenced by bsf::BremShowerFilter::filter(), mono::Cluster::make(), calib::PCHitsList::ProcessTrackForFLSHits(), nuesand::FillNueSandbox::produce(), cvn::CVNCosmicMapper::produce(), jmshower::RecoJMShower::RecoShowers(), and rb::Cluster::YCells().

280  {
281  fPrecalcTotalGeV = -1; // Invalidate any cached value
282 
283  fXCell.clear();
284  fYCell.clear();
285  fXWeights.clear();
286  fYWeights.clear();
287  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
void clear()
Definition: PtrVector.h:537
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
double me::SlcME::DeltaT ( ) const
double me::SlcME::DistToSlc ( ) const

Definition at line 12 of file MEClusters.cxx.

References fDistToSlc.

Referenced by caf::AddSlcMEToVec(), me::MEFinder::MakeSlcME(), me::MEFinder::MakeTrkME(), and me::MEFinder::PassesMEPresel().

13 { return fDistToSlc; }
double fDistToSlc
Definition: MEClusters.h:29
void rb::Cluster::EnsureWeightAlloc ( )
protectedinherited

Helper. Resizes weights vectors to match cell vectors.

Definition at line 712 of file Cluster.cxx.

References rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, rb::Cluster::fYWeights, and art::PtrVector< T >::size().

Referenced by rb::Cluster::Add(), and rb::Cluster::SetWeight().

713  {
714  if(fXWeights.size() != fXCell.size()) fXWeights.resize(fXCell.size(), 1);
715  if(fYWeights.size() != fYCell.size()) fYWeights.resize(fYCell.size(), 1);
716  }
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
size_type size() const
Definition: PtrVector.h:308
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
rb::Cluster rb::Cluster::Exclude ( const rb::Cluster excl) const
inherited

Create a cluster from this one, but with the hits of excl removed.

Definition at line 233 of file Cluster.cxx.

References rb::Cluster::Add(), rb::Cluster::Cell(), rb::Cluster::fID, rb::Cluster::fNoiseCluster, rb::Cluster::fView, MECModelEnuComparisons::i, calib::j, genie::utils::mec::J(), rb::Cluster::NCell(), runNovaSAM::ret, rb::Cluster::SetNoise(), and rb::Cluster::Weight().

Referenced by mono::MonopoleCluster::filter(), slid::Recluster::produce(), slid::NuEEnergyAlg::VertexEnergy(), and rb::Cluster::YCells().

234  {
236  ret.SetNoise(fNoiseCluster);
237 
238  const unsigned int I = NCell();
239  const unsigned int J = excl->NCell();
240  for(unsigned int i = 0; i < I; ++i){
241  const art::Ptr<rb::CellHit> chit = Cell(i);
242  bool clash = false;
243  for(unsigned int j = 0; j < J; ++j){
244  if(excl->Cell(j) == chit){
245  clash = true;
246  break;
247  }
248  } // end for j
249  if(!clash) ret.Add(chit, Weight(i));
250  }
251 
252  if(ret.NCell() == 0)
253  mf::LogWarning("Cluster") << "Exclude created empty cluster";
254 
255  return ret;
256  }
unsigned int NCell(geo::View_t view) const
Number of cells in view view.
Definition: Cluster.cxx:134
double J(double q0, double q3, double Enu, double ml)
Definition: MECUtils.cxx:141
A collection of associated CellHits.
Definition: Cluster.h:47
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
geo::View_t fView
view this cluster is in
Definition: Cluster.h:316
bool fNoiseCluster
flag for whether this is a noise cluster
Definition: Cluster.h:322
const double j
Definition: BetheBloch.cxx:29
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
int fID
ID for cluster.
Definition: Cluster.h:321
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
unsigned int rb::Cluster::ExtentCell ( geo::View_t  view) const
inherited

Definition at line 570 of file Cluster.cxx.

References rb::Cluster::MaxCell(), and rb::Cluster::MinCell().

Referenced by sn::SNSlicerAna::analyze(), sn::SNSlicer::ClusterIsGood(), and rb::Cluster::ExtentPlane().

571  {
572  return MaxCell(view)-MinCell(view)+1;
573  }
unsigned int MaxCell(geo::View_t view) const
Definition: Cluster.cxx:518
unsigned int MinCell(geo::View_t view) const
Definition: Cluster.cxx:472
unsigned int rb::Cluster::ExtentPlane ( geo::View_t  view = geo::kXorY) const
inlineinherited
double rb::Cluster::ExtentTNS ( ) const
inlineinherited
double rb::Cluster::ExtentV ( geo::View_t  view) const
inlineinherited

Definition at line 246 of file Cluster.h.

References rb::Cluster::MaxV(), and rb::Cluster::MinV().

246 {return MaxV(view)-MinV(view);}
double MinV(geo::View_t view) const
Definition: Cluster.cxx:454
double MaxV(geo::View_t view) const
Definition: Cluster.cxx:500
double rb::Cluster::ExtentX ( ) const
inlineinherited

Definition at line 247 of file Cluster.h.

References rb::Cluster::ExtentXYZ().

247 {return ExtentXYZ().X();}
TVector3 ExtentXYZ() const
Definition: Cluster.h:245
TVector3 rb::Cluster::ExtentXYZ ( ) const
inlineinherited

Definition at line 245 of file Cluster.h.

References rb::Cluster::MaxXYZ(), and rb::Cluster::MinXYZ().

Referenced by rb::Cluster::ExtentX(), rb::Cluster::ExtentY(), and rb::Cluster::ExtentZ().

245 {return MaxXYZ()-MinXYZ();}
TVector3 MaxXYZ() const
Definition: Cluster.cxx:492
TVector3 MinXYZ() const
Definition: Cluster.cxx:446
double rb::Cluster::ExtentY ( ) const
inlineinherited

Definition at line 248 of file Cluster.h.

References rb::Cluster::ExtentXYZ().

248 {return ExtentXYZ().Y();}
TVector3 ExtentXYZ() const
Definition: Cluster.h:245
double rb::Cluster::ExtentZ ( ) const
inlineinherited

Definition at line 249 of file Cluster.h.

References rb::Cluster::ExtentXYZ().

Referenced by air::AirFilter::parallel_muon_slice().

249 {return ExtentXYZ().Z();}
TVector3 ExtentXYZ() const
Definition: Cluster.h:245
const int rb::Cluster::ID ( ) const
inlineinherited
bool rb::Cluster::Is2D ( ) const
inlineinherited
virtual bool rb::Cluster::Is3D ( ) const
inlinevirtualinherited

Reimplemented in rb::Prong.

Definition at line 95 of file Cluster.h.

References rb::Cluster::fXCell, rb::Cluster::fYCell, and art::PtrVector< T >::size().

Referenced by rb::Cluster::Is2D(), rb::operator<<(), and dif::DiFShowerFinder::produce().

95 {return ((fXCell.size() > 0) && (fYCell.size() > 0));}
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
size_type size() const
Definition: PtrVector.h:308
bool rb::Cluster::IsNoise ( ) const
inlineinherited

Is the noise flag set?

Definition at line 163 of file Cluster.h.

References rb::Cluster::fNoiseCluster, rb::Cluster::SetWeight(), rb::Cluster::TotalADC(), rb::Cluster::TotalPE(), and ana::weight.

Referenced by qeef::QeFinderVal::analyze(), rsim::RecordNoiseSpectrumFile::analyze(), tut::RecoValidationTutorial::analyze(), calib::TestParticleCorrections::analyze(), mcchk::MonopoleAna::analyze(), sn::SupernovaAna::analyze(), comi::DataCheck::analyze(), validation::NoiseClusterAnalysis::analyze(), comi::NumiFilteringAna::analyze(), showere::ShowerEnergyAna::analyze(), hough::HoughValidate::analyze(), rockmuon::NDRockMuon::analyze(), ncid::NCNNKerasVal::analyze(), bpf::BPFCVNAna::analyze(), ncs::Xbeam::analyze(), ncs::Xeff::analyze(), ncs::ROCKMRE::analyze(), slid::LIDTraining::analyze(), ncs::NCAna::analyze(), me::MEFinder::BestSlcMatch(), trk::KalmanTrackAna::CheckAssociations(), air::AirKalmanAna::CheckAssociations(), evd::RecoBaseDrawer::DrawCluster2D(), LSTME::FillLSTME::fillEnergies(), SliceLID::FillSliceLID::fillSliceLIDPreds(), filter::Filter::FillSliceVariables(), comi::NumiFiltering::filter(), bsf::BremShowerFilter::filter(), showere::ShowerEnergyFilterMC::filter(), me::MEFinder::GetPhysNoiseSlcs(), mono::HighEnergySliceRemoval::is_high_energy_slice(), novaddt::HorizontalMuonAna::IsHorzMuonTrack(), skim::EvaluatorNue::KeepSlice(), airshower::AirSlicer::MakeTrackSlices(), murem::FindParent::MatchToOrigSlice(), air::AirFilter::parallel_muon_slice(), lem::LEMAssociator::produce(), presel::LEMPresel::produce(), qeef::QeFinder::produce(), hough::HoughT::produce(), hv::HoughVertex::produce(), nuesand::FillNueSandbox::produce(), lem::UnTranspose::produce(), numue::TrackOverlapECalc::produce(), wsnumu::WSNumu::produce(), presel::RockPresel::produce(), lem::LEMSummarizer::produce(), trackinfo::TrackInfo::produce(), slid::Recluster::produce(), nussand::FillNusSandbox::produce(), presel::CosmicVeto::produce(), jmshower::JMTrackMerge::produce(), presel::NuePresel::produce(), lem::Preselection::produce(), hough::MultiHoughT::produce(), presel::CosmicCVNVeto::produce(), numusand::FillSandbox::produce(), cosrej::CosRej::produce(), numue::NumuEnergy::produce(), ndreco::NDReco::produce(), earms::ElasticArmsHS::produce(), dt::DiscreteTracker::produce(), jmshower::JMClusterMerge::produce(), vdt::VertexDT::produce(), ncpi0::MakeNCPi0BkgRej::produce(), jmshower::NueSel::produce(), dif::DiFShowerFinder::produce(), rvp::RecVarPID::produce(), crvtx::CosmicRayVertex::produce(), xnue::XnuePID::produce(), jmshower::NueSelLID::produce(), ncid::MakeNCCosRej::produce(), cosrej::MakeNueCosRej::produce(), ncid::NCNNKeras::produce(), murem::FindParent::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), caf::CAFMaker::produce(), bpfit::DimuonFitter::produce(), jmshower::RecoJMShower::RecoShowers(), and sn::SliceRemover::remove().

163 {return fNoiseCluster;}
bool fNoiseCluster
flag for whether this is a noise cluster
Definition: Cluster.h:322
unsigned int rb::Cluster::MaxCell ( geo::View_t  view) const
inherited

Definition at line 518 of file Cluster.cxx.

References ana::assert(), rb::CellHit::Cell(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), and runNovaSAM::ret.

Referenced by align::SplitTracks::analyze(), cvn::PixelMapProducer::DefineBoundary(), rb::Cluster::ExtentCell(), caf::FillHadClustVars(), caf::FillSliceVars(), hough::HoughT::is_good_slice(), rb::Cluster::MaxZ(), lem::MeanCell(), dt::View::View(), trk::KalmanTrackMerge::ViewMergeTracks(), and dt::ViewMerger::ZipVerticalTracks().

519  {
520  assert(NCell(view) > 0);
521  unsigned int ret = 0;
522  for(unsigned int i = 0; i < NCell(view); ++i)
523  if(Cell(view, i)->Cell() > ret) ret = Cell(view, i)->Cell();
524  return ret;
525  }
unsigned short Cell() const
Definition: CellHit.h:40
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
unsigned int rb::Cluster::MaxPlane ( geo::View_t  view = geo::kXorY) const
inherited

Definition at line 508 of file Cluster.cxx.

References ana::assert(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), rb::CellHit::Plane(), and runNovaSAM::ret.

Referenced by dif::DiFShowerFinder::adjustPlane(), dif::DiFShowerFinder::adjustPlane_end(), align::SplitTracks::analyze(), calib::HitEfficiency::analyze(), tbem::TBRecoAna::analyze(), trk::KalmanTrackMerge::CalcMatchScore(), slid::ParticleIDAlg::CalcPlaneHits(), trk::KalmanTrackMerge::CanJoinTracks(), skim::Evaluator::CheckSliceQuality(), remid::ReMIdTrain::ContainedEvent(), remid::ReMIdDedx::ContainedEvent(), remid::ReMIdDedxRock::ContainedEvent(), remid::ReMIdDedxStudies::ContainedEvent(), murem::TrackCleanUpAlg::DeDxInPlane(), lem::DefaultVertex(), cvn::PixelMapProducer::DefineBoundary(), dif::DiFShowerFinder::eparm(), rb::Cluster::ExtentPlane(), caf::FillDiFVars(), caf::FillHadClustVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillSliceInfo(), caf::FillSliceVars(), bsf::BremShowerFilter::findShowerByReco(), dif::DiFShowerFinder::findShowerByReco(), bsf::BremShowerFilter::findShowerByTruth(), trk::KalmanTrack::FindTracks(), cvn::RegPixelMapProducer::FindVertexWindowThreshold(), cvn::PixelMapProducer::FindVertexWindowThreshold(), hough::HoughT::is_good_slice(), trk::CosmicTrackSelection::IsCalibTrack(), calib::PCHitsList::IsGoodTrack(), trk::KalmanTrackMerge::JoinTracks(), dt::ViewMerger::JoinTracks(), dt::ViewMerger::MatchScore(), murem::FindParent::MatchToOrigSlice(), rb::Cluster::MaxZ(), dif::DiFShowerFinder::muonstub(), skim::ParametersNumu::ParametersNumu(), slid::Recluster::produce(), remid::RecoMuon::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), dt::ViewMerger::ScoreForExtension(), dt::ViewMerger::ScoreForJoinPlusExtension(), trk::WindowTrackingAlg::SetTrackEndPoints(), cosrej::MakeNueCosRej::SparsenessAsymmetry(), slid::NuEEnergyAlg::VertexEnergy(), dt::View::View(), and trk::KalmanTrackMerge::ViewMergeTracks().

509  {
510  assert(NCell(view) > 0);
511  unsigned int ret = 0;
512  for(unsigned int i = 0; i < NCell(view); ++i)
513  if(Cell(view, i)->Plane() > ret) ret = Cell(view, i)->Plane();
514  return ret;
515  }
unsigned short Plane() const
Definition: CellHit.h:39
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MaxTNS ( ) const
inherited
double rb::Cluster::MaxV ( geo::View_t  view) const
inherited

Definition at line 500 of file Cluster.cxx.

References ana::assert(), geo::kX, geo::kY, and rb::Cluster::MaxXYZ().

Referenced by rb::Cluster::ExtentV(), rb::Cluster::MinZ(), fuzz::FuzzyKVertex::produce(), and nerd::NERDProng::produce().

501  {
502  assert(view == geo::kX || view == geo::kY);
503  if(view == geo::kX) return MaxXYZ().X();
504  return MaxXYZ().Y();
505  }
Vertical planes which measure X.
Definition: PlaneGeo.h:28
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
TVector3 MaxXYZ() const
Definition: Cluster.cxx:492
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MaxX ( ) const
inlineinherited

Definition at line 217 of file Cluster.h.

References rb::Cluster::MaxXYZ().

Referenced by caf::FillProngVars(), and presel::CosmicVeto::produce().

217 {return MaxXYZ().X();}
TVector3 MaxXYZ() const
Definition: Cluster.cxx:492
TVector3 rb::Cluster::MaxXYZ ( ) const
inherited

Definition at line 492 of file Cluster.cxx.

References hi(), and rb::Cluster::MinMaxMeanXYZ().

Referenced by comi::NumiFilteringAna::analyze(), rb::Cluster::ExtentXYZ(), comi::NumiFiltering::filter(), evd::SliceNavigator::GetBounds(), evd::SliceNavigator::GetBox(), skim::EvaluatorNue::KeepSlice(), rb::Cluster::MaxV(), rb::Cluster::MaxX(), rb::Cluster::MaxY(), rb::Cluster::MaxZ(), rb::Cluster::MinZ(), skim::ParametersNumu::ParametersNumu(), nuesand::FillNueSandbox::produce(), presel::CosmicVeto::produce(), cosrej::CosRej::produce(), and caf::CAFMaker::produce().

493  {
494  TVector3 hi, junk;
495  MinMaxMeanXYZ(junk, hi, junk);
496  return hi;
497  }
TSpline3 hi("hi", xhi, yhi, 18,"0")
void MinMaxMeanXYZ(TVector3 &lo, TVector3 &hi, TVector3 &mean, rb::AveragingScheme scheme=kDefaultScheme) const
Gets the min/max/mean all at once, called by the functions above.
Definition: Cluster.cxx:582
double rb::Cluster::MaxY ( ) const
inlineinherited

Definition at line 218 of file Cluster.h.

References rb::Cluster::MaxXYZ().

Referenced by caf::FillProngVars(), and presel::CosmicVeto::produce().

218 {return MaxXYZ().Y();}
TVector3 MaxXYZ() const
Definition: Cluster.cxx:492
double rb::Cluster::MaxZ ( ) const
inlineinherited
double rb::Cluster::MeanTNS ( rb::AveragingScheme  scheme = kDefaultScheme) const
inherited

Definition at line 554 of file Cluster.cxx.

References ana::assert(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::kByEnergy, rb::Cluster::NCell(), rb::CellHit::PE(), runNovaSAM::ret, rb::CellHit::TNS(), w, and rb::Cluster::Weight().

Referenced by me::MEFinder::AddMEHit(), sn::SNSlicerAna::analyze(), tbem::TBRecoAna::analyze(), ncs::NCAna::analyze(), sn::SNMichelAnalyzer::analyze(), me::MEFinder::BestSlcMatch(), skim::Evaluator::CheckTiming(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), remid::ReMIdDedx::ContainedEvent(), remid::ReMIdDedxRock::ContainedEvent(), remid::ReMIdDedxStudies::ContainedEvent(), caf::FillProngVars(), caf::FillSliceVars(), comi::NumiFiltering::filter(), bsf::BremShowerFilter::filter(), tf::TimingFitAlg::HoughFit(), skim::EvaluatorNue::KeepSlice(), me::MEFinder::MakeSlcME(), me::MEFinder::MakeTrkME(), rb::Cluster::MeanZ(), cosrej::MakeNueCosRej::MuonParentByDist(), cosrej::MakeNueCosRej::MuonParentByTime(), calib::PCHitsList::ProcessTrackForFLSHits(), recodemo::RecoDemo::produce(), hv::HoughVertex::produce(), presel::CosmicVeto::produce(), presel::CosmicCVNVeto::produce(), sn::SupernovaMCCluster::produce(), vdt::VertexDT::produce(), jmshower::NueSel::produce(), dif::DiFShowerFinder::produce(), jmshower::NueSelLID::produce(), and caf::CAFMaker::produce().

555  {
556  assert(NCell() > 0);
557  double ret = 0;
558  double totW = 0;
559  for(unsigned int i = 0; i < NCell(); ++i){
560  double w = Weight(i);
561  if(scheme == kByEnergy) w *= Cell(i)->PE();
562 
563  ret += Cell(i)->TNS()*w;
564  totW += w;
565  }
566  return ret/totW;
567  }
float TNS() const
Definition: CellHit.h:46
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
float PE() const
Definition: CellHit.h:42
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
Float_t w
Definition: plot.C:20
In addition to the intrinsic weights.
Definition: Cluster.h:30
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
double rb::Cluster::MeanV ( geo::View_t  view,
rb::AveragingScheme  scheme = kDefaultScheme 
) const
inherited

Definition at line 546 of file Cluster.cxx.

References ana::assert(), geo::kX, geo::kY, and rb::Cluster::MeanXYZ().

Referenced by nerd::NERDProng::AddProngs(), rb::Cluster::MaxZ(), and rb::Cluster::W().

547  {
548  assert(view == geo::kX || view == geo::kY);
549  if(view == geo::kX) return MeanXYZ(scheme).X();
550  return MeanXYZ(scheme).Y();
551  }
Vertical planes which measure X.
Definition: PlaneGeo.h:28
TVector3 MeanXYZ(rb::AveragingScheme=kDefaultScheme) const
Definition: Cluster.cxx:538
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MeanX ( rb::AveragingScheme  scheme = kDefaultScheme) const
inlineinherited
TVector3 rb::Cluster::MeanXYZ ( rb::AveragingScheme  scheme = kDefaultScheme) const
inherited

Definition at line 538 of file Cluster.cxx.

References extractScale::mean, and rb::Cluster::MinMaxMeanXYZ().

Referenced by sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), jmshower::RecoJMShower::GetRVPStats(), tf::TimingFitAlg::HoughFit(), rb::Cluster::MaxZ(), rb::Cluster::MeanV(), rb::Cluster::MeanX(), rb::Cluster::MeanY(), rb::Cluster::MeanZ(), nuesand::FillNueSandbox::produce(), presel::NuePresel::produce(), lem::Preselection::produce(), and rb::Cluster::TotalGeVFastClusterOnly().

539  {
540  TVector3 mean, junk;
541  MinMaxMeanXYZ(junk, junk, mean, scheme);
542  return mean;
543  }
void MinMaxMeanXYZ(TVector3 &lo, TVector3 &hi, TVector3 &mean, rb::AveragingScheme scheme=kDefaultScheme) const
Gets the min/max/mean all at once, called by the functions above.
Definition: Cluster.cxx:582
double rb::Cluster::MeanY ( rb::AveragingScheme  scheme = kDefaultScheme) const
inlineinherited
double rb::Cluster::MeanZ ( rb::AveragingScheme  scheme = kDefaultScheme) const
inlineinherited
double me::SlcME::MID ( ) const

Definition at line 8 of file MEClusters.cxx.

References fMID.

Referenced by caf::AddSlcMEToVec(), and caf::AddTrkMEToVec().

9 { return fMID; }
double fMID
Definition: MEClusters.h:27
unsigned int rb::Cluster::MinCell ( geo::View_t  view) const
inherited

Definition at line 472 of file Cluster.cxx.

References ana::assert(), rb::CellHit::Cell(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), and runNovaSAM::ret.

Referenced by calib::TestParticleCorrections::analyze(), align::SplitTracks::analyze(), cvn::PixelMapProducer::DefineBoundary(), rb::Cluster::ExtentCell(), caf::FillHadClustVars(), caf::FillSliceVars(), hough::HoughT::is_good_slice(), lem::MeanCell(), rb::Cluster::MinZ(), dt::View::View(), trk::KalmanTrackMerge::ViewMergeTracks(), and dt::ViewMerger::ZipVerticalTracks().

473  {
474  assert(NCell(view) > 0);
475  unsigned int ret = UINT_MAX;
476  for(unsigned int i = 0; i < NCell(view); ++i)
477  if(Cell(view, i)->Cell() < ret) ret = Cell(view, i)->Cell();
478  return ret;
479  }
unsigned short Cell() const
Definition: CellHit.h:40
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
void rb::Cluster::MinMaxMeanXYZ ( TVector3 &  lo,
TVector3 &  hi,
TVector3 &  mean,
rb::AveragingScheme  scheme = kDefaultScheme 
) const
inherited

Gets the min/max/mean all at once, called by the functions above.

Todo:
Won't be quite right in the FD when cells aren't at right angles?

Definition at line 582 of file Cluster.cxx.

References ana::assert(), rb::CellHit::Cell(), rb::Cluster::Cell(), geom(), make_syst_table_plots::h, hi(), MECModelEnuComparisons::i, rb::kByEnergy, geo::kX, geo::kY, lo(), extractScale::mean, getGoodRuns4SAM::n, rb::Cluster::NCell(), rb::CellHit::PE(), rb::CellHit::Plane(), geo::GeometryBase::Plane(), POTSpillRate::view, rb::Cluster::View(), ana::weight, rb::Cluster::Weight(), submit_syst::x, submit_syst::y, and test::z.

Referenced by caf::FillHadClustVars(), caf::FillSliceVars(), rb::Cluster::MaxXYZ(), rb::Cluster::MeanXYZ(), rb::Cluster::MeanZ(), and rb::Cluster::MinXYZ().

584  {
585  // If this becomes a bottleneck we can cache the results
586 
587  /// \todo Won't be quite right in the FD when cells aren't at right angles?
588 
589  assert(NCell() > 0);
590 
592 
593  double Wx = 0;
594  double Wy = 0;
595  for(int n = 0; n < 3; ++n){
596  lo(n) = DBL_MAX;
597  hi(n) = -DBL_MAX;
598  mean(n) = 0;
599  }
600 
601  for(unsigned int i = 0; i < NCell(); ++i){
602  const art::Ptr<rb::CellHit>& h = Cell(i);
603  double xyz[3];
604  geom->Plane(h->Plane())->Cell(h->Cell())->GetCenter(xyz);
605  const double x = xyz[0];
606  const double y = xyz[1];
607  const double z = xyz[2];
608  const geo::View_t view = geom->Plane(h->Plane())->View();
609  double weight = Weight(i);
610  if(scheme == kByEnergy) weight *= h->PE();
611 
612  if(view == geo::kX){
613  if(x < lo.X()) lo.SetX(x);
614  if(x > hi.X()) hi.SetX(x);
615  mean.SetX(mean.X()+x*weight);
616  Wx += weight;
617  }
618  if(view == geo::kY){
619  if(y < lo.Y()) lo.SetY(y);
620  if(y > hi.Y()) hi.SetY(y);
621  mean.SetY(mean.Y()+y*weight);
622  Wy += weight;
623  }
624  if(z < lo.Z()) lo.SetZ(z);
625  if(z > hi.Z()) hi.SetZ(z);
626  mean.SetZ(mean.Z()+z*weight);
627  }
628 
629  if(Wx) mean.SetX(mean.X()/Wx);
630  if(Wy) mean.SetY(mean.Y()/Wy);
631  if(Wx || Wy) mean.SetZ(mean.Z()/(Wx+Wy));
632  }
virtual geo::View_t View() const
kXorY for 3D clusters.
Definition: Cluster.h:99
TSpline3 lo("lo", xlo, ylo, 12,"0")
const Var weight
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
unsigned short Plane() const
Definition: CellHit.h:39
Vertical planes which measure X.
Definition: PlaneGeo.h:28
const PlaneGeo * Plane(unsigned int i) const
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
unsigned short Cell() const
Definition: CellHit.h:40
TSpline3 hi("hi", xhi, yhi, 18,"0")
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
float PE() const
Definition: CellHit.h:42
z
Definition: test.py:28
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
void geom(int which=0)
Definition: geom.C:163
assert(nhit_max >=nhit_nbins)
In addition to the intrinsic weights.
Definition: Cluster.h:30
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
unsigned int rb::Cluster::MinPlane ( geo::View_t  view = geo::kXorY) const
inherited

Definition at line 462 of file Cluster.cxx.

References ana::assert(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), rb::CellHit::Plane(), and runNovaSAM::ret.

Referenced by dif::DiFShowerFinder::adjustPlane(), dif::DiFShowerFinder::adjustPlane_end(), align::AlignInspect::analyze(), calib::TestParticleCorrections::analyze(), align::SplitTracks::analyze(), calib::HitEfficiency::analyze(), ncs::ROCKMRE::analyze(), ncs::NCAna::analyze(), trk::KalmanTrackMerge::CalcMatchScore(), slid::ParticleIDAlg::CalcPlaneHits(), trk::KalmanTrackMerge::CanJoinTracks(), skim::Evaluator::CheckSliceQuality(), remid::ReMIdTrain::ContainedEvent(), remid::ReMIdDedx::ContainedEvent(), remid::ReMIdDedxRock::ContainedEvent(), remid::ReMIdDedxStudies::ContainedEvent(), murem::TrackCleanUpAlg::DeDxInPlane(), lem::DefaultVertex(), cvn::PixelMapProducer::DefineBoundary(), dif::DiFShowerFinder::eparm(), rb::Cluster::ExtentPlane(), caf::FillDiFVars(), caf::FillHadClustVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillSliceInfo(), caf::FillSliceVars(), bsf::BremShowerFilter::findShowerByReco(), dif::DiFShowerFinder::findShowerByReco(), bsf::BremShowerFilter::findShowerByTruth(), trk::KalmanTrack::FindTracks(), cvn::RegPixelMapProducer::FindVertexMaxGap(), cvn::PixelMapProducer::FindVertexMaxGap(), cvn::RegPixelMapProducer::FindVertexWindowThreshold(), cvn::PixelMapProducer::FindVertexWindowThreshold(), jmshower::RecoJMShower::GetRVPStats(), hough::HoughT::is_good_slice(), trk::CosmicTrackSelection::IsCalibTrack(), calib::PCHitsList::IsGoodTrack(), trk::KalmanTrackMerge::JoinTracks(), dt::ViewMerger::JoinTracks(), dt::ViewMerger::MatchScore(), murem::FindParent::MatchToOrigSlice(), rb::Cluster::MinZ(), skim::ParametersNue::ParametersNue(), skim::ParametersNumu::ParametersNumu(), slid::Recluster::produce(), rvp::RecVarPID::produce(), remid::RecoMuon::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), jmshower::RecoJMShower::RecoShowers(), dt::ViewMerger::ScoreForExtension(), dt::ViewMerger::ScoreForJoinPlusExtension(), trk::WindowTrackingAlg::SetTrackEndPoints(), cosrej::MakeNueCosRej::SparsenessAsymmetry(), slid::NuEEnergyAlg::VertexEnergy(), dt::View::View(), trk::KalmanTrackMerge::ViewMergeTracks(), and dt::ViewMerger::ZipVerticalTracks().

463  {
464  assert(NCell(view) > 0);
465  unsigned int ret = UINT_MAX;
466  for(unsigned int i = 0; i < NCell(view); ++i)
467  if(Cell(view, i)->Plane() < ret) ret = Cell(view, i)->Plane();
468  return ret;
469  }
unsigned short Plane() const
Definition: CellHit.h:39
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MinTNS ( ) const
inherited

Definition at line 482 of file Cluster.cxx.

References ana::assert(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), runNovaSAM::ret, and rb::CellHit::TNS().

Referenced by align::AlignInspect::analyze(), sn::SNSlicerAna::analyze(), tbem::TBRecoAna::analyze(), nnbar::ShowerMuonCoincidence::analyze(), ncs::NCAna::analyze(), rb::CompareTracksByTime(), evd::RecoBaseDrawer::DrawCluster2D(), evd::RecoBaseDrawer::DrawTrack2D(), rb::Cluster::ExtentTNS(), caf::FillProngVars(), caf::FillSliceVars(), bsf::BremShowerFilter::findShowerByTruth(), rb::Cluster::MinZ(), murem::MuonRemove::MuonInfo(), skim::ParametersNumu::ParametersNumu(), trk::TrkAssn::produce(), jmshower::JMTrackMerge::produce(), earms::ElasticArmsHS::produce(), jmshower::JMClusterMerge::produce(), caf::CAFMaker::produce(), sn::TrackActivityRemover::remove(), sn::SortClustersByTime(), and sn::SortTracksByTime().

483  {
484  assert(NCell() > 0);
485  double ret = DBL_MAX;
486  for(unsigned int i = 0; i < NCell(); ++i)
487  if(Cell(i)->TNS() < ret) ret = Cell(i)->TNS();
488  return ret;
489  }
float TNS() const
Definition: CellHit.h:46
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MinV ( geo::View_t  view) const
inherited

Definition at line 454 of file Cluster.cxx.

References ana::assert(), geo::kX, geo::kY, and rb::Cluster::MinXYZ().

Referenced by rb::Cluster::ExtentV(), fuzz::FuzzyKVertex::produce(), and nerd::NERDProng::produce().

455  {
456  assert(view == geo::kX || view == geo::kY);
457  if(view == geo::kX) return MinXYZ().X();
458  return MinXYZ().Y();
459  }
Vertical planes which measure X.
Definition: PlaneGeo.h:28
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
TVector3 MinXYZ() const
Definition: Cluster.cxx:446
assert(nhit_max >=nhit_nbins)
double rb::Cluster::MinX ( ) const
inlineinherited

Definition at line 204 of file Cluster.h.

References rb::Cluster::MinXYZ().

Referenced by caf::FillProngVars(), and presel::CosmicVeto::produce().

204 {return MinXYZ().X();}
TVector3 MinXYZ() const
Definition: Cluster.cxx:446
TVector3 rb::Cluster::MinXYZ ( ) const
inherited

Definition at line 446 of file Cluster.cxx.

References lo(), and rb::Cluster::MinMaxMeanXYZ().

Referenced by comi::NumiFilteringAna::analyze(), rb::Cluster::ExtentXYZ(), comi::NumiFiltering::filter(), evd::SliceNavigator::GetBounds(), evd::SliceNavigator::GetBox(), rb::Cluster::MinV(), rb::Cluster::MinX(), rb::Cluster::MinY(), rb::Cluster::MinZ(), skim::ParametersNumu::ParametersNumu(), nuesand::FillNueSandbox::produce(), presel::CosmicVeto::produce(), cosrej::CosRej::produce(), and caf::CAFMaker::produce().

447  {
448  TVector3 lo, junk;
449  MinMaxMeanXYZ(lo, junk, junk);
450  return lo;
451  }
TSpline3 lo("lo", xlo, ylo, 12,"0")
void MinMaxMeanXYZ(TVector3 &lo, TVector3 &hi, TVector3 &mean, rb::AveragingScheme scheme=kDefaultScheme) const
Gets the min/max/mean all at once, called by the functions above.
Definition: Cluster.cxx:582
double rb::Cluster::MinY ( ) const
inlineinherited

Definition at line 205 of file Cluster.h.

References rb::Cluster::MinXYZ().

Referenced by caf::FillProngVars(), and presel::CosmicVeto::produce().

205 {return MinXYZ().Y();}
TVector3 MinXYZ() const
Definition: Cluster.cxx:446
double rb::Cluster::MinZ ( ) const
inlineinherited
int rb::Cluster::MostContiguousPlanes ( geo::View_t  view) const
inherited

Longest run of adjacent planes with hits.

view may be kXorY to require hits on every plane no matter the view

Definition at line 635 of file Cluster.cxx.

References rb::Cluster::Cell(), MECModelEnuComparisons::i, geo::kXorY, std::max(), rb::Cluster::NCell(), and NDAPDHVSetting::plane.

Referenced by ncid::NCNNKerasVal::analyze(), rb::Cluster::ExtentTNS(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillHadClustVars(), caf::FillProngVars(), caf::FillShowerVars(), caf::FillSliceInfo(), caf::FillSliceVars(), and skim::ParametersNumu::ParametersNumu().

636  {
637  std::set<int> planes;
638 
639  for(unsigned int i = 0; i < NCell(view); ++i)
640  planes.insert(Cell(view, i)->Plane());
641 
642  if(planes.empty()) return 0;
643 
644  // In 3D expect a hit every plane, in 2D only every other plane.
645  //
646  // This isn't right if the planes aren't alternating in views, but
647  // thankfully we stopped building detectors like that.
648  const int expGap = (view == geo::kXorY) ? 1 : 2;
649 
650  int prevPlane = -999;
651  int curRun = 1;
652  int longestRun = 0;
653  for(auto plane: planes){
654  if(plane - prevPlane == expGap){
655  ++curRun;
656  longestRun = std::max(longestRun, curRun);
657  }
658  else{
659  curRun = 1;
660  }
661  prevPlane = plane;
662  } // end for plane
663 
664  return longestRun;
665  }
T max(const caf::Proxy< T > &a, T b)
X or Y views.
Definition: PlaneGeo.h:30
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
int rb::Cluster::MostMissingPlanes ( geo::View_t  view) const
inherited

Longest run of adjacent planes with no hits.

view may be kXorY to allow a hit in either view to end the run

Definition at line 668 of file Cluster.cxx.

References rb::Cluster::Cell(), MECModelEnuComparisons::i, geo::kXorY, std::max(), rb::Cluster::NCell(), and NDAPDHVSetting::plane.

Referenced by rb::Cluster::ExtentTNS(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillProngVars(), caf::FillShowerVars(), and xsrec::MakeXSecCCPi0Inc::GetPhLL().

669  {
670  std::set<int> planes;
671 
672  for(unsigned int i = 0; i < NCell(view); ++i)
673  planes.insert(Cell(view, i)->Plane());
674 
675  if(planes.empty()) return 0;
676 
677  int maxDiff = 1;
678  int prevPlane = *planes.begin();
679  for(int plane: planes){
680  maxDiff = std::max(maxDiff, plane-prevPlane);
681  prevPlane = plane;
682  }
683 
684  // One plane difference as expected in 3D isn't a gap
685  if(view == geo::kXorY) return maxDiff-1;
686 
687  // Two plane difference in 2D isn't a gap. Beyond that, every two planes
688  // difference only indicates one missing plane of hits.
689  return (maxDiff-2)/2;
690  }
T max(const caf::Proxy< T > &a, T b)
X or Y views.
Definition: PlaneGeo.h:30
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
unsigned int rb::Cluster::NCell ( geo::View_t  view) const
inherited

Number of cells in view view.

Definition at line 134 of file Cluster.cxx.

References ana::assert(), geo::kX, geo::kXorY, geo::kY, rb::Cluster::NCell(), rb::Cluster::NXCell(), and rb::Cluster::NYCell().

Referenced by dqsf::DQSpillFlags::AccumulateSyncMetric(), rb::HitMap::Add(), fuzz::FuzzyKVertex::AddProng(), dif::DiFShowerFinder::adjustPlane(), dif::DiFShowerFinder::adjustPlane_end(), tut::TutAnalyzer::analyze(), qeef::QeFinderVal::analyze(), rsim::RecordNoiseSpectrumFile::analyze(), chaninfo::CosmicEff::analyze(), remid::ReMIdValidate::analyze(), comi::CosmicMetrics::analyze(), align::AlignInspect::analyze(), tut::RecoValidationTutorial::analyze(), calib::TestParticleCorrections::analyze(), dprf::ChannelPlots::analyze(), remid::ReMIdTrain::analyze(), dprf::TrackPlots::analyze(), mcchk::MonopoleAna::analyze(), align::Alignment::analyze(), mcchk::RockAna::analyze(), sn::SNSlicerAna::analyze(), sn::SupernovaAna::analyze(), align::SplitTracks::analyze(), murem::MuonRemoveAna::analyze(), pa::ClusterEva::analyze(), comi::DataCheck::analyze(), vf::TrackEva::analyze(), comi::NumiFilteringAna::analyze(), tbem::TBRecoAna::analyze(), zcl::FmmTriggerAna::analyze(), zcl::FmmTrackerAna::analyze(), zcl::FmmTrackerValidation::analyze(), trk::KalmanTrackAna::analyze(), showere::ShowerEnergyAna::analyze(), hough::HoughValidate::analyze(), rockmuon::NDRockMuon::analyze(), zcl::FastMMStudy::analyze(), bpfit::BPFTmvaTrainer::analyze(), bpf::BPFCVNAna::analyze(), calib::CosmicTrends::analyze(), calib::CalibAna::analyze(), ncs::Xeff::analyze(), moonshadowana::MoonShadowAna::analyze(), ncs::ROCKMRE::analyze(), ncs::NCAna::analyze(), htk::HoughTrack::analyze(), bpfit::DimuonFitter::AnaSlice(), me::MEFinder::BestSlcMatch(), fuzz::ViewMatchAlg::CalcEnergyProfile(), nerd::ViewMatchAlg::CalcEnergyProfile(), trk::KalmanTrackMerge::CalcMatchScore(), slid::ParticleIDAlg::CalcPlaneHits(), trk::KalmanTrackMerge::CanJoinTracks(), trk::KalmanTrackAna::CheckRecoTracks(), murem::TrackCleanUpAlg::CleanUpTrack(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), sn::SNSlicer::ClusterIsGood(), murem::TrackCleanUpAlg::ComputeVertexRegion(), remid::ReMIdTrain::ContainedEvent(), remid::ReMIdDedx::ContainedEvent(), remid::ReMIdDedxFD::ContainedEvent(), remid::ReMIdDedxRock::ContainedEvent(), remid::ReMIdDedxStudies::ContainedEvent(), nnbar::NNbarUtilities::correlationTCell(), nnbar::NNbarUtilities::correlationTPlane(), cvn::RegPixelMapProducer::CreateMapGivenBoundary(), cvn::PixelMapProducer::CreateMapGivenBoundary(), cvn::RegPixelMapProducer::CreateMapGivenShowerVertex(), cvn::RegPixelMapProducer::CreateMapGivenVertex(), jmshower::RecoJMShower::DepositEnergy(), evd::RecoBaseDrawer::DrawTrack2D(), skim::ParametersNumu::EarliestLatestHitPos(), jmshower::RecoJMShower::Energy(), dif::DiFShowerFinder::eparm(), rb::Cluster::Exclude(), dt::ViewMerger::Extremes(), numue::NumuEAlg::FDEnergy(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillHadClustVars(), calib::StopperThreshold::FillHist(), bpfit::BreakPoint::FillHitList(), sn::SupernovaAna::FillPlaneSeperations(), dqsf::DQSpillFlags::FillPopulatedDCMs(), caf::FillProngVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillShowerVars(), caf::FillSliceInfo(), filter::Filter::FillSliceVariables(), caf::FillSliceVars(), trk::CosmicTrackAna::FillTrackHistograms(), calib::StopperThreshold::FillTree(), comi::NumiFiltering::filter(), bsf::BremShowerFilter::filter(), showere::ShowerEnergyFilterMC::filter(), mono::MonopoleTrack::filter(), cvn::RegPixelMapProducer::FindCenterMedian(), cvn::PixelMapProducer::FindCenterMedian(), airshower::AirSlicer::FindNeighbors(), bsf::BremShowerFilter::findShowerByReco(), dif::DiFShowerFinder::findShowerByReco(), trk::KalmanTrack::FindTracks(), trk::CosmicTrackUtilities::FindTriCells(), cvn::RegPixelMapProducer::FindVertexMaxGap(), cvn::PixelMapProducer::FindVertexMaxGap(), cvn::RegPixelMapProducer::FindVertexWindowThreshold(), cvn::PixelMapProducer::FindVertexWindowThreshold(), bpfit::DimuonFitter::FindVertexZ(), bpfit::BreakPoint::FitTracks(), bpfit::DimuonFitter::FitView(), nuesand::FillNueSandbox::FracAngChanges(), nuesand::FillNueSandbox::FracModalHits(), nuesand::FillNueSandbox::FracNonContiguous(), cosrej::CosRejFxs::getActivity(), numusand::NumuSandFxs::getActivity(), numusand::NumuSandFxs::getActivityVtx(), numusand::NumuSandFxs::getAveTrackdEdx(), numusand::NumuSandFxs::getAveTrackdEdxLast4Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast6Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast8Cells(), trackinfo::TrackInfoFxs::getAveTrackdEdxLastCells(), cosrej::CosRejFxs::getBBC(), evd::SliceNavigator::GetBounds(), evd::SliceNavigator::GetBox(), xsrec::MakeXSecCCPi0Inc::GetBPI(), evd::RecoBaseDrawer::GetClusterOutlines(), evd::RecoBaseDrawer::GetClusterOutlinesConvexHull(), cosrej::CosRejFxs::getCVVars(), cosrej::CosRejFxs::getFits(), xsrec::MakeXSecCCPi0Inc::GetPhLL(), me::MEFinder::GetPhysNoiseSlcs(), jmshower::RecoJMShower::GetPlaneCentroidCell(), jmshower::RecoJMShower::GetPlaneE1Cell(), ndreco::NDRecoFxs::getProngActivity(), ndreco::NDRecoFxs::getProngDedx(), jmshower::RecoJMShower::GetRVPStats(), ndreco::NDRecoFxs::getTrackActivity(), ndreco::NDRecoFxs::getTrackDedx(), numue::NumuEAlg::GetUCMuonENonSingle(), numue::NumuEAlg::GetUCMuonESingle(), fuzz::FuzzyKValidate::GeVCalc(), slid::NuEEnergyAlg::HadronicDepEnergy(), dt::DiscreteTracker::HighActivity(), nnbar::NNbarUtilities::hitCountInView(), rb::HitList::HitList(), cvn::HitNuIndex(), jmshower::hitSort(), tf::TimingFitAlg::HoughFit(), LSTME::BasicProngVars::initBasicVars(), hough::HoughT::is_good_slice(), zcl::FastMonopoleTriggers::is_trigger_by_epoch1_fmmtrigger(), trk::CosmicTrackSelection::IsCalibTrack(), calib::RockMuonStopperSelection::IsContainedStopper(), calib::PCHitsList::IsGoodTrack(), trk::CosmicTrackAlg::IsTrackDownstreamFromTiming(), trk::KalmanTrackMerge::JoinTracks(), me::MEFinder::MakeSlcME(), fuzz::ViewMatchAlg::MakeTestProng(), nerd::ViewMatchAlg::MakeTestProng(), trk::CosmicTrackAlg::MakeTrack(), trk::WindowTrackingAlg::MakeTrack(), airshower::AirSlicer::MakeTrackSlices(), me::MEFinder::MakeTrkME(), murem::FindParent::MatchToOrigSlice(), nuesand::FillNueSandbox::MaxGap(), nuesand::FillNueSandbox::MaxHits(), dt::DiscreteTracker::MergeParasiteTracks(), nerd::NERDProng::MinHitClusterDist(), me::MEFinder::MinHitSlcDist(), dt::ViewMerger::MissingChargeByExtension(), murem::MuonRemove::MuonInfo(), dif::DiFShowerFinder::muonstub(), numue::NumuEAlg::NDEnergy(), numue::NumuEAlg::NDTrackEnergySplitting(), zcl::FmmTriggerEvd::NumberOfCellsPerLength(), zcl::FastMonopoleTriggers::NumberOfHitsInOverlapPlanesCut(), zcl::FmmTriggerEvd::NumberOfHitsInOverlapPlanesCut(), zcl::FastMMStudy::NumberOfHitsInOverlapPlanesCut(), zcl::FastMonopoleTriggers::NumberOfSurfaceHits(), zcl::FastMMStudy::NumberOfSurfaceHits(), rb::operator<<(), air::AirFilter::parallel_muon_slice(), skim::ParametersNumu::ParametersNumu(), zcl::FastMonopoleTriggers::passed_epoch2_fmmtrigger(), me::MEFinder::PassesMEPresel(), calib::PCHitsList::ProcessTrack(), calib::PCHitsList::ProcessTrackTrajectory(), trk::TrkAssn::produce(), vf::VertexFinder::produce(), qeef::QeFinder::produce(), hv::HoughVertex::produce(), nuesand::FillNueSandbox::produce(), wsnumu::WSNumu::produce(), slid::Recluster::produce(), presel::CosmicVeto::produce(), lem::Preselection::produce(), presel::NuePresel::produce(), presel::CosmicCVNVeto::produce(), numusand::FillSandbox::produce(), slid::SliceLIDBuilder::produce(), zcl::SPCluster::produce(), cosrej::CosRej::produce(), numue::NumuEnergy::produce(), earms::ElasticArmsHS::produce(), lem::MakeLibrary::produce(), dt::DiscreteTracker::produce(), calib::PCHitsList::produce(), sn::SNSlicer::produce(), sn::SupernovaMCCluster::produce(), vdt::VertexDT::produce(), zcl::FmmTriggerEvd::produce(), jmshower::NueSel::produce(), rvp::RecVarPID::produce(), dif::DiFShowerFinder::produce(), jmshower::NueSelLID::produce(), bpfit::BPFEnergyEstimator::produce(), bpfit::BPFEnergyEstimatorOnly::produce(), cosrej::MakeNueCosRej::produce(), ncid::NCNNKeras::produce(), murem::MuonRemove::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), caf::CAFMaker::produce(), slid::ParticleIDAlg::Radius(), jmshower::RecoJMShower::Radius(), jmshower::RecoJMShower::RadiusV(), jmshower::RecoJMShower::RecoShowers(), murem::MuonRemove::RemoveByTruth(), trk::KalmanTrack::RemoveHitsFromSignal(), dt::ViewMerger::ScoreForJoinPlusExtension(), trk::KalmanTrackMerge::ShiftInterpolationPoints(), slid::NuEEnergyAlg::ShowerDepEnergy(), lem::MakeLibrary::SliceMeanPosEWeighted(), lem::MakeLibrary::SliceOrigin(), lem::LEMSummarizer::SliceToLEMInput(), remid::ReMIdValidate::SortByHits(), remid::ReMIdTrain::SortByHits(), htk::sortByNCell(), zcl::FmmTriggerEvd::StdevCellsPerPlane(), nnbar::NNbarUtilities::temporalExpand(), calib::StopperThreshold::testPath(), htk::Track3D::time_fit(), mono::Track3D::time_fit(), dt::ViewMerger::TotalChargePerView(), nnbar::NNbarUtilities::totalVisibleEnergyInView(), murem::TrackCleanUpAlg::TrackEinMIP(), zcl::FMMTracker::Tracking2D(), dprf::ChannelPlots::TrackOK(), dprf::TrackPlots::TrackOK(), trk::CosmicTrackUtilities::TrackResiduals(), slid::NuEEnergyAlg::VertexEnergy(), and trk::KalmanTrackMerge::ViewMergeTracks().

135  {
136  switch(view){
137  case geo::kX: return NXCell();
138  case geo::kY: return NYCell();
139  case geo::kXorY: return NCell();
140  default: assert(0 && "Unknown view");
141  }
142  }
X or Y views.
Definition: PlaneGeo.h:30
Vertical planes which measure X.
Definition: PlaneGeo.h:28
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
unsigned int NYCell() const
Number of cells in the y-view.
Definition: Cluster.h:108
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
assert(nhit_max >=nhit_nbins)
unsigned int rb::Cluster::NCell ( ) const
inlineinherited
int rb::Cluster::NMissingPlanes ( geo::View_t  view) const
inherited

Total number of missing planes in cluster.

Put simply, number of planes spanned minus number of hit planes. If track is 2D, only planes in that view are counted.

Definition at line 693 of file Cluster.cxx.

References rb::Cluster::Cell(), MECModelEnuComparisons::i, geo::kXorY, rb::Cluster::NCell(), update_sam_good_runs_metadata::stride, and rb::Cluster::View().

Referenced by bpf::BPFCVNAna::analyze(), rb::Cluster::ExtentTNS(), caf::FillTrackVars(), skim::ParametersNue::ParametersNue(), wsnumu::WSNumu::produce(), and slid::SliceLIDBuilder::produce().

694  {
695  if(view == geo::kXorY) view = View();
696 
697  const int stride = (view == geo::kXorY) ? 1 : 2;
698 
699  std::set<int> planes;
700 
701  for(unsigned int i = 0; i < NCell(view); ++i)
702  planes.insert(Cell(view, i)->Plane());
703 
704  if(planes.empty()) return 0;
705 
706  return (*planes.rbegin() - *planes.begin())/stride - (int)planes.size() + 1;
707 
708  }
virtual geo::View_t View() const
kXorY for 3D clusters.
Definition: Cluster.h:99
X or Y views.
Definition: PlaneGeo.h:30
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
unsigned int rb::Cluster::NXCell ( ) const
inlineinherited

Number of cells in the x-view.

Definition at line 106 of file Cluster.h.

References rb::Cluster::fXCell, and art::PtrVector< T >::size().

Referenced by caf::AddSlcMEToVec(), caf::AddTrkMEToVec(), chaninfo::CosmicEff::analyze(), comi::CosmicMetrics::analyze(), align::AlignInspect::analyze(), align::Alignment::analyze(), align::SplitTracks::analyze(), sn::SNSlicerAna::analyze(), calib::HitEfficiency::analyze(), calib::PEResponse::analyze(), trk::KalmanTrackAna::analyze(), hough::HoughValidate::analyze(), slid::LIDTraining::analyze(), red::EWCosmics::analyze(), bpfit::DimuonFitter::AnaSlice(), rb::Cluster::Cell(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), sn::SNSlicer::ClusterIsGood(), cvn::PixelMapProducer::CreateMapGivenBoundary(), me::TrkME::DistToTrk(), evd::RecoBaseDrawer::DrawCluster2D(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillHadClustVars(), caf::FillProngVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillShowerVars(), filter::Filter::FillSliceVariables(), caf::FillSliceVars(), sn::SNSlicer::FinalizeCluster(), cvn::Get2DProngEfficiencyByPDG(), cvn::Get2DProngEnergyByPDG(), cvn::Get2DProngPurityByPDG(), jmshower::RecoJMShower::GetCentroid(), cvn::GetProngEfficiencyByPDG(), cvn::GetProngEnergyByPDG(), cvn::GetProngPurityByPDG(), jmshower::RecoJMShower::GetRVPStats(), bpfit::BreakPoint::GoodProng(), LSTME::BasicProngVars::initBasicVars(), trk::CosmicTrackSelection::IsCalibTrack(), calib::PCHitsList::IsGoodTrack(), skim::EvaluatorNue::KeepSlice(), nerd::NERDProng::MakeCluster(), trk::CosmicTrackAlg::MakeTrack(), rb::Cluster::NCell(), skim::ParametersNue::ParametersNue(), skim::ParametersNumu::ParametersNumu(), hough::HoughT::produce(), nuesand::FillNueSandbox::produce(), nussand::FillNusSandbox::produce(), hough::MultiHoughT::produce(), lem::Preselection::produce(), presel::NuePresel::produce(), earms::ElasticArmsHS::produce(), jmshower::JMClusterMerge::produce(), sn::SNSlicer::produce(), vdt::VertexDT::produce(), sn::SupernovaMCCluster::produce(), jmshower::NueSel::produce(), rvp::RecVarPID::produce(), cvntf::CVNProngEvaluatorTF::produce(), jmshower::NueSelLID::produce(), remid::RecoMuon::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), caf::CAFMaker::produce(), cvn::ProngClassify(), jmshower::RecoJMShower::RecoShowers(), rb::Cluster::RemoveHit(), rb::Cluster::SetWeight(), lem::LEMSummarizer::SliceToLEMInput(), rb::Cluster::TotalGeVFastClusterOnly(), dprf::ChannelPlots::TrackOK(), dprf::TrackPlots::TrackOK(), me::MEFinder::TrkMEDist(), rb::Cluster::Weight(), and slicer::MMSlicer::WindowSlice().

106 {return fXCell.size();}
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
size_type size() const
Definition: PtrVector.h:308
unsigned int rb::Cluster::NYCell ( ) const
inlineinherited

Number of cells in the y-view.

Definition at line 108 of file Cluster.h.

References rb::Cluster::fYCell, and art::PtrVector< T >::size().

Referenced by caf::AddSlcMEToVec(), caf::AddTrkMEToVec(), chaninfo::CosmicEff::analyze(), comi::CosmicMetrics::analyze(), align::AlignInspect::analyze(), align::Alignment::analyze(), align::SplitTracks::analyze(), sn::SNSlicerAna::analyze(), calib::HitEfficiency::analyze(), calib::PEResponse::analyze(), trk::KalmanTrackAna::analyze(), hough::HoughValidate::analyze(), slid::LIDTraining::analyze(), red::EWCosmics::analyze(), bpfit::DimuonFitter::AnaSlice(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), sn::SNSlicer::ClusterIsGood(), cvn::PixelMapProducer::CreateMapGivenBoundary(), me::TrkME::DistToTrk(), evd::RecoBaseDrawer::DrawCluster2D(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillHadClustVars(), caf::FillProngVars(), trk::CosmicTrackAna::FillRecoInfo(), caf::FillShowerVars(), filter::Filter::FillSliceVariables(), caf::FillSliceVars(), sn::SNSlicer::FinalizeCluster(), cvn::Get2DProngEfficiencyByPDG(), cvn::Get2DProngEnergyByPDG(), cvn::Get2DProngPurityByPDG(), jmshower::RecoJMShower::GetCentroid(), cvn::GetProngEfficiencyByPDG(), cvn::GetProngEnergyByPDG(), cvn::GetProngPurityByPDG(), jmshower::RecoJMShower::GetRVPStats(), bpfit::BreakPoint::GoodProng(), LSTME::BasicProngVars::initBasicVars(), trk::CosmicTrackSelection::IsCalibTrack(), calib::PCHitsList::IsGoodTrack(), skim::EvaluatorNue::KeepSlice(), nerd::NERDProng::MakeCluster(), trk::CosmicTrackAlg::MakeTrack(), rb::Cluster::NCell(), skim::ParametersNue::ParametersNue(), skim::ParametersNumu::ParametersNumu(), hough::HoughT::produce(), nuesand::FillNueSandbox::produce(), nussand::FillNusSandbox::produce(), hough::MultiHoughT::produce(), presel::NuePresel::produce(), lem::Preselection::produce(), earms::ElasticArmsHS::produce(), sn::SNSlicer::produce(), jmshower::JMClusterMerge::produce(), vdt::VertexDT::produce(), sn::SupernovaMCCluster::produce(), jmshower::NueSel::produce(), rvp::RecVarPID::produce(), cvntf::CVNProngEvaluatorTF::produce(), jmshower::NueSelLID::produce(), remid::RecoMuon::produce(), fuzz::FuzzyKVertex::produce(), nerd::NERDProng::produce(), caf::CAFMaker::produce(), cvn::ProngClassify(), jmshower::RecoJMShower::RecoShowers(), rb::Cluster::RemoveHit(), lem::LEMSummarizer::SliceToLEMInput(), rb::Cluster::TotalGeVFastClusterOnly(), dprf::ChannelPlots::TrackOK(), dprf::TrackPlots::TrackOK(), me::MEFinder::TrkMEDist(), and slicer::MMSlicer::WindowSlice().

108 {return fYCell.size();}
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
size_type size() const
Definition: PtrVector.h:308
std::vector< geo::OfflineChan > rb::Cluster::OfflineChans ( ) const
inherited

Positions of all the CellHits.

Definition at line 190 of file Cluster.cxx.

References rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), and runNovaSAM::ret.

Referenced by calib::PCHitsList::ProcessTrack(), calib::PCHitsList::ProcessTrackForBelowThresholdHits(), calib::PCHitsList::ProcessTrackForFLSHits(), and rb::Cluster::YCells().

191  {
192  std::vector<geo::OfflineChan> ret;
193  ret.reserve(NCell());
194  for(unsigned int i = 0; i < NCell(); ++i)
195  ret.push_back(Cell(i)->OfflineChan());
196  return ret;
197  }
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
bool rb::Cluster::operator< ( const Cluster other) const
inherited

Definition at line 576 of file Cluster.cxx.

References rb::Cluster::MeanZ().

577  {
578  return this->MeanZ() < other.MeanZ();
579  }
double MeanZ(rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.h:233
art::Ptr< rb::Cluster > me::SlcME::ParentSlc ( ) const

Definition at line 15 of file MEClusters.cxx.

References fParentSlc.

Referenced by me::MEFinder::produce().

16 { return fParentSlc; }
art::Ptr< rb::Cluster > fParentSlc
Definition: MEClusters.h:30
rb::RecoHit rb::Cluster::RecoHit ( const art::Ptr< rb::CellHit > &  chit) const
inherited

Return calibrated hit based on assumed W coordinate.

To calibrate a hit you must know its distance from the readout. This is a convenience function which uses the W function to estimate the position of a CellHit and then uses calib::Calibrator to produce a calibrated hit from that information.

Definition at line 259 of file Cluster.cxx.

References art::Ptr< T >::get(), and calib::Calibrator::MakeRecoHit().

Referenced by dif::DiFShowerFinder::adjustPlane(), dif::DiFShowerFinder::adjustPlane_end(), tut::TutAnalyzer::analyze(), calib::TestParticleCorrections::analyze(), tbem::TBRecoAna::analyze(), showere::ShowerEnergyAna::analyze(), trk::KalmanTrackAna::analyze(), upmuana::UpMuRecoAna::analyze(), upmuana::UpMuAnalysis::analyze(), slid::NuEEnergyAlg::CellEnergy(), murem::TrackCleanUpAlg::CleanUpTrack(), nnbar::NNbarUtilities::correlationTCell(), nnbar::NNbarUtilities::correlationTPlane(), cvn::RegPixelMapProducer::CreateMapGivenBoundary(), cvn::PixelMapProducer::CreateMapGivenBoundary(), cvn::RegPixelMapProducer::CreateMapGivenShowerVertex(), cvn::RegPixelMapProducer::CreateMapGivenVertex(), murem::TrackCleanUpAlg::DeDxInPlane(), nnbar::NNbarUtilities::energyBalancingVertex(), dif::DiFShowerFinder::eparm(), calib::StopperThreshold::FillHist(), trk::CosmicTrackAna::FillTrackHistograms(), calib::StopperThreshold::FillTree(), showere::ShowerEnergyFilterMC::filter(), bsf::BremShowerFilter::findShowerByReco(), dif::DiFShowerFinder::findShowerByReco(), numusand::NumuSandFxs::getActivity(), numusand::NumuSandFxs::getAveTrackdEdx(), numusand::NumuSandFxs::getAveTrackdEdxLast4Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast6Cells(), numusand::NumuSandFxs::getAveTrackdEdxLast8Cells(), trackinfo::TrackInfoFxs::getAveTrackdEdxLastCells(), xsrec::MakeXSecCCPi0Inc::GetBPI(), nnbar::NNbarUtilities::getCoordinateOfHits(), cosrej::CosRejFxs::getFits(), nuesand::FillNueSandbox::GetPlaneEnergy(), fuzz::FuzzyKValidate::GeVCalc(), tf::TimingFitAlg::HoughFit(), dif::DiFShowerFinder::muonstub(), numue::NumuEAlg::NDEnergy(), numue::NumuEAlg::NDTrackEnergySplitting(), nussand::FillNusSandbox::produce(), numusand::FillSandbox::produce(), slid::SliceLIDBuilder::produce(), lem::MakeLibrary::produce(), remid::RecoMuon::produce(), upmuana::UpMuProb::produce(), caf::CAFMaker::produce(), rb::Cluster::RecoHit(), lem::MakeLibrary::SliceMeanPosEWeighted(), lem::LEMSummarizer::SliceToLEMInput(), nnbar::NNbarUtilities::temporalExpand(), calib::StopperThreshold::testPath(), dt::ViewMerger::TotalChargePerView(), rb::Cluster::TotalGeV(), nnbar::NNbarUtilities::totalVisibleEnergyInView(), murem::TrackCleanUpAlg::TrackEinMIP(), trk::CosmicTrackUtilities::TrackResiduals(), and rb::Cluster::YCells().

260  {
262  rb::RecoHit rb(cal->MakeRecoHit(*chit, this->W(chit.get())));
263  return rb;
264  }
rb::RecoHit MakeRecoHit(rb::CellHit const &cellhit, double w)
Calibrated quantities relying on position in the orthogonal view. To generate a rb::CellHit from a rb...
Definition: RecoHit.h:19
Perform a "2 point" Hough transform on a collection of hits.
T const * get() const
Definition: Ptr.h:321
rb::RecoHit rb::Cluster::RecoHit ( geo::View_t  view,
unsigned int  viewIdx 
) const
inherited

Definition at line 267 of file Cluster.cxx.

References rb::Cluster::Cell(), and rb::Cluster::RecoHit().

268  {
269  return RecoHit(Cell(view, viewIdx));
270  }
rb::RecoHit RecoHit(const art::Ptr< rb::CellHit > &chit) const
Return calibrated hit based on assumed W coordinate.
Definition: Cluster.cxx:259
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
rb::RecoHit rb::Cluster::RecoHit ( unsigned int  globalIdx) const
inherited

Definition at line 273 of file Cluster.cxx.

References rb::Cluster::Cell(), and rb::Cluster::RecoHit().

274  {
275  return RecoHit(Cell(globalIdx));
276  }
rb::RecoHit RecoHit(const art::Ptr< rb::CellHit > &chit) const
Return calibrated hit based on assumed W coordinate.
Definition: Cluster.cxx:259
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
void rb::Cluster::RemoveHit ( const art::Ptr< rb::CellHit hit)
inherited

Remove hit from current cluster.

Definition at line 290 of file Cluster.cxx.

References art::PtrVector< T >::begin(), art::PtrVector< T >::erase(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, rb::Cluster::fYWeights, MECModelEnuComparisons::i, geo::kX, geo::kY, rb::Cluster::NXCell(), rb::Cluster::NYCell(), and rb::CellHit::View().

Referenced by slid::NuEEnergyAlg::HadronicDepEnergy(), murem::FindParent::MatchToOrigSlice(), slid::Recluster::produce(), sn::SNSlicer::produce(), slid::NuEEnergyAlg::VertexEnergy(), and rb::Cluster::YCells().

291  {
292  fPrecalcTotalGeV = -1; // Invalidate any cached value
293 
294  if(hit->View() == geo::kX){
295  // try to find the hit in the xcells
296  for(unsigned int i = 0;i<NXCell();++i){
297  if(fXCell[i] == hit){
299  if(!fXWeights.empty()) fXWeights.erase(fXWeights.begin()+i);
300  break;
301  }
302  }
303  }
304  else if(hit->View() == geo::kY){
305  // try to find the hit in the ycells
306  for(unsigned int i = 0;i<NYCell();++i){
307  if(fYCell[i] == hit){
309  if(!fYWeights.empty()) fYWeights.erase(fYWeights.begin()+i);
310  break;
311  }
312  }
313  }
314  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
iterator begin()
Definition: PtrVector.h:223
geo::View_t View() const
Definition: CellHit.h:41
Vertical planes which measure X.
Definition: PlaneGeo.h:28
iterator erase(iterator position)
Definition: PtrVector.h:508
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
unsigned int NYCell() const
Number of cells in the y-view.
Definition: Cluster.h:108
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
void rb::Cluster::RemoveHit ( unsigned int  globalIdx)
inherited

Remove the ith hit from current cluster.

Definition at line 317 of file Cluster.cxx.

References ana::assert(), art::PtrVector< T >::begin(), art::PtrVector< T >::erase(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::fXCell, rb::Cluster::fYCell, rb::Cluster::NCell(), and rb::Cluster::NXCell().

318  {
319  fPrecalcTotalGeV = -1; // Invalidate any cached value
320 
321  assert(globalIdx < NCell());
322  if(globalIdx < NXCell()) fXCell.erase(fXCell.begin()+globalIdx);
323  else fYCell.erase(fYCell.begin()+globalIdx-NXCell());
324  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
iterator begin()
Definition: PtrVector.h:223
iterator erase(iterator position)
Definition: PtrVector.h:508
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
assert(nhit_max >=nhit_nbins)
void rb::Cluster::SavePrecalcTotalGeV ( ESaveGeVMode  savemode)
inherited

Store the current result of TotalGeV / CalorimetricEnergy.

If you intend to lock in the current calibrations, call this method immediately before storing the product in the event. The result can be retrieved by passing kUsePrecalcEnergy to TotalGeV or CalorimetricEnergy.

Multiple calls are considered to be an error. If you really do need to update the energy, pass kResetTotalGeV.

Definition at line 751 of file Cluster.cxx.

References allTimeWatchdog::endl, stan::math::fabs(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::kRecomputeEnergy, rb::Cluster::kResetTotalGeV, and rb::Cluster::TotalGeV().

752  {
753  const double gev = TotalGeV(kRecomputeEnergy);
754  if(fPrecalcTotalGeV < 0 || savemode == kResetTotalGeV){
755  fPrecalcTotalGeV = gev;
756  }
757  else{
758  if(fabs(gev-fPrecalcTotalGeV) > .01){
759  mf::LogError("rb::Cluster") << "SaveTotalGeV() already called. Old value was " << fPrecalcTotalGeV << ", now " << gev
760  << ". If you intended to reset the stored value, you must pass kResetTotalGeV. Aborting." << std::endl;
761  abort();
762  }
763  else{
764  mf::LogWarning("rb::Cluster") << "Called SaveTotalGeV() twice for the same cluster, which is inefficient." << std::endl;
765  }
766  }
767  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
fvar< T > fabs(const fvar< T > &x)
Definition: fabs.hpp:15
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
Altering the already-set value is not an error.
Definition: Cluster.h:283
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
double TotalGeV(EEnergyCalcScheme escheme=kRecomputeEnergy) const
Simple sum of the estimated GeV of all the hits.
Definition: Cluster.cxx:378
Default. Ask Calibrator about each hit, and sum.
Definition: Cluster.h:178
void me::SlcME::SetDeltaT ( double  deltaT)

Definition at line 20 of file MEClusters.cxx.

References fDeltaT.

Referenced by me::MEFinder::MakeSlcME(), and me::MEFinder::MakeTrkME().

21 { fDeltaT = deltaT; }
double fDeltaT
Definition: MEClusters.h:28
void me::SlcME::SetDistToSlc ( double  distToSlc)

Definition at line 22 of file MEClusters.cxx.

References fDistToSlc.

Referenced by me::MEFinder::MakeSlcME(), and me::MEFinder::MakeTrkME().

23 { fDistToSlc = distToSlc; }
double fDistToSlc
Definition: MEClusters.h:29
void rb::Cluster::SetID ( int  id)
inlineinherited
void me::SlcME::SetMID ( double  mid)
void rb::Cluster::SetNoise ( bool  noise)
inlineinherited

Declare the cluster to consist of noise hits or not.

Definition at line 161 of file Cluster.h.

References rb::Cluster::fNoiseCluster.

Referenced by rb::Cluster::Exclude(), slicer::Slicer4D::produce(), airshower::AirSlicer::produce(), jmshower::JMClusterMerge::produce(), tdslicer::TDSlicer::produce(), and slicer::Slicer::WindowSlice().

161 {fNoiseCluster = noise;}
bool fNoiseCluster
flag for whether this is a noise cluster
Definition: Cluster.h:322
void me::SlcME::SetParentSlc ( art::Ptr< rb::Cluster slc)
void rb::Cluster::SetWeight ( unsigned int  globalIdx,
double  weight 
)
inherited

Set weight of the cell at this index.

Definition at line 327 of file Cluster.cxx.

References rb::Cluster::fPrecalcTotalGeV, geo::kX, geo::kY, and rb::Cluster::NXCell().

Referenced by rb::Cluster::IsNoise(), rb::Shower::Shower(), and rb::Track::Track().

328  {
329  fPrecalcTotalGeV = -1; // Invalidate any cached value
330 
331  if(globalIdx < NXCell())
332  SetWeight(geo::kX, globalIdx, weight);
333  else
334  SetWeight(geo::kY, globalIdx-NXCell(), weight);
335  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
const Var weight
Vertical planes which measure X.
Definition: PlaneGeo.h:28
void SetWeight(unsigned int globalIdx, double weight)
Set weight of the cell at this index.
Definition: Cluster.cxx:327
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
void rb::Cluster::SetWeight ( geo::View_t  view,
unsigned int  viewIdx,
double  weight 
)
inherited

Set weight of the cell at this index in this view.

Definition at line 338 of file Cluster.cxx.

References ana::assert(), rb::Cluster::EnsureWeightAlloc(), rb::Cluster::fPrecalcTotalGeV, rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, rb::Cluster::fYWeights, geo::kX, art::PtrVector< T >::size(), and ana::weight.

340  {
341  fPrecalcTotalGeV = -1; // Invalidate any cached value
342 
343  assert(weight >= 0 && weight <= 1);
344 
345  // Are we optimizing (omitting) the weights storage?
346  const bool optWeights = (weight == 1 && fXWeights.empty() && fYWeights.empty());
347  if(!optWeights) EnsureWeightAlloc();
348 
349  if(view == geo::kX){
350  assert(viewIdx < fXCell.size());
351  if(!optWeights) fXWeights[viewIdx] = weight;
352  }
353  else{
354  assert(viewIdx < fYCell.size());
355  if(!optWeights) fYWeights[viewIdx] = weight;
356  }
357  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
const Var weight
Vertical planes which measure X.
Definition: PlaneGeo.h:28
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
size_type size() const
Definition: PtrVector.h:308
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
assert(nhit_max >=nhit_nbins)
void EnsureWeightAlloc()
Helper. Resizes weights vectors to match cell vectors.
Definition: Cluster.cxx:712
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
void rb::Cluster::StandardSort ( )
inherited

Put the cells in the cluster into a standard order.

Helps ensure that two clusters composed of the same cell hits present in exactly the same way.

Definition at line 731 of file Cluster.cxx.

References art::PtrVector< T >::begin(), om::cerr, art::PtrVector< T >::end(), allTimeWatchdog::endl, rb::Cluster::fXCell, rb::Cluster::fXWeights, rb::Cluster::fYCell, rb::Cluster::fYWeights, and rb::standard_compare().

Referenced by rb::Cluster::ExtentTNS().

732  {
733  //
734  // Unweighted clusters are an easy sorting job
735  //
736  if (fXWeights.size()==0 && fYWeights.size()==0) {
737  sort(fXCell.begin(), fXCell.end(), standard_compare);
738  sort(fYCell.begin(), fYCell.end(), standard_compare);
739  return;
740  }
741  //
742  // \todo Sorting weighted hits requires more complicated code
743  //
744  std::cerr << __FILE__ << ":" << __LINE__
745  << " Sort for weighted hits not implemented"
746  << std::endl;
747  abort();
748  }
iterator begin()
Definition: PtrVector.h:223
OStream cerr
Definition: OStream.cxx:7
art::PtrVector< rb::CellHit > fYCell
collection of y-view cells in cluster
Definition: Cluster.h:318
bool standard_compare(const art::Ptr< rb::CellHit > &a, const art::Ptr< rb::CellHit > &b)
Definition: Cluster.cxx:719
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
iterator end()
Definition: PtrVector.h:237
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
double rb::Cluster::TotalADC ( ) const
inherited

Sum of the ADC of all the contained hits.

Definition at line 360 of file Cluster.cxx.

References rawdata::RawDigit::ADC(), rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), runNovaSAM::ret, and rb::Cluster::Weight().

Referenced by caf::AddSlcMEToVec(), caf::AddTrkMEToVec(), sn::SupernovaAna::analyze(), sn::SNSlicerAna::analyze(), tbem::TBRecoAna::analyze(), air::AirKalmanAna::analyze(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), sn::SNSlicer::ClusterIsGood(), mono::HighEnergySliceRemoval::is_high_energy_slice(), rb::Cluster::IsNoise(), rb::operator<<(), air::AirFilter::parallel_muon_slice(), and skim::ParametersNumu::ParametersNumu().

361  {
362  double ret = 0;
363  for(unsigned int i = 0; i < NCell(); ++i)
364  ret += Cell(i)->ADC()*Weight(i);
365  return ret;
366  }
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
int16_t ADC(uint32_t i) const
Definition: RawDigit.cxx:58
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
double rb::Cluster::TotalGeV ( EEnergyCalcScheme  escheme = kRecomputeEnergy) const
inherited

Simple sum of the estimated GeV of all the hits.

WARNING: This is not a sensible energy estimator by itself. If you just want a simple calorimetric estimate look at CalorimetricEnergy. Otherwise, a range of more sophisticated/elaborate estimators are available elsewhere.

Definition at line 378 of file Cluster.cxx.

References allTimeWatchdog::endl, rb::Cluster::fPrecalcTotalGeV, rb::RecoHit::GeV(), MECModelEnuComparisons::i, rb::RecoHit::IsCalibrated(), rb::Cluster::kUsePrecalcEnergy, rb::Cluster::NCell(), rb::Cluster::RecoHit(), runNovaSAM::ret, rb::Cluster::TotalGeVFastClusterOnly(), and rb::Cluster::Weight().

Referenced by calib::TestParticleCorrections::analyze(), sn::SNSlicerAna::analyze(), vf::TrackEva::analyze(), tbem::TBRecoAna::analyze(), bpfit::BPFTmvaTrainer::analyze(), bpf::BPFCVNAna::analyze(), htk::HoughTrack::analyze(), rb::Cluster::CalorimetricEnergy(), sn::SNMichelAnalyzer::ClusterAroundTrackEnds(), bpf::BPFCVNAna::CompareE(), nnbar::NNbarUtilities::energyBalancingVertex(), numue::NumuEAlg::FDEnergy(), caf::FillNueEnergyVars(), trk::CosmicTrackAna::FillRecoInfo(), fnex::NuEAnalysisSetup::FillRecoVars(), cosrej::CosRejFxs::getActivity(), numusand::NumuSandFxs::getActivityVtx(), ndreco::NDRecoFxs::getProngActivity(), ndreco::NDRecoFxs::getProngDedx(), ndreco::NDRecoFxs::getTrackActivity(), ndreco::NDRecoFxs::getTrackDedx(), mono::MonopoleCluster::is_cosmic_track(), numue::NumuEAlg::NDEnergy(), skim::ParametersNue::ParametersNue(), skim::ParametersNumu::ParametersNumu(), qeef::QeFinder::produce(), numusand::FillSandbox::produce(), slid::SliceLIDBuilder::produce(), cosrej::CosRej::produce(), numue::NumuEnergy::produce(), sn::SupernovaMCCluster::produce(), bpfit::BPFEnergyEstimator::produce(), bpfit::BPFEnergyEstimatorOnly::produce(), cvn::ProngClassify(), and rb::Cluster::SavePrecalcTotalGeV().

379  {
380  if(escheme == kUsePrecalcEnergy){
381  if(fPrecalcTotalGeV >= 0) return fPrecalcTotalGeV;
382 
383  mf::LogWarning("rb::Cluster::TotalGeV()") << "Passed kUsePrecalcEnergy but no energy was cached in the Cluster. Falling back to recomputing." << std::endl;
384  }
385 
386  // Optimization that's only safe for literal Clusters
387  if(typeid(*this) == typeid(rb::Cluster)) return TotalGeVFastClusterOnly();
388 
389  // For derived classes, fall through to the generic implementation
390 
391  double ret = 0;
392  for(unsigned int i = 0; i < NCell(); ++i){
393  const rb::RecoHit rhit = RecoHit(i);
394  if(rhit.IsCalibrated()) ret += rhit.GeV()*Weight(i);
395  }
396  return ret;
397  }
double fPrecalcTotalGeV
-1 = uninitialized
Definition: Cluster.h:324
A collection of associated CellHits.
Definition: Cluster.h:47
double TotalGeVFastClusterOnly() const
Optimized form of TotalGeV, only valid for actual Clusters.
Definition: Cluster.cxx:400
Calibrated quantities relying on position in the orthogonal view. To generate a rb::CellHit from a rb...
Definition: RecoHit.h:19
Use a value computed by a previous call to SavePrecalcTotalGeV.
Definition: Cluster.h:179
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
rb::RecoHit RecoHit(const art::Ptr< rb::CellHit > &chit) const
Return calibrated hit based on assumed W coordinate.
Definition: Cluster.cxx:259
bool IsCalibrated() const
You MUST check here before accessing PECorr, MIP or GeV.
Definition: RecoHit.cxx:35
float GeV() const
Definition: RecoHit.cxx:69
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
double rb::Cluster::TotalPE ( ) const
inherited

Sum of the PE value of all the contained hits.

Definition at line 369 of file Cluster.cxx.

References rb::Cluster::Cell(), MECModelEnuComparisons::i, rb::Cluster::NCell(), rb::CellHit::PE(), runNovaSAM::ret, and rb::Cluster::Weight().

Referenced by rb::Cluster::IsNoise().

370  {
371  double ret = 0;
372  for(unsigned int i = 0; i < NCell(); ++i)
373  ret += Cell(i)->PE()*Weight(i);
374  return ret;
375  }
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
float PE() const
Definition: CellHit.h:42
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
double rb::Cluster::TotalWeight ( ) const
inherited

Sum of all the weights. The effective number of hits.

Definition at line 430 of file Cluster.cxx.

References rb::Cluster::NCell(), runNovaSAM::ret, and rb::Cluster::Weight().

431  {
432  double ret = 0;
433  for(unsigned int cellIdx = 0; cellIdx < NCell(); ++cellIdx)
434  ret += Weight(cellIdx);
435  return ret;
436  }
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
virtual geo::View_t rb::Cluster::View ( ) const
inlinevirtualinherited
double rb::Cluster::W ( const rb::CellHit chit) const
virtualinherited

Estimate the unmeasured coordinate of chit.

The nomenclature for the coordinates is that XYZ are the physical coordinates. Whichever of XY is measured by the cell is "V", the direction along the cell is "W". The origin of VW space is the same as the origin of XY space, the detector centreline.

This method should be overridden in all descendants of Cluster which have additional information to make this determination.

For Cluster, this is simply the average coordinate of all hits in the view in question.

Parameters
chitAny CellHit, not necessarily owned by this container
Returns
Estimated unmeasured coordinate of this hit (cm) assuming it to be associated with this reconstructed object.

Reimplemented in rb::Track, and rb::Prong.

Definition at line 121 of file Cluster.cxx.

References geo::GeometryBase::DetId(), geom(), novadaq::cnv::kTESTBEAM, geo::kX, geo::kY, rb::Cluster::MeanV(), and rb::CellHit::View().

Referenced by ncs::Xeff::analyze(), ncs::ROCKMRE::analyze(), slid::LIDTraining::analyze(), ncs::NCAna::analyze(), caf::FillHadClustVars(), caf::FillSliceVars(), bpfit::DimuonFitter::FitView(), jmshower::RecoJMShower::GetRVPStats(), rb::Cluster::ID(), nuesand::FillNueSandbox::produce(), lem::Preselection::produce(), presel::NuePresel::produce(), jmshower::NueSel::produce(), rvp::RecVarPID::produce(), jmshower::NueSelLID::produce(), jmshower::RecoJMShower::RecoShowers(), and lem::LEMSummarizer::SliceToLEMInput().

122  {
123  geo::View_t otherView = geo::kX;
124  if(hit->View() == geo::kX) otherView = geo::kY;
125 
126  // TB horizontal modules (Y-view) have readout on opposite end as ND/FD
128  if(geom->DetId() == novadaq::cnv::kTESTBEAM && hit->View() == geo::kY) return -MeanV(otherView);
129 
130  return MeanV(otherView);
131  }
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
Vertical planes which measure X.
Definition: PlaneGeo.h:28
double MeanV(geo::View_t view, rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.cxx:546
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
novadaq::cnv::DetId DetId() const
Prefer ds::DetectorService::DetId() instead.
Definition: GeometryBase.h:243
Definition: event.h:1
void geom(int which=0)
Definition: geom.C:163
double rb::Cluster::Weight ( unsigned int  globalIdx) const
inherited

Weight assigned to the cell.

Definition at line 209 of file Cluster.cxx.

References rb::Cluster::fXWeights, rb::Cluster::fYWeights, geo::kX, geo::kY, and rb::Cluster::NXCell().

Referenced by fuzz::ViewMatchAlg::CalcEnergyProfile(), nerd::ViewMatchAlg::CalcEnergyProfile(), slid::NuEEnergyAlg::CellEnergy(), skim::SkimmingUtils::CopySlice(), rb::Cluster::Exclude(), trk::CosmicTrackAna::FillRecoInfo(), fuzz::FuzzyKValidate::GeVCalc(), fuzz::ViewMatchAlg::MakeTestProng(), nerd::ViewMatchAlg::MakeTestProng(), rb::Cluster::MeanTNS(), rb::Cluster::MinMaxMeanXYZ(), nussand::FillNusSandbox::produce(), rb::Cluster::TotalADC(), rb::Cluster::TotalGeV(), rb::Cluster::TotalGeVFastClusterOnly(), rb::Cluster::TotalPE(), rb::Cluster::TotalWeight(), murem::TrackCleanUpAlg::TrackEinMIP(), rb::Cluster::WeightedHits(), and rb::Cluster::YCells().

210  {
211  if(fXWeights.empty() && fYWeights.empty()) return 1;
212 
213  if(globalIdx < NXCell()) return Weight(geo::kX, globalIdx);
214  return Weight(geo::kY, globalIdx-NXCell());
215  }
Vertical planes which measure X.
Definition: PlaneGeo.h:28
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
double rb::Cluster::Weight ( geo::View_t  view,
unsigned int  viewIdx 
) const
inherited

Weight assigned to the cell.

Definition at line 218 of file Cluster.cxx.

References ana::assert(), rb::Cluster::fXWeights, rb::Cluster::fYWeights, and geo::kX.

219  {
220  if(fXWeights.empty() && fYWeights.empty()) return 1;
221 
222  if(view == geo::kX){
223  assert(viewIdx < fXWeights.size());
224  return fXWeights[viewIdx];
225  }
226  else{
227  assert(viewIdx < fYWeights.size());
228  return fYWeights[viewIdx];
229  }
230  }
Vertical planes which measure X.
Definition: PlaneGeo.h:28
std::vector< double > fXWeights
Weights, matching cell indexing.
Definition: Cluster.h:319
assert(nhit_max >=nhit_nbins)
std::vector< double > fYWeights
May be empty, means all weights are 1.
Definition: Cluster.h:320
std::vector< rb::WeightedHit > rb::Cluster::WeightedHits ( ) const
inherited

Get all hits from both views, with weights attached.

Definition at line 200 of file Cluster.cxx.

References rb::Cluster::Cell(), rb::Cluster::NCell(), and rb::Cluster::Weight().

Referenced by rb::Cluster::YCells().

201  {
202  std::vector<rb::WeightedHit> all;
203  for(unsigned int cellIdx = 0; cellIdx < NCell(); ++cellIdx)
204  all.push_back(rb::WeightedHit(Cell(cellIdx), Weight(cellIdx)));
205  return all;
206  }
unsigned int NCell() const
Number of cells in either view.
Definition: Cluster.h:110
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
Simple hit+weight pair, returned from rb::Cluster::WeightedHits.
Definition: WeightedHit.h:18
double Weight(unsigned int globalIdx) const
Weight assigned to the cell.
Definition: Cluster.cxx:209
art::Ptr< rb::CellHit > rb::Cluster::XCell ( unsigned int  xIdx) const
inherited
const art::PtrVector<rb::CellHit>& rb::Cluster::XCells ( ) const
inlineinherited

Get all cells from the x-view.

Definition at line 124 of file Cluster.h.

References rb::Cluster::fXCell.

Referenced by upmuana::UpMuAnalysis::analyze(), caf::FillDiFShowerVars(), caf::FillDiFVars(), caf::FillProngVars(), caf::FillShowerVars(), mono::MonopoleCluster::find_isolated_hits(), zcl::FMMTracker::produce(), cvn::ProngClassify(), and mono::Track3D::Track3D().

124 { return fXCell; }
art::PtrVector< rb::CellHit > fXCell
collection of x-view cells in cluster
Definition: Cluster.h:317
art::Ptr< rb::CellHit > rb::Cluster::YCell ( unsigned int  yIdx) const
inherited
const art::PtrVector<rb::CellHit>& rb::Cluster::YCells ( ) const
inlineinherited

Member Data Documentation

double me::SlcME::fDeltaT
protected

Definition at line 28 of file MEClusters.h.

Referenced by DeltaT(), and SetDeltaT().

double me::SlcME::fDistToSlc
protected

Definition at line 29 of file MEClusters.h.

Referenced by DistToSlc(), and SetDistToSlc().

int rb::Cluster::fID
protectedinherited

ID for cluster.

Definition at line 321 of file Cluster.h.

Referenced by rb::Cluster::Exclude(), rb::Cluster::ID(), and rb::Cluster::SetID().

double me::SlcME::fMID
protected

Definition at line 27 of file MEClusters.h.

Referenced by MID(), and SetMID().

bool rb::Cluster::fNoiseCluster
protectedinherited

flag for whether this is a noise cluster

Definition at line 322 of file Cluster.h.

Referenced by rb::Cluster::Exclude(), rb::Cluster::IsNoise(), and rb::Cluster::SetNoise().

art::Ptr<rb::Cluster> me::SlcME::fParentSlc
protected

Definition at line 30 of file MEClusters.h.

Referenced by ParentSlc(), and SetParentSlc().

double rb::Cluster::fPrecalcTotalGeV
protectedinherited
geo::View_t rb::Cluster::fView
protectedinherited
art::PtrVector<rb::CellHit> rb::Cluster::fXCell
protectedinherited
std::vector<double> rb::Cluster::fXWeights
protectedinherited
art::PtrVector<rb::CellHit> rb::Cluster::fYCell
protectedinherited
std::vector<double> rb::Cluster::fYWeights
protectedinherited

The documentation for this class was generated from the following files: