PandaRoot
PndHoughApollonius.h
Go to the documentation of this file.
1 // PndHoughApollonius
3 // Calculate Apollonius Circles
5 
16 #ifndef PndHoughApollonius_H_
17 #define PndHoughApollonius_H_
18 
19 #include "FairTask.h"
20 #include "PndTrackCand.h"
21 #include <vector>
22 #include "PndHoughData.h"
23 
25 
26  public:
28 
30  : fMapFairLinktoFairHit(data->GetMapFairLinktoFairHit()), fMapFairLinktoIsochrone(data->GetMapFairLinktoIsochrone()),
31  fMapFairLinktoIsochroneError(data->GetMapFairLinktoIsochroneError()), fData(data){};
32 
33  virtual ~PndHoughApollonius(){};
35  void ApolloniusCuda(std::vector<std::vector<FairLink>> &multiplets, double apolloniusCircles[]);
37  static void ApolloniusCudaCalcCPU(int num, double hit0[], double hit1[], double hit2[], double apolloniusCircles[]);
38 
39  private:
40  std::map<FairLink, FairHit *> fMapFairLinktoFairHit;
41  std::map<FairLink, Double_t> fMapFairLinktoIsochrone;
42  std::map<FairLink, Double_t> fMapFairLinktoIsochroneError;
43  PndHoughData *fData = nullptr;
44 
45  ClassDef(PndHoughApollonius, 2);
46 };
47 
48 #endif /*PndHoughApollonius_H_*/
static void ApolloniusCudaCalcCPU(int num, double hit0[], double hit1[], double hit2[], double apolloniusCircles[])
Calculation of Apollonius circles on CPU. (This is the same as implemented in cuda).
void ApolloniusCuda(std::vector< std::vector< FairLink >> &multiplets, double apolloniusCircles[])
This functions brings the FairLinks in a simpler structure for using cuda.
PndHoughApollonius(PndHoughData *data)