PandaRoot
PndHoughTransformation.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 // PndHoughTransformation
15 // Hough transformation based on the apollonius problem
17 
28 #ifndef PndHoughTransformation_H_
29 #define PndHoughTransformation_H_
30 
32 #include "PndHoughApollonius.h"
33 #include "PndHoughSpace.h"
34 #include "PndHoughUtilities.h"
35 #include "PndHoughData.h"
36 
37 #include <vector>
38 
40 
41  public:
42  PndHoughTransformation(PndHoughData *data) //: fHoughSpace(data->GetHoughSpace())
43  {
44  fPndHoughMultipletCreator = new PndHoughMultipletCreator();
45  fPndHoughApollonius = new PndHoughApollonius(data);
46  // fPndHoughUtilities = new PndHoughUtilities(data);
47  fData = data;
48  };
49 
51  {
52  delete fPndHoughMultipletCreator;
53  delete fPndHoughApollonius;
54  // delete fPndHoughUtilities;
55  };
56 
58  vector<TVector3> FindMaximaWithHoughTransformation(PndTrackCand &trackCand);
60  void HoughSpace(PndTrackCand &trackCand);
62  TVector3 MaximumSelectiondCandToTrack(PndTrackCand &trackCand, vector<TVector3> &TrackCircleVec);
63 
64  virtual void SetUtilities(PndHoughUtilities *utilities) { fPndHoughUtilities = utilities; };
65 
66  private:
67  // PndHoughSpace *fHoughSpace = nullptr;
68  PndHoughMultipletCreator *fPndHoughMultipletCreator = nullptr;
69  PndHoughApollonius *fPndHoughApollonius = nullptr;
70  PndHoughUtilities *fPndHoughUtilities = nullptr;
71  PndHoughData *fData = nullptr;
72 
73  ClassDef(PndHoughTransformation, 1);
74 };
75 
76 #endif /*PndHoughTransformation_H_*/
vector< TVector3 > FindMaximaWithHoughTransformation(PndTrackCand &trackCand)
Main class of the Hough transformation: the Hough space is filled and the maximum is returned...
void HoughSpace(PndTrackCand &trackCand)
Here the Hough space is filled by calcualting all Apollonius circles.
virtual void SetUtilities(PndHoughUtilities *utilities)
PndHoughTransformation(PndHoughData *data)
TVector3 MaximumSelectiondCandToTrack(PndTrackCand &trackCand, vector< TVector3 > &TrackCircleVec)
Selects one maximum of many by choosing the one with the smalles RMS to the track.