31 std::vector< recob::OpFlash >&,
41 double const& MinTime,
42 double const& BinWidth,
43 double const& BinOffset);
46 unsigned int const& HitIndex,
48 float const& FlashThreshold,
49 std::vector< double >& Binned,
51 std::vector< int >& FlashesInAccumulator);
54 std::vector< int >
const&,
55 std::vector< double >
const&,
56 std::vector< double >
const&,
59 std::vector< recob::OpHit >
const&,
64 std::vector< double >
const& BinnedPE,
65 int const& Accumulator,
67 std::map<
int, std::vector< int > >,
68 std::greater< double > >& FlashesBySize);
73 std::vector< int >
const& HitClaimedByFlash,
74 std::vector< int >& HitsThisFlash);
77 std::vector< int >
const& HitsThisFlash,
78 float const& FlashThreshold,
80 std::vector< int >& HitClaimedByFlash);
83 std::vector< recob::OpHit >
const&
HitVector,
86 float const& WidthTolerance,
87 float const& FlashThreshold);
89 void FindSeedHit(std::map<
double, std::vector< int >,
90 std::greater< double > >
const& HitsBySize,
91 std::vector< bool >& HitsUsed,
92 std::vector< recob::OpHit >
const&
HitVector,
93 std::vector< int >& HitsThisRefinedFlash,
94 double& PEAccumulated,
96 double& FlashMinTime);
99 std::vector< bool >& HitsUsed,
101 double const& WidthTolerance,
102 std::vector< int >& HitsThisRefinedFlash,
103 double& PEAccumulated,
104 double& FlashMaxTime,
105 double& FlashMinTime);
109 std::vector< int >
const& HitsThisRefinedFlash,
110 double const& PEAccumulated,
111 float const& FlashThreshold,
112 std::vector< bool >& HitsUsed);
115 std::vector< recob::OpHit >
const&
HitVector,
116 std::vector< recob::OpFlash >& FlashVector,
119 float const& TrigCoinc);
128 std::vector< double >& PEs);
132 std::vector< double >& sumw,
133 std::vector< double >& sumw2,
144 double const& iWidth,
147 double const& jWidth);
150 size_t const& BeginFlash,
151 std::vector< bool >& MarkedForRemoval);
155 std::vector< recob::OpFlash >& FlashVector,
156 size_t const& BeginFlash,
158 RefinedHitsPerFlash);
160 template <
typename T,
typename Compare >
162 int offset, Compare compare);
164 template <
typename T >
void RemoveLateLight(std::vector< recob::OpFlash > &FlashVector, std::vector< std::vector< int > > &RefinedHitsPerFlash)
void RunFlashFinder(std::vector< recob::OpHit > const &HitVector, std::vector< recob::OpFlash > &FlashVector, std::vector< std::vector< int > > &AssocList, double const &BinWidth, geo::GeometryCore const &geom, float const &FlashThreshold, float const &WidthTolerance, detinfo::DetectorClocks const &ts, float const &TrigCoinc)
void RemoveFlashesFromVectors(std::vector< bool > const &MarkedForRemoval, std::vector< recob::OpFlash > &FlashVector, size_t const &BeginFlash, std::vector< std::vector< int > > &RefinedHitsPerFlash)
void AssignHitsToFlash(std::vector< int > const &FlashesInAccumulator1, std::vector< int > const &FlashesInAccumulator2, std::vector< double > const &Binned1, std::vector< double > const &Binned2, std::vector< std::vector< int > > const &Contributors1, std::vector< std::vector< int > > const &Contributors2, std::vector< recob::OpHit > const &HitVector, std::vector< std::vector< int > > &HitsPerFlash, float const &FlashThreshold)
void AddHitContribution(recob::OpHit const ¤tHit, double &MaxTime, double &MinTime, double &AveTime, double &FastToTotal, double &AveAbsTime, double &TotalPE, std::vector< double > &PEs)
void apply_permutation(std::vector< T > &vec, std::vector< int > const &p)
void FillAccumulator(unsigned int const &AccumIndex, unsigned int const &HitIndex, double const &PE, float const &FlashThreshold, std::vector< double > &Binned, std::vector< std::vector< int > > &Contributors, std::vector< int > &FlashesInAccumulator)
pure virtual base interface for detector clocks
void RefineHitsInFlash(std::vector< int > const &HitsThisFlash, std::vector< recob::OpHit > const &HitVector, std::vector< std::vector< int > > &RefinedHitsPerFlash, float const &WidthTolerance, float const &FlashThreshold)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Access the description of detector geometry.
void FindSeedHit(std::map< double, std::vector< int >, std::greater< double > > const &HitsBySize, std::vector< bool > &HitsUsed, std::vector< recob::OpHit > const &HitVector, std::vector< int > &HitsThisRefinedFlash, double &PEAccumulated, double &FlashMaxTime, double &FlashMinTime)
std::vector< int > sort_permutation(std::vector< T > const &vec, int offset, Compare compare)
double GetLikelihoodLateLight(double const &iPE, double const &iTime, double const &iWidth, double const &jPE, double const &jTime, double const &jWidth)
Description of geometry of one entire detector.
std::vector< art::Ptr< recob::Hit > > HitVector
Conversion of times between different formats and references.
Encapsulate the geometry of an optical detector.
void CheckAndStoreFlash(std::vector< std::vector< int > > &RefinedHitsPerFlash, std::vector< int > const &HitsThisRefinedFlash, double const &PEAccumulated, float const &FlashThreshold, std::vector< bool > &HitsUsed)
void ClaimHits(std::vector< recob::OpHit > const &HitVector, std::vector< int > const &HitsThisFlash, float const &FlashThreshold, std::vector< std::vector< int > > &HitsPerFlash, std::vector< int > &HitClaimedByFlash)
void AddHitToFlash(int const &HitID, std::vector< bool > &HitsUsed, recob::OpHit const ¤tHit, double const &WidthTolerance, std::vector< int > &HitsThisRefinedFlash, double &PEAccumulated, double &FlashMaxTime, double &FlashMinTime)
void ConstructFlash(std::vector< int > const &HitsPerFlashVec, std::vector< recob::OpHit > const &HitVector, std::vector< recob::OpFlash > &FlashVector, geo::GeometryCore const &geom, detinfo::DetectorClocks const &ts, float const &TrigCoinc)
unsigned int GetAccumIndex(double const &PeakTime, double const &MinTime, double const &BinWidth, double const &BinOffset)
void MarkFlashesForRemoval(std::vector< recob::OpFlash > const &FlashVector, size_t const &BeginFlash, std::vector< bool > &MarkedForRemoval)
void GetHitGeometryInfo(recob::OpHit const ¤tHit, geo::GeometryCore const &geom, std::vector< double > &sumw, std::vector< double > &sumw2, double &sumy, double &sumy2, double &sumz, double &sumz2)
void FillHitsThisFlash(std::vector< std::vector< int > > const &Contributors, int const &Bin, std::vector< int > const &HitClaimedByFlash, std::vector< int > &HitsThisFlash)
void FillFlashesBySizeMap(std::vector< int > const &FlashesInAccumulator, std::vector< double > const &BinnedPE, int const &Accumulator, std::map< double, std::map< int, std::vector< int > >, std::greater< double > > &FlashesBySize)