PandaRoot
PndHoughTrackCorrection.h
Go to the documentation of this file.
1 // PndHoughTrackCorrection
3 // A class to correct a PndTrack: only hits which are close enough to the track are added to the track
5 
16 #ifndef PndHoughTrackCorrection_H_
17 #define PndHoughTrackCorrection_H_
18 
19 #include "PndHoughUtilities.h"
20 #include "PndHoughData.h"
21 
22 #include <vector>
23 
25 
26  public:
28  {
29  ioman = FairRootManager::Instance();
30  fMapFairLinktoFairHit = fData->GetMapFairLinktoFairHit();
31  fMapFairLinktoIsochrone = fData->GetMapFairLinktoIsochrone();
32  };
33 
34  virtual ~PndHoughTrackCorrection() { delete ioman; };
35  virtual void SetUtilities(PndHoughUtilities *utilities) { fPndHoughUtilities = utilities; };
37  TVector3 FindMinimumHit(PndTrackCand &trackCand, std::vector<double> &circle);
39  double calc_rho(TVector3 &Hit, TVector3 &Track, TVector3 &Hitmin);
41  PndTrackCand calcCorrectTrackCand(PndTrackCand &trackCand, TVector3 &Track, PndTrackCand &trackCandTot);
43  PndTrackCand GetApolloniusTrackCand() { return fApolloniusTrackCand; };
44 
45  private:
46  PndHoughUtilities *fPndHoughUtilities = nullptr;
47  FairRootManager *ioman = nullptr;
48  std::map<FairLink, FairHit *> fMapFairLinktoFairHit;
49  std::map<FairLink, Double_t> fMapFairLinktoIsochrone;
50  PndTrackCand fApolloniusTrackCand;
51 
52  ClassDef(PndHoughTrackCorrection, 1);
53 };
54 
55 #endif /*PndHoughTrackCorrection_H_*/
double calc_rho(TVector3 &Hit, TVector3 &Track, TVector3 &Hitmin)
Calculates rho for a hit. It is calculated as the path length of the particle track.
PndTrackCand calcCorrectTrackCand(PndTrackCand &trackCand, TVector3 &Track, PndTrackCand &trackCandTot)
Corrects the track candidate: only hits are used that are close to the calculated track (d < 0...
std::map< FairLink, FairHit * > GetMapFairLinktoFairHit() const
Returns the map linking FairLinks to FairHits.
Definition: PndHoughData.h:90
virtual void SetUtilities(PndHoughUtilities *utilities)
PndTrackCand GetApolloniusTrackCand()
Returns the corrected track candidate.
PndHoughTrackCorrection(PndHoughData *fData)
std::map< FairLink, Double_t > GetMapFairLinktoIsochrone() const
Returns the map linking FairLinks to isochrone radii.
Definition: PndHoughData.h:92
TVector3 FindMinimumHit(PndTrackCand &trackCand, std::vector< double > &circle)
Determines the first hit of a track as the one closest to the interaction point.