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 
20  if (myGeometry_)
21  delete myGeometry_;
22  };
23 
24  EcalTBHodoscopeRecInfo reconstruct(const EcalTBHodoscopeRawInfo& hodoscopeRawInfo) const;
25 
26 private:
28  class BeamTrack {
29  public:
30  float x;
31  float xS;
32  float xQ;
33 
34  bool operator<(BeamTrack& b2) { return (fabs(xS) < fabs(b2.xS)); }
35 
36  BeamTrack(float x0, float xs, float xq) : x(x0), xS(xs), xQ(xq) {}
37 
39 
40  private:
41  BeamTrack() {}
42  };
43 
44  //Methods taken from h4ana. They can change in a future version
45 
46  void clusterPos(float& x, float& xQuality, const int& ipl, const int& xclus, const int& wclus) const;
47 
48  void fitHodo(float& x,
49  float& xQuality,
50  const int& ipl,
51  const int& nclus,
52  const std::vector<int>& xclus,
53  const std::vector<int>& wclus) const;
54 
55  void fitLine(float& x,
56  float& xSlope,
57  float& xQuality,
58  const int& ipl1,
59  const int& nclus1,
60  const std::vector<int>& xclus1,
61  const std::vector<int>& wclus1,
62  const int& ipl2,
63  const int& nclus2,
64  const std::vector<int>& xclus2,
65  const std::vector<int>& wclus2) const;
66 
68 
69  std::vector<double> planeShift_;
70  std::vector<double> zPosition_;
71 
72  //for the moment mantaining it here
74 };
75 
76 #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
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
static constexpr float b2
EcalTBHodoscopeGeometry * myGeometry_