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: