Histogram class for time distributions with suppressed empty bins. More...
#include "sevt/TimeDistribution.h"
Classes | |
struct | InternalMapFunctor |
Public Types | |
typedef boost::transform_iterator < InternalMapFunctor, InternalConstIterator, Tuple > | SparseIterator |
typedef boost::tuple< const int, const T > | Tuple |
typedef T | ValueType |
Public Member Functions | |
void | AddTime (const double time, const T weight=T(1)) |
Add an entry (optionally weighted) for the given time. Slot will be computed. More... | |
T | At (const double time) const |
void | Clear () |
Remove contents of the TimeDistribution. More... | |
fData | erase (it) |
double | GetBinning () const |
Size of one slot. More... | |
int | GetNumSlots () const |
Number of slots from first slot with data up to last slot with data, including empty slots. More... | |
int | GetStart () const |
First slot with data. More... | |
int | GetStop () const |
Last slot with data (1 less than First slot if no data) More... | |
if (!ins.second) | |
bool | operator!= (const TimeDistribution &td) const |
TimeDistribution< T > | operator+ (const TimeDistribution< T > &td) const |
Add two traces. Adds only bins that have data in them. More... | |
TimeDistribution< T > & | operator+= (const TimeDistribution< T > &td) |
bool | operator== (const TimeDistribution &td) const |
T & | operator[] (const int index) |
Return slot content. More... | |
const T & | operator[] (const int index) const |
Return slot content. More... | |
T & | operator[] (const double time) |
Return contents for slot containing the specified time. More... | |
const T & | operator[] (const double time) const |
int | Purge () |
Remove empty slots and return their number. More... | |
void | SetTime (const double time, const T weight=T(1)) |
SparseIterator | SparseBegin () const |
Iterator over time slots with data in them (skips empty slots). More... | |
SparseIterator | SparseEnd () const |
TimeDistribution (const double slotSize) | |
Constructor takes the bin size as an argument. More... | |
Public Attributes | |
T | const |
Query value without slot creation. More... | |
else | |
const std::pair < InternalIterator, bool > | ins = fData.insert(InternalMapValue(slot, weight)) |
return | it == fData.end() ? 0 : it->second |
void | |
Add an entry (optionally weighted) in the given slot. The slot may be negative. More... | |
Private Types | |
typedef InternalMap::const_iterator | InternalConstIterator |
typedef InternalMap::iterator | InternalIterator |
typedef std::map< int, T > | InternalMap |
typedef InternalMap::value_type | InternalMapValue |
Private Attributes | |
InternalMap | fData |
double | fSlotSize = 0 |
Friends | |
class | TimeDistributionAlgorithm |
Histogram class for time distributions with suppressed empty bins.
Histogram class for time distributions with suppressed empty bins. Includes two iterator types:
1) SparseIterator steps through time slots skipping those for which values were never assigned.
Definition at line 15 of file TimeDistribution-fwd.h.
|
private |
Definition at line 44 of file TimeDistribution.h.
|
private |
Definition at line 43 of file TimeDistribution.h.
|
private |
Definition at line 41 of file TimeDistribution.h.
|
private |
Definition at line 42 of file TimeDistribution.h.
typedef boost::transform_iterator<InternalMapFunctor, InternalConstIterator, Tuple> utl::TimeDistribution< T >::SparseIterator |
Sparse iteration skips bins with no content. Here is a code snippet illustrating iteration through sparse bins
Definition at line 72 of file TimeDistribution.h.
typedef boost::tuple<const int, const T> utl::TimeDistribution< T >::Tuple |
Definition at line 48 of file TimeDistribution.h.
typedef T utl::TimeDistribution< T >::ValueType |
Definition at line 47 of file TimeDistribution.h.
|
inline |
Constructor takes the bin size as an argument.
Definition at line 75 of file TimeDistribution.h.
|
inline |
Add an entry (optionally weighted) for the given time. Slot will be computed.
The bin to increment will be computed based on the bin size
Definition at line 112 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize.
Referenced by G4TankSimulatorASCII::G4TankPMT::AddPhoton(), G4XTankSimulatorAG::G4XTankPMT::AddPhoton(), TabulatedTankSimulatorNS::TabulatedTankSimulator::AddPhoton(), G4TankSimulatorOG::G4TankSimulator::AddPhoton(), G4StationSimulatorOG::G4StationSimulator::AddPhoton(), FastTankSimulatorOG::FastTankSimulator::CalculatePhotoElectrons(), SdPMTSimulatorOG::SdPMTSimulator::ConvertPEToBaseSignal(), SdPMTSimulatorASCII::SdPMTSimulator::ConvertPEToBaseSignal(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::NormalizeFrequencyResponse(), io::TimeDistribution_ROOT< T >::operator>>(), G4XTankSimulatorAG::G4XTankPMTAction::ProcessHits(), G4TankSimulatorASCII::G4TankPMTAction::ProcessHits(), G4TankSimulatorASCII::G4ASCIIAction::ProcessHits(), RPCEventBuilderLX::RPCEventBuilder::Run(), RPCElectronicsSimulatorLX::RPCElectronicsSimulator::Run(), RPCSimulatorLX::RPCSimulator::Run(), testTimeDistribution::testSparsness(), and TestOfflineUtils_ROOT_io::testTimeDistributionD().
|
inline |
Definition at line 163 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize.
Referenced by SdBaselineSimulatorASCII::SdBaselineSimulator::AddPedestal(), utl::TimeDistributionAlgorithm::Centroid(), SdSimulationCalibratorOG::DumpTrace(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), SdSimulationCalibratorOG::FindSignal(), TestOfflineUtils_ROOT_io::IsEqual(), utl::TimeDistributionAlgorithm::MeanRMS(), SdSimulationCalibratorOG::ProcessTrace(), utl::TimeDistributionAlgorithm::RMS(), SdPMTSimulatorOG::SdPMTSimulator::SimulateSaturation(), testTimeDistribution::testAssignment(), testTimeDistribution::testMultiTimeDistribution(), testTimeDistribution::testOperatorArithmetic(), testTimeDistribution::testSparsness(), and sdet::UUBDownsampleFilter().
|
inline |
Remove contents of the TimeDistribution.
Definition at line 78 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData, and utl::swap().
Referenced by SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), and testTimeDistribution::testMultiTimeDistribution().
fData utl::TimeDistribution< T >::erase | ( | it | ) |
|
inline |
Size of one slot.
Definition at line 204 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize.
Referenced by SdPMTSimulatorOG::SdPMTSimulator::ConvertPEToBaseSignal(), SdPMTSimulatorASCII::SdPMTSimulator::ConvertPEToBaseSignal(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), utl::TimeDistribution< T >::operator+(), utl::TimeDistribution< T >::operator+=(), utl::Print(), RPCEventBuilderLX::RPCEventBuilder::Run(), RPCElectronicsSimulatorLX::RPCElectronicsSimulator::Run(), SdBaselineSimulatorASCII::SdBaselineSimulator::Run(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::Run(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::SimulateUndershoot(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::SimulateUndershoot(), testTimeDistribution::testAssignment(), and DataWriter::WriteInfo().
|
inline |
Number of slots from first slot with data up to last slot with data, including empty slots.
Definition at line 213 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by testTimeDistribution::testOperatorBracket(), and sdet::UUBDownsampleFilter().
|
inline |
First slot with data.
Definition at line 207 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by SdBaselineSimulatorASCII::SdBaselineSimulator::AddPedestal(), utl::TimeDistributionAlgorithm::Centroid(), testSEventImpl::checkPMTSimDataValues(), SdSimulationCalibratorOG::DumpTrace(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), SdSimulationCalibratorOG::FindSignal(), cevt::Pad::GetTotalHits(), cevt::Station::GetTotalHits(), utl::TimeDistributionAlgorithm::MeanRMS(), utl::TimeDistributionAlgorithm::RMS(), RPCEventBuilderLX::RPCEventBuilder::Run(), ShowerInventorAnalyzerNS::ShowerInventorAnalyzer::Run(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::Run(), testSEventImpl::setPMTSimDataValues(), SdPMTSimulatorASCII::SdPMTSimulator::SimulateSaturation(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::SimulateUndershoot(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::SimulateUndershoot(), utl::TimeDistributionAlgorithm::Sum(), testTimeDistribution::testOperatorArithmetic(), testTimeDistribution::testOperatorBracket(), sdet::UUBDownsampleFilter(), and DataWriter::WriteInfo().
|
inline |
Last slot with data (1 less than First slot if no data)
Definition at line 210 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by SdBaselineSimulatorASCII::SdBaselineSimulator::AddPedestal(), utl::TimeDistributionAlgorithm::Centroid(), testSEventImpl::checkPMTSimDataValues(), SdSimulationCalibratorOG::DumpTrace(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillConvolResult(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), SdSimulationCalibratorOG::FindSignal(), cevt::Pad::GetTotalHits(), cevt::Station::GetTotalHits(), utl::TimeDistributionAlgorithm::MeanRMS(), utl::TimeDistributionAlgorithm::RMS(), ShowerInventorAnalyzerNS::ShowerInventorAnalyzer::Run(), testSEventImpl::setPMTSimDataValues(), SdPMTSimulatorASCII::SdPMTSimulator::SimulateSaturation(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::SimulateUndershoot(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::SimulateUndershoot(), utl::TimeDistributionAlgorithm::Sum(), testTimeDistribution::testOperatorArithmetic(), testTimeDistribution::testOperatorBracket(), sdet::UUBDownsampleFilter(), and DataWriter::WriteInfo().
|
inline |
Definition at line 102 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData, and utl::TimeDistribution< T >::it.
|
inline |
Definition at line 200 of file TimeDistribution.h.
References utl::TimeDistribution< T >::operator==().
|
inline |
Add two traces. Adds only bins that have data in them.
Definition at line 168 of file TimeDistribution.h.
References ERROR, and utl::TimeDistribution< T >::GetBinning().
|
inline |
Definition at line 184 of file TimeDistribution.h.
References ERROR, and utl::TimeDistribution< T >::GetBinning().
|
inline |
Definition at line 197 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData, and utl::TimeDistribution< T >::fSlotSize.
Referenced by utl::TimeDistribution< T >::operator!=().
|
inline |
Return slot content.
If no slot exists for requested index, create new slot and initialize to 0.
Definition at line 132 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by utl::TimeDistribution< T >::operator[]().
|
inline |
Return slot content.
Slight optimization for const case. Does not create new slots, returns reference to zero in case of a miss.
Definition at line 138 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData, and utl::TimeDistribution< T >::it.
|
inline |
Return contents for slot containing the specified time.
If no slot exists for requested index, create a new slot and initialize to 0.
Definition at line 148 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize, and utl::TimeDistribution< T >::operator[]().
|
inline |
Definition at line 151 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize, and utl::TimeDistribution< T >::operator[]().
|
inline |
Remove empty slots and return their number.
Definition at line 82 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData, and utl::TimeDistribution< T >::it.
|
inline |
Definition at line 127 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fSlotSize.
Referenced by SdBaselineSimulatorASCII::SdBaselineSimulator::AddPedestal(), SdFilterFADCSimulatorMTU::SdFilterFADCSimulator::FillFADCTraces(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::FillFADCTraces(), testTimeDistribution::testMultiTimeDistribution(), and testTimeDistribution::testSparsness().
|
inline |
Iterator over time slots with data in them (skips empty slots).
Definition at line 217 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by SdPMTSimulatorASCII::SdPMTSimulator::ConvertPEToBaseSignal(), TestOfflineUtils_ROOT_io::IsEqual(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::NormalizeFrequencyResponse(), utl::Print(), RPCEventBuilderLX::RPCEventBuilder::Run(), RPCElectronicsSimulatorLX::RPCElectronicsSimulator::Run(), SdPMTSimulatorASCII::SdPMTSimulator::Run(), testTimeDistribution::testOperatorArithmetic(), testTimeDistribution::testSparsness(), io::TimeDistribution_ROOT< T >::TimeDistribution_ROOT(), and DataWriter::WriteInfo().
|
inline |
Definition at line 219 of file TimeDistribution.h.
References utl::TimeDistribution< T >::fData.
Referenced by SdPMTSimulatorASCII::SdPMTSimulator::ConvertPEToBaseSignal(), TestOfflineUtils_ROOT_io::IsEqual(), SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::NormalizeFrequencyResponse(), utl::Print(), RPCEventBuilderLX::RPCEventBuilder::Run(), RPCElectronicsSimulatorLX::RPCElectronicsSimulator::Run(), SdPMTSimulatorASCII::SdPMTSimulator::Run(), testTimeDistribution::testOperatorArithmetic(), testTimeDistribution::testSparsness(), io::TimeDistribution_ROOT< T >::TimeDistribution_ROOT(), and DataWriter::WriteInfo().
|
friend |
Definition at line 227 of file TimeDistribution.h.
T utl::TimeDistribution< T >::const |
Query value without slot creation.
Definition at line 158 of file TimeDistribution.h.
utl::TimeDistribution< T >::else |
Definition at line 120 of file TimeDistribution.h.
|
private |
Definition at line 224 of file TimeDistribution.h.
Referenced by utl::TimeDistributionAlgorithm::Centroid(), utl::TimeDistribution< T >::Clear(), utl::TimeDistribution< T >::GetNumSlots(), utl::TimeDistribution< T >::GetStart(), utl::TimeDistribution< T >::GetStop(), utl::TimeDistribution< T >::if(), utl::TimeDistributionAlgorithm::MeanRMS(), utl::TimeDistribution< T >::operator==(), utl::TimeDistribution< T >::operator[](), utl::TimeDistribution< T >::Purge(), utl::TimeDistributionAlgorithm::RMS(), utl::TimeDistribution< T >::SparseBegin(), utl::TimeDistribution< T >::SparseEnd(), and utl::TimeDistributionAlgorithm::Sum().
|
private |
Definition at line 225 of file TimeDistribution.h.
Referenced by utl::TimeDistribution< T >::AddTime(), utl::TimeDistribution< T >::At(), utl::TimeDistribution< T >::GetBinning(), utl::TimeDistribution< T >::operator==(), utl::TimeDistribution< T >::operator[](), and utl::TimeDistribution< T >::SetTime().
const std::pair<InternalIterator, bool> utl::TimeDistribution< T >::ins = fData.insert(InternalMapValue(slot, weight)) |
Definition at line 101 of file TimeDistribution.h.
return utl::TimeDistribution< T >::it == fData.end() ? 0 : it->second |
Definition at line 160 of file TimeDistribution.h.
Referenced by utl::TimeDistribution< T >::if(), utl::TimeDistribution< T >::operator[](), and utl::TimeDistribution< T >::Purge().
utl::TimeDistribution< T >::void |
Add an entry (optionally weighted) in the given slot. The slot may be negative.
Definition at line 98 of file TimeDistribution.h.