PandaRoot
PndMQStraightLineTrackFinder.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndMQStraightLineTrackFinder -----
3 // ----- Created 22/10/09 by M. Michel -----
4 // -------------------------------------------------------------------------
5 
6 #ifndef PndMQStraightLineTrackFinder_H
7 #define PndMQStraightLineTrackFinder_H
8 
9 #include "FairTask.h"
10 #include "PndMCTrack.h"
11 #include "PndSdsGeoPar.h"
12 #include "PndSdsHit.h"
13 #include "PndSdsMCPoint.h"
14 #include "PndSdsClusterStrip.h"
15 #include "PndTrackCand.h"
16 #include "PndTrack.h"
17 
18 #include <string>
19 #include <vector>
20 #include <utility>
21 
23  TVector3 origin;
24  TVector3 direction;
25 };
26 
28  public:
33 
34  void SetVerbose(Int_t verbose) { fVerbose = verbose; };
35  void SetSearchRadius(Double_t accu) { dXY = accu; };
36  std::vector<PndTrackCand> FindTracks(std::vector<PndSdsHit> hits);
37 
38  protected:
39  Double_t GetTrackDip(PndMCTrack *myTrack);
40  Double_t GetTrackCurvature(PndMCTrack *myTrack);
41  void SortHitsToLayers(std::vector<PndSdsHit> hits);
42  std::vector<std::vector<int>> GetStartCombination(int firstLayer, int secondLayer);
43  PndTrackCand FindTrack(std::vector<int> startCombi) StraightLineParams GetLineParameters(std::vector<int> startCombi);
44  TVector3 PropagateToXYPlane(StraightLineParams line, Double z);
45  double DistanceOfPoints(TVector3 first, TVector3 second);
46 
47  private:
48  Double_t fdXY;
49  Int_t fNLayers;
50  std::vector<std::vector<std::pair<PndSdsHit, bool>>> fHitsPerLayer;
51 };
52 
53 #endif /* PndMQStraightLineTrackFinder_H */