![]() |
PandaRoot
|
#include <PndApolloniusTriplet.h>
Public Member Functions | |
std::map< int, std::vector< PndSttHit * > > | GetAllTubesByRow (std::vector< PndSttHit *> hits, PndSttGeometryMap *fGeometryMap, int &fAllHitsCounter) |
Sorts all STT hits by row and returns a map that connects each row with the hits in that row. More... | |
std::map< int, std::vector< std::vector< PndSttHit * > > > | GetTubeStructure (std::vector< PndSttHit *> hits, PndSttGeometryMap *fGeometryMap, int &fAllHitsCounter, bool &fIsStrongCurling) |
Creates a map that connects each STT row with a set of groups. All STT hits in one group are directly adjacent to each other. More... | |
ReductionMaps | CreateMaps (TripletValues &triplets, std::map< FairLink, int > &fMapHitstoCATracklet) |
Created maps that connect the hits with a corresponding CA tracklet. More... | |
std::vector< Triplet > | ReduceCombinatorics (TripletValues &triplets, std::map< FairLink, int > &fMapHitstoCATracklet, TClonesArray *sttHits, PndSttCA *fCATrackFinder, PndSttGeometryMap *fGeometryMap, double &fMinDistance, bool &fWithCombiReduction) |
Find triplet combinations with higher probability to be a proper one. More... | |
bool | IsTripletUsed (std::vector< TripletSolution > &solutions, Triplet &triplet) |
Checks is the triplet is already found in a good solution. More... | |
std::vector< TripletSolution > | GenerateTripletTracks (Triplet triplet, std::vector< PndSttHit *> &sttHits, PndSttGeometryMap *fGeometryMap) |
Generate tracks for one triplet. More... | |
std::vector< double > | calcIntersectionPointCircleLine (std::vector< double > circle, double m, double b, double Ax) |
TripletSolution | FindHitsCloseToCircle (std::vector< PndSttHit *> &sttHits, TVector3 &circle, double &fDistanceThresholdSTTFar, PndSttGeometryMap *fGeometryMap) |
Finds all hits that are close to a specific circle. More... | |
double | MeanSquareDistance (TripletSolution &solution) |
double | DistanceCirclePoint (TVector3 &circle, FairHit *hit) |
double | DistanceCircleSttHit (TVector3 &circle, PndSttHit *sttHit) |
double | DistanceCircleSttHit (TVector3 &circle, PndSttHit *sttHit, double &sqaredDistance) |
double | DistanceLineSttHit (TVector3 &circle, PndSttHit *sttHit, double &squaredDistance) |
double | DistanceLineSttHit (TVector3 &circle, PndSttHit *sttHit) |
double | SquaredDistanceLineSttHit (TVector3 &circle, PndSttHit *sttHit) |
double | DistanceLinePoint (TVector3 &circle, FairHit *hit) |
void | CheckContinuitySolutions (std::vector< TripletSolution > &solutions, PndSttGeometryMap *fGeometryMap) |
Checks if a track candidate is continuous in the STT. More... | |
bool | IsContinuous (TripletSolution &solution, PndSttGeometryMap *fGeometryMap) |
Checks if te found STT hits are continuous. More... | |
void | AddOtherDetectors (vector< TripletSolution > &solutions, PndSttStrawMap *fStrawMap, std::map< TString, TClonesArray *> &fBranchMap) |
Add MVD and GEM hits to solutions. More... | |
std::vector< TripletSolution > | FindBestSolutions (std::vector< TripletSolution > &solutions) |
Select best solution(s) out of the 8 generated by triplet. More... | |
std::vector< TripletSolution > | CheckCombinedSolutions (std::vector< TripletSolution > &solutions, int nExpectedTracks) |
Combines and Checks all Solutions to generate only the true particle tracks. More... | |
std::vector< TripletSolution > | CheckSolutions (std::vector< TripletSolution > &solutions, std::vector< std::vector< int >> combinations) |
Check Combined Track Solutions if they are a possible solution. More... | |
std::vector< int > | GetUniqueTubeIDs (std::vector< TripletSolution > &solutions, std::vector< int > combinations) |
returns a vector of all tubes of all tracks in one combination More... | |
std::vector< std::vector< int > > | GetKOutOfN (int k, int n) |
Determines all possible combinations of tracks. More... | |
std::vector< TripletSolution > | CombineIdenticalSolutions (std::vector< TripletSolution > &solutions) |
bool | ContainsTriplet (Triplet &triplet, TripletSolution &solution) |
std::vector< PndSttHit * > | TubeReduction (std::vector< std::pair< int, int >> &Rows, std::map< int, std::vector< std::vector< PndSttHit *>>> &tubeStructure, std::map< FairLink, int > &fMapHitstoCATracklet, int position) |
Reduces the number of tubes chosen for combination–> if several tubes in one region (inner, mid or outer) belong to the same CA tracklet only the last tube is chosen. More... | |
std::map< FairLink, int > | GetHitsToCAMap (PndSttCA *fCATrackFinder) |
Definition at line 323 of file PndApolloniusTriplet.h.
|
inline |
Add MVD and GEM hits to solutions.
[in] | solutions | A vector of all solutions for one triplet |
Definition at line 1089 of file PndApolloniusTriplet.h.
References CAMath::ATan2(), PndApollonius::Thresholds::fDistanceThresholdGEM, PndApollonius::Thresholds::fDistanceThresholdMVDMid2, PndApollonius::Thresholds::fDistanceThresholdSTTCombinedSkewed, PndApollonius::Thresholds::fDistanceThresholdSTTSkewed, GEM, PndSttTube::GetPosition(), PndSttStrawMap::GetSector(), PndSttStrawMap::GetStrawRow(), PndSttStrawMap::GetTube(), PndSttHit::GetTubeID(), PndSttSkewedHit::GetTubeIDs(), i, PndSttStrawMap::IsSkewedStraw(), and CAMath::Pi().
|
inline |
Definition at line 748 of file PndApolloniusTriplet.h.
References sqrt().
|
inline |
Combines and Checks all Solutions to generate only the true particle tracks.
[in] | solutions | A vector of the best candidates for one triplet |
[in] | nTracks | Number of found tracks |
[in] | nExpectedTracks | Number of expected tracks. |
[out] | result | A vector of found track candidates. |
Definition at line 1291 of file PndApolloniusTriplet.h.
|
inline |
Checks if a track candidate is continuous in the STT.
[in] | solutions | A vector of possible track solutions |
Definition at line 1031 of file PndApolloniusTriplet.h.
|
inline |
Check Combined Track Solutions if they are a possible solution.
[in] | solutions | A vector of the best candidates for one triplet |
[in] | CombinedSolutions | A vector of a vactor containing all tracks that might belong together |
[out] | result | A vector of found track candidates. |
Definition at line 1338 of file PndApolloniusTriplet.h.
|
inline |
Definition at line 1425 of file PndApolloniusTriplet.h.
References PndApollonius::TripletSolution::GetNHits().
|
inline |
Definition at line 1440 of file PndApolloniusTriplet.h.
References PndApollonius::TripletSolution::fHits, and PndApollonius::Triplet::fTripletHits.
|
inline |
Created maps that connect the hits with a corresponding CA tracklet.
[in] | triplets | All inner, mid and outer tubes |
Definition at line 412 of file PndApolloniusTriplet.h.
References PndApollonius::TripletValues::fFirstRow, PndApollonius::TripletValues::fLastRow, PndApollonius::ReductionMaps::fMapCAToMidTube, PndApollonius::ReductionMaps::fMapCAToOuterTube, PndApollonius::ReductionMaps::fMapInnerTubeToCA, PndApollonius::ReductionMaps::fMapMidTubeToCA, PndApollonius::TripletValues::fMidRow, and PndApollonius::ReductionMaps::Reset().
|
inline |
Definition at line 945 of file PndApolloniusTriplet.h.
References sqrt().
|
inline |
double distCenters = (hit - circ).Mod();
Definition at line 956 of file PndApolloniusTriplet.h.
References PndSttHit::GetIsochrone(), and sqrt().
|
inline |
double distCenters = (hit - circ).Mod();
Definition at line 971 of file PndApolloniusTriplet.h.
References PndSttHit::GetIsochrone(), and sqrt().
|
inline |
Definition at line 1012 of file PndApolloniusTriplet.h.
|
inline |
|
inline |
Definition at line 984 of file PndApolloniusTriplet.h.
References sqrt().
|
inline |
Select best solution(s) out of the 8 generated by triplet.
[in] | solutions | A vector of all possible track candidates for one triplet |
[out] | result | A vector of the best candidates for one triplet |
Definition at line 1195 of file PndApolloniusTriplet.h.
References best, PndApollonius::TripletSolution::fHits, PndApollonius::TripletSolution::fMeanSquare, and i.
|
inline |
Finds all hits that are close to a specific circle.
[in] | sttHits | A vector of all stt hits in a preselected group |
[in] | circle | An apollonius circle |
[out] | result | A vector of all STT hits that are close to the circle |
Definition at line 845 of file PndApolloniusTriplet.h.
References CAMath::Abs(), PndApollonius::TripletSolution::AddHits(), PndApollonius::Thresholds::fDistanceThresholdSTTFar, PndApollonius::TripletSolution::fMeanSquare, PndSttHit::GetTubeID(), PndSttGeometryMap::IsSkewedStraw(), and PndApollonius::TripletSolution::SortStt().
|
inline |
Generate tracks for one triplet.
[in] | triplet | One Triplet |
[out] | result | A vector of all solutions for one triplet |
Definition at line 657 of file PndApolloniusTriplet.h.
References CAMath::Abs(), PndHoughApollonius::ApolloniusCudaCalcCPU(), PndApollonius::Thresholds::fDistanceThresholdSTTFar, PndApollonius::TripletSolution::fTriplet, PndApollonius::Triplet::fTripletHits, and m.
|
inline |
Sorts all STT hits by row and returns a map that connects each row with the hits in that row.
[in] | hits | STTHits of one preselected group |
[out] | result | A map that connects each row with the hits in that row. |
Definition at line 330 of file PndApolloniusTriplet.h.
References PndSttGeometryMap::GetRow().
|
inline |
Definition at line 1512 of file PndApolloniusTriplet.h.
References PndSttCA::FindTracks(), PndSttCA::GetFirstTrackCand(), PndTrackCand::GetNHits(), PndTrackCand::GetSortedHit(), i, and PndSttCA::NumFirstTrackCands().
|
inline |
Determines all possible combinations of tracks.
[in] | k | The number of expected tracks |
[in] | n | The number of existing tracks |
[out] | result | A vector containing all possible index combinations |
Definition at line 1403 of file PndApolloniusTriplet.h.
References i.
|
inline |
Creates a map that connects each STT row with a set of groups. All STT hits in one group are directly adjacent to each other.
[in] | hits | STTHits of one preselected group |
[out] | result | A map connecting each row with groups of STT hits. If there are hits in one row that are adjacent these hits are declared as a group |
Definition at line 354 of file PndApolloniusTriplet.h.
References CAMath::Abs(), and PndSttHit::GetTubeID().
|
inline |
returns a vector of all tubes of all tracks in one combination
[in] | solutions | A vector of possible track soluutions |
[in] | combinations | A possible combination for tracks that might be the same track |
[out] | result | A vector of all tubes of all tracks in one combination. |
Definition at line 1383 of file PndApolloniusTriplet.h.
References PndApollonius::TripletSolution::STT.
|
inline |
Checks if te found STT hits are continuous.
[in] | solutions | A vector of all solutions for one triplet |
[out] | bool |
Definition at line 1042 of file PndApolloniusTriplet.h.
References PndTrackEvaluatorDetStt::CheckFirstHit(), PndTrackEvaluatorDetStt::CheckTwoHits(), PndApollonius::TripletSolution::fHits, and PndApollonius::TripletSolution::SortStt().
|
inline |
Checks is the triplet is already found in a good solution.
[in] | solutions | All already found good solutions |
[in] | triplet | One Triplet |
[out] | bool | is already found (true) or not (false) |
Definition at line 633 of file PndApolloniusTriplet.h.
References PndApollonius::Triplet::fTripletHits.
|
inline |
Definition at line 901 of file PndApolloniusTriplet.h.
References PndApollonius::TripletSolution::fHits, PndApollonius::TripletSolution::fTrack, PndApollonius::TripletSolution::GEM, PndApollonius::TripletSolution::GetNHits(), PndApollonius::TripletSolution::MVDpixel, and PndApollonius::TripletSolution::MVDstrip.
|
inline |
Find triplet combinations with higher probability to be a proper one.
[in] | triplets | All inner, mid and outer tubes |
[out] | result | A vector of triplets |
Definition at line 453 of file PndApolloniusTriplet.h.
References PndApollonius::TripletValues::fFirstRow, PndApollonius::TripletValues::fLastRow, PndApollonius::ReductionMaps::fMapCAToMidTube, PndApollonius::ReductionMaps::fMapCAToOuterTube, PndApollonius::ReductionMaps::fMapInnerTubeToCA, PndApollonius::ReductionMaps::fMapMidTubeToCA, PndApollonius::TripletValues::fMidRow, PndSttCA::GetFirstTrackCand(), PndTrackCand::GetNHits(), PndTrackCand::GetSortedHit(), PndSttHit::GetTubeID(), i, PndSttGeometryMap::IsSkewedStraw(), and sqrt().
|
inline |
Definition at line 1000 of file PndApolloniusTriplet.h.
References PndSttHit::GetIsochrone(), and m.
|
inline |
Reduces the number of tubes chosen for combination–> if several tubes in one region (inner, mid or outer) belong to the same CA tracklet only the last tube is chosen.
[in] | Rows | The row frum which to choose the tubes |
[in] | tubeStructure | A map connecting each row with groups of STT hits. If there are hits in one row that are adjacent these hits are declared as a group |
[in] | position | An index that indicates if the first (0), mid (1) od last (2) row is reduced. |
[out] | result | Stt hits chosen for combination |
Definition at line 1461 of file PndApolloniusTriplet.h.