LArOpenCV  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
larlite::LArImageClusterBase Class Referenceabstract

User custom analysis class made by SHELL_USER_NAME. More...

#include <LArImageClusterBase.h>

Inheritance diagram for larlite::LArImageClusterBase:
larlite::LArImageHit larlite::LArImageWire

Public Member Functions

 LArImageClusterBase (const std::string name="LArImageClusterBase")
 Default constructor. More...
 
virtual ~LArImageClusterBase ()
 Default destructor. More...
 
bool initialize ()
 IMPLEMENT in LArImageClusterBase.cc! Initialization method to be called before the analysis event loop. More...
 
bool analyze (storage_manager *storage)
 IMPLEMENT in LArImageClusterBase.cc! Analyze a data event-by-event. More...
 
bool finalize ()
 IMPLEMENT in LArImageClusterBase.cc! Finalize method to be called after all events processed. More...
 
larcv::ImageClusterManageralgo_manager (size_t plane_id)
 
const std::vector
< larcv::ImageClusterManager > & 
algo_manager_set () const
 
const std::string & producer () const
 
void set_config (const std::string cfg_file)
 

Protected Member Functions

virtual void _Report_ () const =0
 
virtual void _Configure_ (const ::fcllite::PSet &)=0
 
virtual void store_clusters (storage_manager *storage)=0
 
virtual void extract_image (storage_manager *storage)=0
 

Protected Attributes

::larcv::ImageManager _img_mgr
 

Private Member Functions

void Report () const
 

Private Attributes

std::vector
< larcv::ImageClusterManager
_alg_mgr_v
 
::larcv::ImageManager _orig_img_mgr
 
bool _store_original_img
 
std::string _producer
 
bool _profile
 
std::string _config_file
 
double _process_count
 
double _process_time_image_extraction
 
double _process_time_analyze
 
double _process_time_cluster_storage
 

Detailed Description

User custom analysis class made by SHELL_USER_NAME.

Definition at line 28 of file LArImageClusterBase.h.

Constructor & Destructor Documentation

larlite::LArImageClusterBase::LArImageClusterBase ( const std::string  name = "LArImageClusterBase")

Default constructor.

Definition at line 9 of file LArImageClusterBase.cxx.

References _alg_mgr_v, _producer, and _store_original_img.

9  : ana_base()
10  {
11  _name=name;
12  _fout=0;
13  _producer="";
14  _alg_mgr_v.resize( ::larutil::Geometry::GetME()->Nplanes() );
15  _store_original_img=false;
16  }
virtual larlite::LArImageClusterBase::~LArImageClusterBase ( )
inlinevirtual

Default destructor.

Definition at line 36 of file LArImageClusterBase.h.

36 {}

Member Function Documentation

virtual void larlite::LArImageClusterBase::_Configure_ ( const ::fcllite::PSet &  )
protectedpure virtual

Implemented in larlite::LArImageHit, and larlite::LArImageWire.

Referenced by initialize().

virtual void larlite::LArImageClusterBase::_Report_ ( ) const
protectedpure virtual

Implemented in larlite::LArImageHit, and larlite::LArImageWire.

Referenced by Report().

larcv::ImageClusterManager & larlite::LArImageClusterBase::algo_manager ( size_t  plane_id)

Definition at line 21 of file LArImageClusterBase.cxx.

References _alg_mgr_v.

22  {
23  if(plane_id >= _alg_mgr_v.size()) throw ::larcv::larbys("ImageClusterManager not found (invalid plane ID)!");
24  return _alg_mgr_v[plane_id];
25  }
const std::vector< larcv::ImageClusterManager > & larlite::LArImageClusterBase::algo_manager_set ( ) const

Definition at line 18 of file LArImageClusterBase.cxx.

References _alg_mgr_v.

Referenced by larlite::LArImageHit::store_clusters().

19  { return _alg_mgr_v; }
bool larlite::LArImageClusterBase::analyze ( storage_manager *  storage)

IMPLEMENT in LArImageClusterBase.cc! Analyze a data event-by-event.

Definition at line 52 of file LArImageClusterBase.cxx.

References _alg_mgr_v, _img_mgr, _orig_img_mgr, _process_count, _process_time_analyze, _process_time_cluster_storage, _process_time_image_extraction, _store_original_img, larcv::ImageManager::clear(), extract_image(), larcv::ImageManager::img_at(), larcv::ImageManager::meta_at(), larcv::ImageManager::push_back(), larcv::ImageManager::size(), larcv::Watch::Start(), store_clusters(), and larcv::Watch::WallTime().

52  {
53 
54  _img_mgr.clear();
56 
57  ::larcv::Watch watch_all, watch_one;
58  watch_all.Start();
59  watch_one.Start();
60  this->extract_image(storage);
62 
64  for(size_t plane=0; plane<_img_mgr.size(); ++plane) {
65  ::cv::Mat img;
66  _img_mgr.img_at(plane).copyTo(img);
68  }
69  }
70 
71  if(_img_mgr.size() != _alg_mgr_v.size()) throw ::larcv::larbys("# of imaged created != # of planes!");
72 
73  for(size_t plane = 0; plane < _alg_mgr_v.size(); ++plane) {
74 
75  auto& alg_mgr = _alg_mgr_v[plane];
76  auto const& img = _img_mgr.img_at(plane);
77  auto const& meta = _img_mgr.meta_at(plane);
78  if(!meta.num_pixel_row() || !meta.num_pixel_column()) continue;
79 
80  alg_mgr.Process(img,meta);
81 
82  }
83 
84  watch_one.Start();
85  this->store_clusters(storage);
87 
88  _process_time_analyze += watch_all.WallTime();
89 
91 
92  return true;
93  }
virtual void larlite::LArImageClusterBase::extract_image ( storage_manager *  storage)
protectedpure virtual

