TimeBasedDisambig.h
Go to the documentation of this file.
1 /////////////////////////////////////////////////////////////////
2 //
3 // Disambiguation algorithm based on Tom Junk's idea of 3-view matching
4 // Start from code written by talion@gmail.com
5 // trj@fnal.gov
6 // tjyang@fnal.gov
7 // iamjaejunkim@gmail.com
8 //
9 ////////////////////////////////////////////////////////////////////
10 #ifndef TimeBasedDisambig_H
11 #define TimeBasedDisambig_H
12 #include <vector>
13 #include <map>
14 #include <cmath>
15 #include <iostream>
16 #include <stdint.h>
17 
19 #include "fhiclcpp/ParameterSet.h"
23 
29 #include "APAGeometryAlg.h"
30 
31 #include "TMatrixD.h"
32 #include "TVectorD.h"
33 
34 
35 //hit positions need to be saved as a histogram to apply position-correction function but since
36 //the defined hit object does not have elements to save position informations, induction plane
37 //hits with their corresponding wireid and returned positions need to be saved in a separate set
38 //of variables thus defined a struct of a vector to save all predefined variables in the hit object
39 //with returned and simulated positions and wireid
40 
41 //define a struct of a vector to save hit information including simulated hit information
42 struct HitPos{
43  unsigned int Channel;
44  unsigned int StartTick;
45  unsigned int EndTick;
46  double PeakTime;
47  double SigmaPeakTime;
48  double RMS;
49  double PeakAmplitude;
51  double SummedADC;
52  double Integral;
53  double SigmaIntegral;
54  unsigned int Multiplicity;
55  unsigned int LocalIndex;
56  double GoodnessOfFit;
61  double FinalYPos;
62  double FinalZPos;
63  unsigned int TPC;
64  unsigned int DisambigWireID;
65  //double SimYPos;
66  //double SimZPos;
67  //double SimWireID;
68 };
69 
70 
71 namespace dune{
72 
73  //---------------------------------------------------------------
75  public:
76 
77 
79 
80  void reconfigure(fhicl::ParameterSet const& p);
81 
82  void RunDisambig( const std::vector< art::Ptr<recob::Hit> > &OrigHits );
83  //void RunDisambig();
84  ///< Run disambiguation as currently configured
85 
86 
87  std::vector< std::pair<art::Ptr<recob::Hit>, geo::WireID> > fDisambigHits;
88  ///< The final list of hits to pass back to be made
89 
90 
91 
92 
93 
94  private:
95 
96  // other classes we will use
98  double fTimeCut;
99  double fDistanceCut;
101  }; // class TimeBasedDisambig
102 
103 } // namespace dune
104 
105 #endif // ifndef TimeBasedDisambig_H
double PeakTime
unsigned int EndTick
double FinalZPos
unsigned int DisambigWireID
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
double SummedADC
unsigned int Channel
struct vector vector
double SigmaPeakTime
int DegreesOfFreedom
double SigmaIntegral
double FinalYPos
unsigned int LocalIndex
art framework interface to geometry description
double Integral
unsigned int StartTick
virtual void reconfigure(fhicl::ParameterSet const &pset)
double GoodnessOfFit
enum geo::_plane_sigtype SigType_t
geo::View_t View
geo::SigType_t SignalType
p
Definition: test.py:223
double PeakAmplitude
std::vector< std::pair< art::Ptr< recob::Hit >, geo::WireID > > fDisambigHits
< Run disambiguation as currently configured
Definition of data types for geometry description.
dune::apa::APAGeometryAlg fAPAGeo
Declaration of signal hit object.
unsigned int TPC
geo::WireID WireID
double SigmaPeakAmplitude
Declaration of basic channel signal object.
unsigned int Multiplicity
double RMS