~c-e-pidcott/maus/devel

« back to all changes in this revision

Viewing changes to src/common_cpp/Recon/SciFi/SciFiClusterRec.hh

  • Committer: Chris Rogers
  • Date: 2012-11-06 12:04:39 UTC
  • mfrom: (659.1.45 release-candidate)
  • Revision ID: chris.rogers@stfc.ac.uk-20121106120439-e6znfg5kfg850l38
Tags: MAUS-v0.4.0
MAUS-v0.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#ifndef SCIFICLUSTERREC_HH
24
24
#define SCIFICLUSTERREC_HH
 
25
 
25
26
// C headers
26
27
#include <assert.h>
27
28
#include <json/json.h>
40
41
#include "CLHEP/Vector/Rotation.h"
41
42
 
42
43
#include "src/legacy/Config/MiceModule.hh"
43
 
#include "src/common_cpp/Recon/SciFi/SciFiEvent.hh"
44
 
#include "src/common_cpp/Recon/SciFi/SciFiDigit.hh"
 
44
#include "src/common_cpp/DataStructure/SciFiEvent.hh"
 
45
#include "src/common_cpp/DataStructure/SciFiDigit.hh"
 
46
#include "src/common_cpp/DataStructure/ThreeVector.hh"
45
47
 
46
 
// namespace MAUS {
 
48
namespace MAUS {
47
49
 
48
50
class SciFiClusterRec {
49
51
 public:
50
52
  SciFiClusterRec(); // Default constructor
51
53
 
52
 
  SciFiClusterRec(int cluster_exception, double min_npe);
 
54
  SciFiClusterRec(int cluster_exception, double min_npe, std::vector<const MiceModule*> modules);
53
55
 
54
56
  ~SciFiClusterRec();
55
57
 
57
59
   * @arg evt a SciFiEvent to be filled with SciFiClusters
58
60
   * @arg modules the SciFi MICE modules
59
61
   */
60
 
  void process(SciFiEvent &evt, std::vector<const MiceModule*> modules);
 
62
  void process(SciFiEvent &evt);
61
63
 
62
64
  /** @brief Finds the position and direction of the clusters.
63
65
   * @arg clust a SciFiCluster
64
 
   * @arg modules the MICE modules
65
66
   */
66
 
  void construct(SciFiCluster *clust, std::vector<const MiceModule*> modules);
67
 
 
68
 
  Hep3Vector get_reference_frame_pos(int tracker, std::vector<const MiceModule*> modules);
 
67
  void process_cluster(SciFiCluster *clust);
 
68
 
 
69
  ThreeVector get_reference_frame_pos(int tracker);
 
70
 
 
71
  bool are_neighbours(SciFiDigit *seed_i, SciFiDigit *seed_j);
 
72
 
 
73
  std::vector<SciFiDigit*> get_seeds(SciFiEvent &evt);
 
74
 
 
75
  void make_clusters(SciFiEvent &evt, std::vector<SciFiDigit*> &seeds);
 
76
 
 
77
  const MiceModule* find_plane(int tracker, int station, int plane);
 
78
 
 
79
  // Set relative position & channel number for the Kalman Filter.
 
80
  // This is the position of the cluster relatively to station 1 of the tracker (0 or 1)
 
81
  // with the displacement of the station centre subtracted.
 
82
  void construct(SciFiCluster *clust, const MiceModule* this_plane,
 
83
                 ThreeVector &dir, ThreeVector &tracker_ref_frame_pos, double &alpha);
69
84
 
70
85
 private:
71
86
 
72
87
  int _size_exception;
73
88
 
74
89
  double _min_npe;
 
90
 
 
91
  std::vector<const MiceModule*> _modules;
75
92
};  // Don't forget this trailing colon!!!!
76
 
// } // ~namespace MAUS
 
93
 
 
94
} // ~namespace MAUS
77
95
 
78
96
#endif