14 #ifndef OPT0FINDER_FLASHMATCHMANAGER_H
15 #define OPT0FINDER_FLASHMATCHMANAGER_H
25 namespace flashmatch {
40 const std::string&
Name()
const;
70 std::vector<flashmatch::FlashMatch_t>
Match();
105 #if USING_LARSOFT == 1
~FlashMatchManager()
Default destructor.
const std::vector< std::vector< flashmatch::FlashMatch_t > > FullResultTPCFlash() const
Access to a full results (if configured to store) for [tpc][flash] indexing.
Algorithm_t
Enumerator for different types of algorithm.
BaseTPCFilter * _alg_tpc_filter
TPC filter algorithm.
std::vector< flashmatch::QCluster_t > QClusterArray_t
Collection of 3D point clusters (one use case is TPC object representation for track(s) and shower(s)...
std::vector< flashmatch::FlashMatch_t > Match()
std::vector< std::vector< flashmatch::FlashMatch_t > > _res_flash_tpc_v
Full result container indexed by [flash][tpc].
flashmatch::BaseAlgorithm * GetCustomAlgo(std::string name)
Custom algorithm getter.
void SetSemiAnalyticalModel(std::unique_ptr< SemiAnalyticalModel > model)
BaseFlashHypothesis * _alg_flash_hypothesis
Flash hypothesis algorithm.
Class definition file of LoggerFeature.
const std::string & Name() const
Name getter.
Class def header for a class BaseAlgorithm.
std::map< std::string, flashmatch::BaseAlgorithm * > _custom_alg_m
void SetTPCCryo(int tpc, int _cryo)
Sets the TPC and Cryo numbers.
fhicl::ParameterSet Config_t
Configuration object.
void Add(flashmatch::QCluster_t &obj)
Adder of a TPC object.
Struct to represent an optical flash.
void SetChannelMask(std::vector< int >)
Sets the op channels to be used for matching.
BaseFlashFilter * _alg_flash_filter
Flash filter algorithm.
Class def header for a class BaseProhibitAlgo.
const QClusterArray_t & QClusterArray() const
Access to an input: TPC objects in the form of QClusterArray_t.
BaseProhibitAlgo * _alg_match_prohibit
Flash matchinig prohibit algorithm.
void SetUncoatedPMTs(std::vector< int > ch_uncoated)
Sets the channels sensitive to visible light.
flashmatch::BaseAlgorithm * GetAlgo(flashmatch::Algorithm_t type)
Algorithm getter.
std::string _config_file
Configuration file.
Class def header for a class BaseTPCFilter.
Class def header for a class BaseFlashFilter.
Collection of charge deposition 3D point (cluster)
void Reset()
Clears locally kept TPC object (QClusterArray_t) and flash (FlashArray_t), both provided by a user...
const std::vector< std::vector< flashmatch::FlashMatch_t > > FullResultFlashTPC() const
Access to a full results (if configured to store) for [flash][tpc] indexing.
bool _configured
Configuration readiness flag.
bool _store_full
Request boolean to store full matching result (per Match function call)
std::vector< std::vector< flashmatch::FlashMatch_t > > _res_tpc_flash_v
Full result container indexed by [tpc][flash].
bool _allow_reuse_flash
Configuration option to allow re-use of a flash (i.e. 1 flash can be assigned to multiple TPC object)...
int _tpc
TPC number where to perform the matching.
const FlashArray_t & FlashArray() const
Access to an input: PMT objects in the form of FlashArray_t.
QClusterArray_t _tpc_object_v
TPC object information collection (provided by a user)
FlashArray_t _flash_v
Flash object information collection (provided by a user)
int _cryo
Cryo number where to perform the matching.
void Configure(const Config_t &cfg)
Configuration.
std::vector< flashmatch::Flash_t > FlashArray_t
Collection of Flash objects.
void CanReuseFlash(bool ok=true)
Configuration option: true => allows an assignment of the same flash to multiple TPC objects...
Class def header for a class BaseFlashMatch.
FlashMatchManager(const std::string name="FlashMatchManager")
Default constructor.
const std::string & name() const
Name getter, defined in a logger instance attribute.
void Emplace(flashmatch::QCluster_t &&obj)
Emplacer of a TPC object (hidden from ROOT5 CINT)
BaseFlashMatch * _alg_flash_match
Flash matching algorithm.
void AddCustomAlgo(BaseAlgorithm *alg)