LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
CosmicTrackerAlg.h
Go to the documentation of this file.
1 // CosmicTrackerAlg.h
3 //
4 // tjyang@fnal.gov
5 //
6 // Use Bruce's TrackTrajectoryAlg to reconstruct track
7 //
8 // Input: a vector of recob::hits
9 // output: a vector of 3D points and their assocations wit the hits
10 //
12 #ifndef COSMICTRACKERALG_H
13 #define COSMICTRACKERALG_H
14 
17 
18 namespace fhicl {
19  class ParameterSet;
20 }
21 
25 namespace detinfo {
26  class DetectorClocksData;
27  class DetectorPropertiesData;
28  class LArProperties;
29 }
30 
31 #include <vector>
32 
33 #include "TVector3.h"
34 
35 namespace trkf {
37  public:
38  explicit CosmicTrackerAlg(fhicl::ParameterSet const& pset);
39 
40  void SPTReco(detinfo::DetectorClocksData const& clockData,
41  detinfo::DetectorPropertiesData const& detProp,
43 
44  //trajectory position and direction returned by TrackTrajectoryAlg
45  std::vector<TVector3> trajPos;
46  std::vector<TVector3> trajDir;
47  std::vector<std::vector<art::Ptr<recob::Hit>>> trajHit;
48 
49  //position and direction of each point on a track trajectory
50  std::vector<TVector3> trkPos;
51  std::vector<TVector3> trkDir;
52 
53  private:
54  int fSPTAlg; //0: Use TrackTrajectoryAlg
55  //1: Use only Track3DReco alg
56 
57  bool fTrajOnly; // if true, only return trajectory points, if false, return
58  // a 3D point for every hit
59 
60  // use TrackTrajectoryAlg to get trajectory points
61  void TrackTrajectory(detinfo::DetectorPropertiesData const& detProp,
63 
64  // use algorithm in Track3DReco
65  void Track3D(detinfo::DetectorClocksData const& clockData,
66  detinfo::DetectorPropertiesData const& detProp,
68  double ftmatch;
69  double fsmatch;
70 
71  // create one 3D point for each hit using trajectory points
72  void MakeSPT(detinfo::DetectorClocksData const& clockData,
73  detinfo::DetectorPropertiesData const& detProp,
75 
76  // track trajectory for a track under construction
78 
79  //projection of trajectory points on wire planes
80  std::vector<std::vector<std::vector<std::vector<double>>>> vw;
81  std::vector<std::vector<std::vector<std::vector<double>>>> vt;
82  std::vector<std::vector<std::vector<std::vector<unsigned int>>>> vtraj;
83 
86 
87  }; //class CosmicTrackerAlg
88 } // namespace trkf
89 
90 #endif //ifndef COSMICTRACKERALG_H
std::vector< std::vector< std::vector< std::vector< double > > > > vw
std::vector< std::vector< std::vector< std::vector< double > > > > vt
double ftmatch
tolerance for time matching (in ticks)
Declaration of signal hit object.
std::vector< TVector3 > trajPos
std::vector< TVector3 > trkDir
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:289
std::vector< std::vector< std::vector< std::vector< unsigned int > > > > vtraj
parameter set interface
TrackTrajectoryAlg fTrackTrajectoryAlg
General LArSoft Utilities.
double fsmatch
tolerance for distance matching (in cm)
art::ServiceHandle< geo::Geometry const > geom
const detinfo::LArProperties * larprop
std::vector< TVector3 > trkPos
Contains all timing reference information for the detector.
std::vector< TVector3 > trajDir
art framework interface to geometry description
std::vector< std::vector< art::Ptr< recob::Hit > > > trajHit