CMS 3D CMS Logo

EcalTBHodoscopeRecInfoAlgo.h
Go to the documentation of this file.
1 #ifndef RecoTBCalo_EcalTBHodoscopeReconstructor_EcalTBHodoscopeRecInfoAlgo_HH
2 #define RecoTBCalo_EcalTBHodoscopeReconstructor_EcalTBHodoscopeRecInfoAlgo_HH
3 
7 
8 #include <vector>
9 #include <cmath>
10 
12 public:
14 
16  const std::vector<double>& planeShift,
17  const std::vector<double>& zPosition);
18 
19  EcalTBHodoscopeRecInfo reconstruct(const EcalTBHodoscopeRawInfo& hodoscopeRawInfo) const;
20 
21 private:
23  class BeamTrack {
24  public:
25  float x;
26  float xS;
27  float xQ;
28 
29  bool operator<(BeamTrack& b2) { return (fabs(xS) < fabs(b2.xS)); }
30 
31  BeamTrack(float x0, float xs, float xq) : x(x0), xS(xs), xQ(xq) {}
32 
34 
35  private:
36  BeamTrack() {}
37  };
38 
39  //Methods taken from h4ana. They can change in a future version
40 
41  void clusterPos(float& x, float& xQuality, const int& ipl, const int& xclus, const int& wclus) const;
42 
43  void fitHodo(float& x,
44  float& xQuality,
45  const int& ipl,
46  const int& nclus,
47  const std::vector<int>& xclus,
48  const std::vector<int>& wclus) const;
49 
50  void fitLine(float& x,
51  float& xSlope,
52  float& xQuality,
53  const int& ipl1,
54  const int& nclus1,
55  const std::vector<int>& xclus1,
56  const std::vector<int>& wclus1,
57  const int& ipl2,
58  const int& nclus2,
59  const std::vector<int>& xclus2,
60  const std::vector<int>& wclus2) const;
61 
63 
64  std::vector<double> planeShift_;
65  std::vector<double> zPosition_;
66 
67  //for the moment mantaining it here
69 };
70 
71 #endif
EcalTBHodoscopeRecInfo reconstruct(const EcalTBHodoscopeRawInfo &hodoscopeRawInfo) const
void fitHodo(float &x, float &xQuality, const int &ipl, const int &nclus, const std::vector< int > &xclus, const std::vector< int > &wclus) const
void clusterPos(float &x, float &xQuality, const int &ipl, const int &xclus, const int &wclus) const
bias2_t b2[25]
Definition: b2.h:9
EcalTBHodoscopeGeometry myGeometry_
void fitLine(float &x, float &xSlope, float &xQuality, const int &ipl1, const int &nclus1, const std::vector< int > &xclus1, const std::vector< int > &wclus1, const int &ipl2, const int &nclus2, const std::vector< int > &xclus2, const std::vector< int > &wclus2) const