Implemented in larlite::LArImageHit, and larlite::LArImageWire.

Referenced by analyze().

bool larlite::LArImageClusterBase::finalize ( )

IMPLEMENT in LArImageClusterBase.cc! Finalize method to be called after all events processed.

Definition at line 113 of file LArImageClusterBase.cxx.

References _alg_mgr_v, and Report().

113  {
114 
115  Report();
116  for(size_t plane=0; plane < _alg_mgr_v.size(); ++plane) {
117  std::cout << " \033[95mImageClusterManager\033[00m @ Plane " << plane << std::endl;
118  _alg_mgr_v[plane].Report();
119  std::cout << std::endl;
120  }
121  return true;
122  }
bool larlite::LArImageClusterBase::initialize ( )

IMPLEMENT in LArImageClusterBase.cc! Initialization method to be called before the analysis event loop.

Definition at line 27 of file LArImageClusterBase.cxx.

References _alg_mgr_v, _config_file, _Configure_(), _process_count, _process_time_analyze, _process_time_cluster_storage, _process_time_image_extraction, _producer, _profile, and _store_original_img.

27  {
28 
29  ::fcllite::ConfigManager cfg_mgr(_name);
30 
31  cfg_mgr.AddCfgFile(_config_file);
32 
33  auto const& main_cfg = cfg_mgr.Config().get_pset(_name);
34 
35  _profile = main_cfg.get<bool>("Profile");
36  _producer = main_cfg.get<std::string>("Producer");
37  _store_original_img = main_cfg.get<bool>("StoreOriginalImage");
38  _process_count = 0;
42 
43  this->_Configure_(main_cfg);
44 
45  if(_producer.empty()) throw ::larcv::larbys("No producer specified...");
46 
47  for(auto& mgr : _alg_mgr_v) mgr.Configure(cfg_mgr.Config().get_pset(mgr.Name()));
48 
49  return true;
50  }
const std::string& larlite::LArImageClusterBase::producer ( ) const
inline
void larlite::LArImageClusterBase::Report ( ) const
private

Definition at line 95 of file LArImageClusterBase.cxx.

References _process_count, _process_time_analyze, _process_time_cluster_storage, _process_time_image_extraction, _profile, and _Report_().

Referenced by finalize().

95  {
96 
97  if(_profile) {
98  std::cout << std::endl
99  << " =================== " << _name << " (analysis unit) Time Report ======================" << std::endl
100  << " # analyze() call ........ " << _process_count << std::endl
101  << " \033[95mAnalyze time\033[00m ............ Total " << _process_time_analyze
102  << " [s] ... Average " << _process_time_analyze / _process_count << " [s]" << std::endl
103  << " \033[95mImage extraction time\033[00m ... Total " << _process_time_image_extraction
104  << " [s] ... Average " << _process_time_image_extraction / _process_count << " [s]" << std::endl
105  << " \033[95mCluster storage time\033[00m .... Total " << _process_time_cluster_storage
106  << " [s] ... Average " << _process_time_cluster_storage / _process_count << " [s]" << std::endl
107  << std::endl;
108  this->_Report_();
109  std::cout << std::endl;
110  }
111  }
void larlite::LArImageClusterBase::set_config ( const std::string  cfg_file)
inline

Definition at line 60 of file LArImageClusterBase.h.

References _config_file.

60 {_config_file=cfg_file;}
virtual void larlite::LArImageClusterBase::store_clusters ( storage_manager *  storage)
protectedpure virtual

Implemented in larlite::LArImageHit, and larlite::LArImageWire.

Referenced by analyze().

Member Data Documentation

std::vector<larcv::ImageClusterManager> larlite::LArImageClusterBase::_alg_mgr_v
private
std::string larlite::LArImageClusterBase::_config_file
private

Definition at line 68 of file LArImageClusterBase.h.

Referenced by initialize(), and set_config().

::larcv::ImageManager larlite::LArImageClusterBase::_img_mgr
protected
::larcv::ImageManager larlite::LArImageClusterBase::_orig_img_mgr
private

Definition at line 64 of file LArImageClusterBase.h.

Referenced by analyze().

double larlite::LArImageClusterBase::_process_count
private

Definition at line 69 of file LArImageClusterBase.h.

Referenced by analyze(), initialize(), and Report().

double larlite::LArImageClusterBase::_process_time_analyze
private

Definition at line 71 of file LArImageClusterBase.h.

Referenced by analyze(), initialize(), and Report().

double larlite::LArImageClusterBase::_process_time_cluster_storage
private

Definition at line 72 of file LArImageClusterBase.h.

Referenced by analyze(), initialize(), and Report().

double larlite::LArImageClusterBase::_process_time_image_extraction
private

Definition at line 70 of file LArImageClusterBase.h.

Referenced by analyze(), initialize(), and Report().

std::string larlite::LArImageClusterBase::_producer
private

Definition at line 66 of file LArImageClusterBase.h.

Referenced by initialize(), LArImageClusterBase(), and producer().

bool larlite::LArImageClusterBase::_profile
private

Definition at line 67 of file LArImageClusterBase.h.

Referenced by initialize(), and Report().

bool larlite::LArImageClusterBase::_store_original_img
private

Definition at line 65 of file LArImageClusterBase.h.

Referenced by analyze(), initialize(), and LArImageClusterBase().


The documentation for this class was generated from the following files: