Skip to content

Commit e7d17a5

Browse files
authored
Merge pull request #85 from SBNSoftware/feature/hlay_crt_clustering_track
Add CRTTrack object
2 parents b890453 + 90e594b commit e7d17a5

2 files changed

Lines changed: 120 additions & 0 deletions

File tree

sbnobj/SBND/CRT/CRTTrack.cxx

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#ifndef SBND_CRTTRACK_CXX
2+
#define SBND_CRTTRACK_CXX
3+
4+
#include "sbnobj/SBND/CRT/CRTTrack.hh"
5+
6+
namespace sbnd {
7+
8+
namespace crt {
9+
10+
CRTTrack::CRTTrack()
11+
: fPoints ({})
12+
, fTime (0.)
13+
, fTimeErr (0.)
14+
, fPE (0.)
15+
, fToF (0.)
16+
, fTaggers ({})
17+
{}
18+
19+
CRTTrack::CRTTrack(const geo::Point_t &_start, const geo::Point_t &_end, const double &_time, const double &_etime,
20+
const double &_pe, const double &_tof, const std::set<CRTTagger> &_taggers)
21+
: fPoints ({_start, _end})
22+
, fTime (_time)
23+
, fTimeErr (_etime)
24+
, fPE (_pe)
25+
, fToF (_tof)
26+
, fTaggers (_taggers)
27+
{}
28+
29+
CRTTrack::CRTTrack(const std::vector<geo::Point_t> &_points, const double &_time, const double &_etime,
30+
const double &_pe, const double &_tof, const std::set<CRTTagger> &_taggers)
31+
: fPoints (_points)
32+
, fTime (_time)
33+
, fTimeErr (_etime)
34+
, fPE (_pe)
35+
, fToF (_tof)
36+
, fTaggers (_taggers)
37+
{}
38+
39+
CRTTrack::~CRTTrack() {}
40+
41+
std::vector<geo::Point_t> CRTTrack::Points() const { return fPoints; }
42+
double CRTTrack::Time() const {return fTime; }
43+
double CRTTrack::TimeErr() const { return fTimeErr; }
44+
double CRTTrack::PE() const { return fPE; }
45+
double CRTTrack::ToF() const { return fToF; }
46+
std::set<CRTTagger> CRTTrack::Taggers() const { return fTaggers; }
47+
48+
geo::Point_t CRTTrack::Start() const { return fPoints.front(); }
49+
geo::Point_t CRTTrack::End() const { return fPoints.back(); }
50+
geo::Vector_t CRTTrack::Direction() const { return (End() - Start()).Unit(); }
51+
double CRTTrack::Length() const { return (End() - Start()).R(); }
52+
double CRTTrack::Theta() const { return (End() - Start()).Theta(); }
53+
double CRTTrack::Phi() const { return (End() - Start()).Phi(); }
54+
bool CRTTrack::Triple() const { return fTaggers.size() == 3; }
55+
56+
bool CRTTrack::UsedTagger(const CRTTagger tagger) const { return fTaggers.count(tagger) == 1; }
57+
}
58+
}
59+
60+
#endif

sbnobj/SBND/CRT/CRTTrack.hh

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/**
2+
* \class CRTTrack
3+
*
4+
* \brief Product to store a track between CRTSpacePoints
5+
*
6+
* \author Henry Lay (h.lay@lancaster.ac.uk)
7+
*
8+
*/
9+
10+
#ifndef SBND_CRTTRACK_HH
11+
#define SBND_CRTTRACK_HH
12+
13+
#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h"
14+
#include "sbnobj/SBND/CRT/CRTEnums.hh"
15+
16+
#include <set>
17+
18+
namespace sbnd::crt {
19+
20+
class CRTTrack {
21+
22+
std::vector<geo::Point_t> fPoints; // the fitted track points at each tagger [cm]
23+
double fTime; // average time [ns]
24+
double fTimeErr; // average time error [ns]
25+
double fPE; // total PE
26+
double fToF; // time from first space point to last [ns]
27+
std::set<CRTTagger> fTaggers; // which taggers were used to create the track
28+
29+
public:
30+
31+
CRTTrack();
32+
33+
CRTTrack(const geo::Point_t &_start, const geo::Point_t &_end, const double &_time, const double &_etime,
34+
const double &_pe, const double &_tof, const std::set<CRTTagger> &_taggers);
35+
36+
CRTTrack(const std::vector<geo::Point_t> &_points, const double &_time, const double &_etime,
37+
const double &_pe, const double &_tof, const std::set<CRTTagger> &_taggers);
38+
39+
virtual ~CRTTrack();
40+
41+
std::vector<geo::Point_t> Points() const;
42+
double Time() const;
43+
double TimeErr() const;
44+
double PE() const;
45+
double ToF() const;
46+
std::set<CRTTagger> Taggers() const;
47+
48+
geo::Point_t Start() const;
49+
geo::Point_t End() const;
50+
geo::Vector_t Direction() const;
51+
double Length() const;
52+
double Theta() const;
53+
double Phi() const;
54+
bool Triple() const;
55+
56+
bool UsedTagger(const CRTTagger tagger) const;
57+
};
58+
}
59+
60+
#endif

0 commit comments

Comments
 (0)