Program Listing for File MatchTripletProcessor.h

Return to documentation for file (larflow/PrepFlowMatchData/arxiv/MatchTripletProcessor.h)

#ifndef __LARFLOW_MATCH_TRIPLET_PROCESSOR_H__
#define __LARFLOW_MATCH_TRIPLET_PROCESSOR_H__

#include "larcv/core/Processor/ProcessBase.h"
#include "larcv/core/Processor/ProcessFactory.h"
#include "ublarcvapp/UBImageMod/EmptyChannelAlgo.h"
#include "PrepMatchTriplets.h"

namespace larflow {

  class MatchTripletProcessor : public larcv::ProcessBase {

  public:

  MatchTripletProcessor(std::string instance_name)
      : larcv::ProcessBase(instance_name),
      _p_matchdata_v(nullptr),
      _ana_tree(nullptr),
      _has_mc(false),
      _adc_treename("wire"),
      _chstatus_treename("wire"),
      _check_intersection(false)
      {};
    virtual ~MatchTripletProcessor() {};

    void configure( const larcv::PSet& );
    void initialize();
    bool process( larcv::IOManager& mgr );
    void finalize();

    std::vector< larflow::PrepMatchTriplets >* _p_matchdata_v;
    TTree* _ana_tree;
    bool   _has_mc;
    std::string _adc_treename;
    std::string _chstatus_treename;
    bool   _check_intersection;

    ublarcvapp::EmptyChannelAlgo _badchmaker;

  };

  class MatchTripletProcessorFactory : public larcv::ProcessFactoryBase {
  public:
    MatchTripletProcessorFactory() { larcv::ProcessFactory::get().add_factory("MatchTripletProcessor",this); };
    ~MatchTripletProcessorFactory() {};
    larcv::ProcessBase* create(const std::string instance_name) { return new MatchTripletProcessor(instance_name); };
  };

}

#endif