4 namespace MdMuonEstimatorAG {
7 fNBinWindowSize(nBinWindowSize),
8 fTraceSize(nTraceLength)
23 if (vModulePatternMatches.size()>0) {
31 unsigned int vSummedPatternMatches[
fTraceSize] = {0};
32 for (std::vector<std::pair<unsigned int, unsigned int>>::const_iterator it = vModulePatternMatches.begin(); it != vModulePatternMatches.end(); ++it) {
33 for (
unsigned int i = 0 ; i < mRecData.
GetWindowSize() ; ++i) {
34 if ((
int) it->second - (int) i >= 0) {
35 ++vSummedPatternMatches[(int) it->second - (
int) i];
46 unsigned int imax = 0;
47 unsigned int maxcounts = 0;
48 for (
unsigned int i = 0; i <
fTraceSize; ++i) {
49 if (vSummedPatternMatches[i] > maxcounts) {
50 maxcounts = vSummedPatternMatches[i];
57 unsigned int histogramSize = fTraceSize - histogramStartTime + 1;
61 TH1I hChannelsOn(
"h",
"Pattern matches", histogramSize, histogramStartTime, histogramSize);
62 for (std::vector<std::pair<unsigned int, unsigned int>>::const_iterator it = vModulePatternMatches.begin(); it != vModulePatternMatches.end(); ++it) {
63 const unsigned int bin = it->second + 1;
64 hChannelsOn.Fill(bin);
71 hChannelsOn.Rebin(fTraceSize);
76 for (
int i = 0; i <= hChannelsOn.GetNbinsX(); ++i) {
77 unsigned int ki = hChannelsOn.GetBinContent(i);
79 mu -= (double) nActiveCh * log(1. - (
double) ki/(double) nActiveCh);
80 nmu += log(1. - (
double) ki/(
double) nActiveCh) / log(1.-1./(
double) nActiveCh);
Module level reconstruction data. This class contains all data required by the muon reconstruction...
void SetSaturated(const bool sat)
void SetMeanMuons(const double m)
void SetNumberOfEstimatedMuons(const double m)
Number of estimated muons in a module.
unsigned int fNBinWindowSize
unsigned int GetWindowSize() const
size_t GetSegmentation() const
NBinCenteredStrategy(unsigned int nBinWindowSize, unsigned int fTraceSize)
Creates a functor.
double operator()(std::vector< std::pair< unsigned int, unsigned int >> &vModulePatternMatches, mevt::ModuleRecData &mRecData) const
Performs the counting.