18 }
else if ( width == 2 ) {
32 const int& ipl,
const int& nclus,
const std::vector<int>& xclus,
const std::vector<int>& wclus)
const
38 clusterPos(x, xQuality, ipl, xclus[0], wclus[0]);
40 xQuality = -10 - nclus;
45 const int& ipl1,
const int& nclus1,
const std::vector<int>& xclus1,
const std::vector<int>& wclus1,
46 const int& ipl2,
const int& nclus2,
const std::vector<int>& xclus2,
const std::vector<int>& wclus2)
const
49 fitHodo(x, xQuality, ipl2,nclus2,xclus2,wclus2);
54 fitHodo(x, xQuality, ipl1,nclus1,xclus1,wclus1);
64 std::list<BeamTrack>
tracks;
66 for(
int i1=0;i1<nclus1;i1++) {
67 for(
int i2=0;i2<nclus2;i2++) {
68 clusterPos(x1, xQ1, ipl1, xclus1[i1], wclus1[i1]);
69 clusterPos(x2, xQ2, ipl2, xclus2[i2], wclus2[i2]);
73 x0 = (( x2 + x1 ) - xs *
84 x = tracks.begin()->x;
85 xSlope = tracks.begin()->xS;
86 xQuality = tracks.begin()->xQ;
94 float xSlope,ySlope = 0.0;
95 float xQuality, yQuality = -100.0;
98 std::vector<int> xclus[4];
99 std::vector<int> wclus[4];
103 int nhits = hodoscopeRawInfo[ipl].numberOfFiredHits();
113 while ( hodoscopeRawInfo[ipl][first] == 0 ) first++;
114 last = first+1; nh--;
117 while ( last < myGeometry_->getNFibres() && hodoscopeRawInfo[ipl][last] ) { last++;nh--;}
128 while( nh>0 && last<myGeometry_->getNFibres() );
129 wclus[ipl].push_back(last - first);
130 xclus[ipl].push_back(first);
144 0,nclus[0],xclus[0],wclus[0],
145 2,nclus[2],xclus[2],wclus[2]);
147 1,nclus[1],xclus[1],wclus[1],
148 3,nclus[3],xclus[3],wclus[3]);
154 fitHodo(x, xQuality, 0,nclus[0],xclus[0],wclus[0]);
159 fitHodo(y, yQuality, 1,nclus[1],xclus[1],wclus[1]);
169 fitHodo(x, xQuality, 2,nclus[2],xclus[2],wclus[2]);
174 fitHodo(y, yQuality, 3,nclus[3],xclus[3],wclus[3]);
Class to hold track information.
void fitHodo(float &x, float &xQuality, const int &ipl, const int &nclus, const std::vector< int > &xclus, const std::vector< int > &wclus) const
EcalTBHodoscopeRecInfo reconstruct(const EcalTBHodoscopeRawInfo &hodoscopeRawInfo) 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
T x() const
Cartesian x coordinate.
static float getFibreLp(int plane, int fibre)
EcalTBHodoscopeRecInfoAlgo()
std::vector< double > planeShift_
void clusterPos(float &x, float &xQuality, const int &ipl, const int &xclus, const int &wclus) const
static float getFibreRp(int plane, int fibre)
std::vector< double > zPosition_
EcalTBHodoscopeGeometry * myGeometry_