Program Listing for File KPSRecoManager.h¶
↰ Return to documentation for file (larflow/Reco/KPSRecoManager.h
)
#ifndef __KPS_RECO_MANAGER_H__
#define __KPS_RECO_MANAGER_H__
#include <string>
// ROOT
#include "TFile.h"
#include "TTree.h"
// larlite
#include "DataFormat/storage_manager.h"
// larcv
#include "larcv/core/Base/larcv_base.h"
#include "larcv/core/DataFormat/IOManager.h"
// ublarcvapp
#include "ublarcvapp/UBImageMod/EmptyChannelAlgo.h"
// larflow
#include "KeypointReco.h"
#include "KeypointFilterByClusterSize.h"
#include "KeypointFilterByWCTagger.h"
#include "SplitHitsBySSNet.h"
#include "ShowerRecoKeypoint.h"
#include "ProjectionDefectSplitter.h"
#include "ChooseMaxLArFlowHit.h"
#include "NuVertexMaker.h"
#include "CosmicTrackBuilder.h"
#include "NuTrackBuilder.h"
namespace larflow {
namespace reco {
class KPSRecoManager : public larcv::larcv_base {
public:
KPSRecoManager( std::string inputfile="outana_kpsrecomanager.root" );
virtual ~KPSRecoManager();
void process( larcv::IOManager& iolcv, larlite::storage_manager& ioll );
// image mods
ublarcvapp::EmptyChannelAlgo _badchmaker;
// keypoint reconstruction
KeypointReco _kpreco_nu;
KeypointReco _kpreco_track;
KeypointReco _kpreco_shower;
KeypointReco _kpreco_track_cosmic;
KeypointFilterByClusterSize _kpfilter;
KeypointFilterByWCTagger _wcfilter;
SplitHitsBySSNet _splithits_full;
SplitHitsBySSNet _splithits_wcfilter;
ProjectionDefectSplitter _projsplitter;
ProjectionDefectSplitter _projsplitter_cosmic;
ShowerRecoKeypoint _showerkp;
ChooseMaxLArFlowHit _choosemaxhit;
NuVertexMaker _nuvertexmaker;
CosmicTrackBuilder _cosmic_track_builder;
NuTrackBuilder _nu_track_builder;
// Algorithms
void recoKeypoints( larcv::IOManager& iolcv, larlite::storage_manager& ioll );
void recoParticles( larcv::IOManager& iolcv, larlite::storage_manager& ioll );
void multiProngReco( larcv::IOManager& iolcv, larlite::storage_manager& ioll );
protected:
TFile* _ana_file;
TTree* _ana_tree;
std::string _ana_output_file;
int _ana_run;
int _ana_subrun;
int _ana_event;
void make_ana_file();
public:
void write_ana_file() { _ana_file->cd(); _ana_tree->Write(); };
};
}
}
#endif