#ifndef _mevt_ModuleRecData_h_ #define _mevt_ModuleRecData_h_ #include #include #include #include namespace mevt { class Module; /** * \class ModuleRecData ModuleRecData.h "mevt/ModuleRecData.h" * \brief Module level reconstruction data. * This class contains all data required by the muon reconstruction * * \author Rodolfo Federico Gamarra * \author Diego Ravignani * \date 08 Mar 2009 * \date 09 Mar 2015 * \ingroup mevt */ class ModuleRecData { public: /** * \brief Number of windows with a signal in a module * * Windows on corresponds to the time time bin that has been labelled as containing a signal * Not to be confused with the number of muons that can be higher due to the pile-up of muons * in a single window * * Non-modifying accessor. */ utl::TraceUI& GetChannelsOn(); const utl::TraceUI& GetChannelsOn() const; void MakeChannelsOn(); bool HasChannelsOn() const; unsigned int GetNumberOfChannelsOn() const; unsigned int GetMaxChannelsOn() const; bool IsEmpty() const {return GetMaxChannelsOn()==0;} bool IsGood() const {return 0& GetPatternMatchTimes() const {return fPatternMatchTimes;} std::vector& GetPatternMatchTimes() {return fPatternMatchTimes;} void AddPatternMatchTime(double t) {fPatternMatchTimes.push_back(t);} private: ModuleRecData(); ~ModuleRecData() { } /** * \brief The module detection area * * The detection area is used here. It correspond to the sum of the areas of the working * channels. The detection area is less than the module nominal area if there are * faulty channels in the event. */ double fActiveArea; /* * Number of scintillator with a signal per time window * from this field the numbers of windows on and estimated muons are calculated */ utl::ShadowPtr fChannelsOn; utl::ShadowPtr fChannelsOnStartTime; /** * \brief The pattern match times vector stores the times of all * matches in the module found by the counting algorithm. In the case of * few matches this is a proxy for the number of muons, for larger signals * the pile-up has to be considered. Times are measured in nanoseconds from the * trace start. */ std::vector fPatternMatchTimes; size_t fSegmentation; // Length of the inhibition window in number of bins of a channel trace unsigned int fWindowSize; double fLDFResidual; bool fSaturationFlag; double fNumberOfEstimatedMuons; double fNumberOfMuonsErrorHigh; double fNumberOfMuonsErrorLow; double fNumberOfMuonsLowLimit; /* * Like sevt::StationRecData nothing said about * operator= and copy-construction: let the compiler * generate'em. */ /** * \brief Friendship to allow construction. */ friend class Module; /** * \brief Frienship to allow destruction. * * Depends on the innards of mevt::Module. */ friend class utl::ShadowPtr; }; } #endif