PandaRoot
PndHoughApollonius.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
14 // PndHoughApollonius
15 // Calculate Apollonius Circles
17 
28 #ifndef PndHoughApollonius_H_
29 #define PndHoughApollonius_H_
30 
31 #include "FairTask.h"
32 #include "PndTrackCand.h"
33 #include <vector>
34 #include "PndHoughData.h"
35 
37 
38  public:
40 
42  : fMapFairLinktoFairHit(data->GetMapFairLinktoFairHit()), fMapFairLinktoIsochrone(data->GetMapFairLinktoIsochrone()),
43  fMapFairLinktoIsochroneError(data->GetMapFairLinktoIsochroneError()), fData(data){};
44 
45  virtual ~PndHoughApollonius(){};
47  void ApolloniusCuda(std::vector<std::vector<FairLink>> &multiplets, double apolloniusCircles[]);
49  static void ApolloniusCudaCalcCPU(int num, double hit0[], double hit1[], double hit2[], double apolloniusCircles[]);
50 
51  private:
52  std::map<FairLink, FairHit *> fMapFairLinktoFairHit;
53  std::map<FairLink, Double_t> fMapFairLinktoIsochrone;
54  std::map<FairLink, Double_t> fMapFairLinktoIsochroneError;
55  PndHoughData *fData = nullptr;
56 
57  ClassDef(PndHoughApollonius, 2);
58 };
59 
60 #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)