A structure that defines a solution of a triplet (an Apollonius Circle and all hits close to the circle).
More...
#include <PndApolloniusTriplet.h>
|
| TripletSolution () |
| Constructor. More...
|
|
| TripletSolution (TVector3 track) |
| Constructor. More...
|
|
void | AddHits (detID detector, std::vector< FairHit *> data) |
| A vector of hits is added. More...
|
|
void | AddHits (std::vector< PndSttHit *> sttHits) |
| A vector of STT hits is added. More...
|
|
void | AddHit (detID detector, FairHit *data) |
| One hit of a specific subdetector is added. More...
|
|
int | GetNHits () |
| Returns the total number of hits in a TripletSolution. More...
|
|
TVector2 | HitOnTrack (FairHit *hit) |
| Determins a vector from the circle center to the corresponding hit. More...
|
|
void | IsClockwise () |
| Determins the rotation of the circle, i.e. if the particle mooves clockwise or not. More...
|
|
void | SortHits (TVector2 &firstHit, detID detector) |
| Sorts the hits based on the angle from first hit to circle center vs hit to circle center. More...
|
|
void | SortStt (PndSttGeometryMap *fGeometryMap) |
| Sorts the STT hits: first based on the STT layer to determine the first hit and after that based on the angle from first hit to circle center vs hit to circle center. More...
|
|
FairHit * | GetFirstHit (PndSttGeometryMap *fGeometryMap) |
| Sorts the STT hits: first based on the STT layer to determine the first hit and after that based on the angle from first hit to circle center vs hit to circle center. More...
|
|
void | SortAllHits (PndSttGeometryMap *fGeometryMap) |
| Sorts all hits depending on if the track changed or not. More...
|
|
bool | IsReasonableHit (FairHit *CurrentHit, FairHit *PriviousHit) |
| Tests if a specific hit is a reasonable hit of the track (based on the angle and the rotation of the track) More...
|
|
A structure that defines a solution of a triplet (an Apollonius Circle and all hits close to the circle).
Definition at line 57 of file PndApolloniusTriplet.h.
◆ detID
◆ TripletSolution() [1/2]
PndApollonius::TripletSolution::TripletSolution |
( |
| ) |
|
|
inline |
◆ TripletSolution() [2/2]
PndApollonius::TripletSolution::TripletSolution |
( |
TVector3 |
track | ) |
|
|
inline |
Constructor.
- Parameters
-
[in] | track | A TVector3 that defines the circle parameters (x_center, y_center, R) from the Apollonius Circle |
Definition at line 69 of file PndApolloniusTriplet.h.
◆ AddHit()
void PndApollonius::TripletSolution::AddHit |
( |
detID |
detector, |
|
|
FairHit * |
data |
|
) |
| |
|
inline |
One hit of a specific subdetector is added.
- Parameters
-
[in] | detector | ID of the corresponding subdetector (MVD, STT or GEM) |
[in] | data | A pointer to one specific hit of a subdetector that belong to the track |
Definition at line 97 of file PndApolloniusTriplet.h.
99 if (
fHits.count(detector) == 0) {
102 if (std::find(
fHits[detector].begin(),
fHits[detector].end(), data) ==
fHits[detector].end()) {
103 fHits[detector].push_back(data);
std::map< detID, std::vector< FairHit * > > fHits
std::vector< FairHit * > fAllHits
◆ AddHits() [1/2]
void PndApollonius::TripletSolution::AddHits |
( |
detID |
detector, |
|
|
std::vector< FairHit *> |
data |
|
) |
| |
|
inline |
A vector of hits is added.
- Parameters
-
[in] | detector | ID of the corresponding subdetector (MVD, STT or GEM) |
[in] | data | All hits of one subdetector that belong to the track |
Definition at line 76 of file PndApolloniusTriplet.h.
78 fHits[detector] = data;
std::map< detID, std::vector< FairHit * > > fHits
std::vector< FairHit * > fAllHits
◆ AddHits() [2/2]
void PndApollonius::TripletSolution::AddHits |
( |
std::vector< PndSttHit *> |
sttHits | ) |
|
|
inline |
A vector of STT hits is added.
- Parameters
-
[in] | sttHits | All hits of the STT that belong to the track as PndSttHit. |
Definition at line 86 of file PndApolloniusTriplet.h.
std::map< detID, std::vector< FairHit * > > fHits
std::vector< FairHit * > fAllHits
◆ GetFirstHit()
FairHit* PndApollonius::TripletSolution::GetFirstHit |
( |
PndSttGeometryMap * |
fGeometryMap | ) |
|
Sorts the STT hits: first based on the STT layer to determine the first hit and after that based on the angle from first hit to circle center vs hit to circle center.
- Parameters
-
[in] | fGeometryMap | The Geometry map of the detector |
[out] | FairHit | Returns the first hit of the track |
◆ GetNHits()
int PndApollonius::TripletSolution::GetNHits |
( |
| ) |
|
|
inline |
◆ HitOnTrack()
TVector2 PndApollonius::TripletSolution::HitOnTrack |
( |
FairHit * |
hit | ) |
|
|
inline |
Determins a vector from the circle center to the corresponding hit.
- Parameters
-
[in] | hit | The corresponding hit |
[out] | TVector2 | The vector from the circle center to the corresponding hit |
Definition at line 116 of file PndApolloniusTriplet.h.
116 {
return TVector2(hit->GetX() -
fTrack.X(), hit->GetY() -
fTrack.Y()); }
◆ IsClockwise()
void PndApollonius::TripletSolution::IsClockwise |
( |
| ) |
|
Determins the rotation of the circle, i.e. if the particle mooves clockwise or not.
◆ IsReasonableHit()
bool PndApollonius::TripletSolution::IsReasonableHit |
( |
FairHit * |
CurrentHit, |
|
|
FairHit * |
PriviousHit |
|
) |
| |
Tests if a specific hit is a reasonable hit of the track (based on the angle and the rotation of the track)
- Parameters
-
[in] | CurrentHit | The current hit |
[in] | PriviousHit | The previous hit of the track |
◆ SortAllHits()
Sorts all hits depending on if the track changed or not.
- Parameters
-
[in] | fGeometryMap | The Geometry map of the detector to return the STT layer |
◆ SortHits()
void PndApollonius::TripletSolution::SortHits |
( |
TVector2 & |
firstHit, |
|
|
detID |
detector |
|
) |
| |
Sorts the hits based on the angle from first hit to circle center vs hit to circle center.
- Parameters
-
[in] | firstHit | The first hit of the track |
[in] | detector | The corresponding subdetector |
◆ SortStt()
Sorts the STT hits: first based on the STT layer to determine the first hit and after that based on the angle from first hit to circle center vs hit to circle center.
- Parameters
-
[in] | fGeometryMap | The Geometry map of the detector to return the STT layer |
◆ operator<<
std::ostream& operator<< |
( |
std::ostream & |
output, |
|
|
const TripletSolution & |
t |
|
) |
| |
|
friend |
Definition at line 156 of file PndApolloniusTriplet.h.
158 output <<
"Track x/y/r " << t.fTrack.X() <<
"/" << t.fTrack.Y() <<
"/" << t.fTrack.Z() <<
" ";
159 if (t.fTriplet.fTripletHits[0] !=
nullptr) {
160 output <<
" trip: " << t.fTriplet.fTripletHits[0]->GetTubeID() <<
"/" << t.fTriplet.fTripletHits[1]->GetTubeID() <<
"/" << t.fTriplet.fTripletHits[2]->GetTubeID() <<
" ";
162 if (t.fHits.count(TripletSolution::detID::MVDpixel) > 0) {
163 output << t.detID_Names.at(TripletSolution::detID::MVDpixel) <<
" : ";
164 for (
auto hit : t.fHits.at(TripletSolution::detID::MVDpixel)) {
165 output << hit->GetEntryNr() <<
"/";
169 if (t.fHits.count(TripletSolution::detID::MVDstrip) > 0) {
170 output << t.detID_Names.at(TripletSolution::detID::MVDstrip) <<
" : ";
171 for (
auto hit : t.fHits.at(TripletSolution::detID::MVDstrip)) {
172 output << hit->GetEntryNr() <<
"/";
176 if (t.fHits.count(TripletSolution::detID::STT) > 0) {
177 output << t.detID_Names.at(TripletSolution::detID::STT) <<
" : ";
178 for (
auto hit : t.fHits.at(TripletSolution::detID::STT)) {
187 output << hit->GetEntryNr() <<
"/";
192 output <<
"MSD: " << t.fMeanSquare;
◆ detID_Names
std::vector<std::string> PndApollonius::TripletSolution::detID_Names {"MVD_Pixel", "MVD_Strip", "STT", "GEM", "NOTDEFINED"} |
◆ fAllHits
std::vector<FairHit *> PndApollonius::TripletSolution::fAllHits |
◆ fClockwise
bool PndApollonius::TripletSolution::fClockwise = true |
◆ fHits
std::map<detID, std::vector<FairHit *> > PndApollonius::TripletSolution::fHits |
◆ fMeanSquare
double PndApollonius::TripletSolution::fMeanSquare = 1000000. |
◆ fTrack
TVector3 PndApollonius::TripletSolution::fTrack |
◆ fTriplet
Triplet PndApollonius::TripletSolution::fTriplet {nullptr, nullptr, nullptr} |
The documentation for this struct was generated from the following file: