#include "hpiontrackertrackf.h"
#include "hpiontrackerdef.h"
#include "hpiontrackerhit.h"
#include "hpiontrackertrack.h"
#include "hpiontrackerdetector.h"
#include "hpiontrackertrackfpar.h"
#include "hpiontrackermompar.h"
#include "hpiontrackermomrunpar.h"
#include "hpiontrackerbeampar.h"
#include "HBeam.h"
#include "hades.h"
#include "hcategory.h"
#include "hdebug.h"
#include "hevent.h"
#include "hiterator.h"
#include "hruntimedb.h"
#include "hrun.h"
#include "hspectrometer.h"
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
#include <cmath>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define PR(x) std::cout << "++DEBUG: " << #x << " = |" << x << "| (" << __FILE__ << ", " << __LINE__ << ")\n";
#define PRh(x) std::cout << "++DEBUG: " << #x << " = hex |" << std::hex << x << std::dec << "| (" << __FILE__ << ", " << __LINE__ << ")\n";
ClassImp (HPionTrackerTrackF)
HPionTrackerTrackF::HPionTrackerTrackF (void)
{
initVars();
correction.clear();
memset(corrs, 0, 2* sizeof(Double_t));
}
HPionTrackerTrackF::HPionTrackerTrackF (const Text_t * name, const Text_t * title, Bool_t skip)
: HReconstructor (name, title)
{
initVars();
correction.clear();
memset(corrs, 0, 2* sizeof(Double_t));
}
HPionTrackerTrackF::~HPionTrackerTrackF (void)
{
if (NULL != iter)
{
delete iter;
iter = NULL;
}
}
void HPionTrackerTrackF::initVars(void)
{
pHitCat = NULL;
pTrackCat = NULL;
iter = NULL;
pTrackfpar = NULL;
pTrackBeampar = NULL;
idet1 = 0;
idet2 = 1;
id_det1 =16;
id_det2 =25;
id_outQ9=29;
id_targ =32;
T12[idet1] = -0.03919;
T14[idet1] = -0.00111;
T16[idet1] = -0.81235;
T32[idet1] = -0.01312;
T33[idet1] = -18.281;
T34[idet1] = -0.00298;
T36[idet1] = 0.3955;
T126[idet1] = 0.03095;
T146[idet1] = -0.0003049;
T166[idet1] = 0.005611;
T336[idet1] = 0.216;
T346[idet1] = 0.0263;
T366[idet1] = -0.003661;
T12[idet2] = -0.47448;
T14[idet2] = 0.00006;
T16[idet2] = -0.03413;
T32[idet2] = -0.06929;
T33[idet2] = -67.86523;
T34[idet2] = -0.08382;
T36[idet2] = 1.42422;
T126[idet2] = -0.0308;
T146[idet2] = 0.0008834;
T166[idet2] = -0.02265;
T336[idet2] = 0.8774;
T346[idet2] = 0.09678;
T366[idet2] = -0.01531;
T12_t = -0.12828;
T14_t = 0.00014;
T16_t = 0.00700;
T126_t = -0.04456;
T146_t = 0.001482;
T166_t = -0.007186;
T32_t = -0.05304;
T33_t = -49.73210;
T34_t = -0.06448;
T36_t = 0.99967 ;
T326_t = -0.0009558;
T336_t = 0.08271;
T346_t = 0.07017;
T366_t = 0.0005012;
T21_t = 3.76702;
T22_t = 0.57575;
T23_t = -1.16249;
T24_t = 0.00019;
T26_t = 0.07783;
T226_t = -0.04209;
T246_t = 0.001718;
T266_t = 0.02538;
T41_t = 1.00162;
T42_t = 0.26582;
T43_t = 263.23;
T44_t = 0.32118;
T46_t = -5.58106;
T426_t = - 0.003304;
T436_t = - 8.291;
T446_t = - 0.3796;
T466_t = 0.1623;
nev = 0;
#ifdef USE_FILE
inputpos.open("trackdetpos-g05x-g05y.txt");
#endif
}
Bool_t HPionTrackerTrackF::momrec (Float_t x1, Float_t y1, Float_t x2, Float_t y2, Float_t momref, track & tr)
{
Int_t yy_weight = pTrackerMompar->getYYWeight();
Float_t yy_slope = pTrackerMompar->getYYSlope();
Float_t yy_offset = pTrackerMompar->getYYOffset();
Int_t mom_weight = pTrackerMompar->getMomWeight();
Float_t mom_maxt = corrs[0] - corrs[1];
Float_t mom_offset = - corrs[1];
tr.fX1 = x1;
tr.fY1 = y1;
tr.fX2 = x2;
tr.fY2 = y2;
Double_t a_3 = T126[idet2] * T166[idet1] - T126[idet1] * T166[idet2];
Double_t a_2 = T12[idet2] * T166[idet1] - T12[idet1]*T166[idet2] +
T16[idet1] * T126[idet2] - T16[idet2] * T126[idet1];
Double_t a_1 = T12[idet2] * T16[idet1] - T12[idet1] * T16[idet2] -
x1 * T126[idet2] + x2 * T126[idet1];
Double_t a_0 = x2 * T12[idet1] - x1 * T12[idet2];
Double_t sol = 0.;
Double_t yyy1 = 0.;
Double_t yyp1 = 0.;
for (Int_t isol = 1; isol < 4; ++isol)
{
yyy1 = a_3 *sol * sol * sol + a_2 * sol *sol + a_1 * sol + a_0;
yyp1 = 3.* a_3 * sol * sol + 2. * a_2 * sol + a_1;
sol = sol - yyy1 / yyp1;
}
Double_t alfa = 0, beta = 0, gamma = 0, deter = 0, xdetc1 = 0, xdetc2 = 0,alfap = 0,betap = 0, gammap = 0, sol1 = 0,theta1 = 0, yci1 = 0, phi1 = 0, x_0 = 0;
Double_t theta, phi;
theta = (x1-T16[idet1]*sol-T166[idet1]*sol*sol);
theta = theta/(T12[idet1]+T126[idet1]*sol);
alfa = T33[idet1]+T336[idet1]*sol;
beta =T34[idet1]+T346[idet1]*sol;
gamma = y1-T32[idet1]*theta -T36[idet1]*sol-T366[idet1]*sol*sol;
alfap = T33[idet2]+T336[idet2]*sol;
betap = T34[idet2]+T346[idet2]*sol;
gammap = y2 -T32[idet2] * theta - T36[idet2] * sol - T366[idet2] * sol * sol;
deter = alfa*betap-alfap*beta;
phi = (alfa*gammap-gamma*alfap)/deter;
xdetc1 = x1 - T14[idet1]*phi - T146[idet1]*phi*sol;
xdetc2 = x2 - T14[idet2]*phi - T146[idet2]*phi*sol;
a_3 = T126[idet2] * T166[idet1] - T126[idet1] * T166[idet2];
a_2 = T12[idet2] * T166[idet1] - T12[idet1]*T166[idet2] +
T16[idet1] * T126[idet2] - T16[idet2] * T126[idet1];
a_1 = T12[idet2] * T16[idet1] - T12[idet1] * T16[idet2] -
xdetc1 * T126[idet2] + xdetc2 * T126[idet1];
a_0 = xdetc2 * T12[idet1] - xdetc1 * T12[idet2];
sol1=sol;
for (Int_t isol = 1; isol < 4; ++isol)
{
yyy1 = a_3 * sol1 * sol1 * sol1 + a_2 * sol1 * sol1 + a_1 * sol1 + a_0;
yyp1 = 3.* a_3 * sol1 * sol1 + 2. * a_2 * sol1 + a_1;
sol1 = sol1-yyy1/yyp1;
}
theta1 = (xdetc1-T16[idet1]*sol1-T166[idet1]*sol1*sol1) / (T12[idet1] + T126[idet1]*sol1);
alfa = T33[idet1]+T336[idet1]*sol1;
beta = T34[idet1]+T346[idet1]*sol1;
gamma = y1-T32[idet1]*theta1 -T36[idet1]*sol1-T366[idet1]*sol1*sol1;
alfap = T33[idet2]+T336[idet2]*sol1;
betap = T34[idet2]+T346[idet2]*sol1;
gammap = y2-T32[idet2]*theta1 - T36[idet2]*sol1 - T366[idet2]*sol1*sol1;
deter = alfa * betap -alfap * beta;
yci1 = (gamma * betap - beta * gammap)/deter;
phi1 = (alfa * gammap - gamma * alfap)/deter;
tr.fPhi0 = phi1/1000.;
tr.fTheta0 = theta1/1000.;
tr.fY0 = yci1;
Float_t Theta_hades = T21_t*x_0+T22_t*theta1+T23_t*yci1+T24_t*phi1+T26_t*sol1+T226_t*theta1*sol1+T246_t*phi1*sol1+T266_t*sol1*sol1;
Float_t Phi_hades = T41_t*x_0+T42_t*theta1+T43_t*yci1+T44_t*phi1+T46_t*sol1+T426_t*theta1*sol1+T436_t*yci1*sol1+T446_t*phi1*sol1+T466_t*sol1*sol1;
Float_t x_hades = T12_t*theta1+T14_t*phi1+T16_t*sol1+T126_t*theta1*sol1+T146_t*phi1*sol1+T166_t*sol1*sol1;
Float_t y_hades = T32_t*theta1+T33_t*yci1+T34_t*phi1+T36_t*sol1+T336_t*yci1*sol1+T346_t*phi1*sol1+T366_t*sol1*sol1;
tr.fTheta = Theta_hades/1000.;
tr.fPhi = Phi_hades/1000.;
tr.fXh = x_hades;
tr.fYh = y_hades;
tr.fP = momref * (1. + sol1/100. )+mom_offset;
Float_t RecMom = momref * (1. + sol1/100. )+mom_offset;
Float_t MaxMom = mom_maxt;
tr.fDist = sqrt(yy_weight*pow((-yy_slope * y1 + y2 - yy_offset)/sqrt(pow(yy_slope,2) + 1.0),2) + mom_weight * pow((MaxMom - RecMom),2));
return kTRUE;
}
Bool_t HPionTrackerTrackF::init (void)
{
HPionTrackerDetector * det = (HPionTrackerDetector *) gHades->getSetup()->getDetector ("PionTracker");
if (!det)
{
Error ("init", "No PionTracker found.");
return kFALSE;
}
pTrackfpar = (HPionTrackerTrackFPar *) gHades->getRuntimeDb()->getContainer ("PionTrackerTrackFPar");
if (!pTrackfpar) return kFALSE;
pTrackBeampar = (HPionTrackerBeamPar *) gHades->getRuntimeDb()->getContainer ("PionTrackerBeamPar");
if (!pTrackBeampar) {
Error ("init", "Could not retrieve HPionTrackerBeamPar!");
return kFALSE;
}
pHitCat = gHades->getCurrentEvent()->getCategory (catPionTrackerHit);
if (!pHitCat)
{
Error ("init()", "HPionTrackerhit category not available!");
return kFALSE;
}
pTrackerMompar = (HPionTrackerMomPar *) gHades->getRuntimeDb()->getContainer ("PionTrackerMomPar");
if (!pTrackerMompar)
{
Error ("init", "Could not retrieve HPionTrackerMomPar!");
return kFALSE;
}
pTrackerMomRunpar = (HPionTrackerMomRunPar *) gHades->getRuntimeDb()->getContainer ("PionTrackerMomRunPar");
if (!pTrackerMomRunpar)
{
Error ("init", "Could not retrieve HPionTrackerBeamRunPar!");
return kFALSE;
}
iter = (HIterator *) pHitCat->MakeIterator();
lochit.set(2, 0, 0);
pTrackCat = det->buildCategory (catPionTrackerTrack);
if (!pTrackCat) return kFALSE;
loc.set(0);
fActive = kTRUE;
return kTRUE;
}
Bool_t HPionTrackerTrackF::reinit (void)
{
if(pTrackBeampar) {
HBeamElement* edet1 = pTrackBeampar->getBeamElement(id_det1);
HBeamElement* edet2 = pTrackBeampar->getBeamElement(id_det2);
HBeamElement* eoutQ9= pTrackBeampar->getBeamElement(id_outQ9);
HBeamElement* etarg = pTrackBeampar->getBeamElement(id_targ);
if(edet1&&edet2&&eoutQ9&&etarg){
T12[idet1] = edet1->Tij[0][1];
T14[idet1] = edet1->Tij[0][3];
T16[idet1] = edet1->Tij[0][4];
T32[idet1] = edet1->Tij[2][1];
T33[idet1] = edet1->Tij[2][2];
T34[idet1] = edet1->Tij[2][3];
T36[idet1] = edet1->Tij[2][4];
T126[idet1] = edet1->Tijk[0][1][4];
T146[idet1] = edet1->Tijk[0][3][4];
T166[idet1] = edet1->Tijk[0][4][4];
T336[idet1] = edet1->Tijk[2][2][4];
T346[idet1] = edet1->Tijk[2][3][4];
T366[idet1] = edet1->Tijk[2][4][4];
T12[idet2] = edet2->Tij[0][1];
T14[idet2] = edet2->Tij[0][3];
T16[idet2] = edet2->Tij[0][4];
T32[idet2] = edet2->Tij[2][1];
T33[idet2] = edet2->Tij[2][2];
T34[idet2] = edet2->Tij[2][3];
T36[idet2] = edet2->Tij[2][4];
T126[idet2] = edet2->Tijk[0][1][4];
T146[idet2] = edet2->Tijk[0][3][4];
T166[idet2] = edet2->Tijk[0][4][4];
T336[idet2] = edet2->Tijk[2][2][4];
T346[idet2] = edet2->Tijk[2][3][4];
T366[idet2] = edet2->Tijk[2][4][4];
T12_t = eoutQ9->Tij[0][1];
T14_t = eoutQ9->Tij[0][3];
T16_t = eoutQ9->Tij[0][4];
T32_t = eoutQ9->Tij[2][1];
T33_t = eoutQ9->Tij[2][2];
T34_t = eoutQ9->Tij[2][3];
T36_t = eoutQ9->Tij[2][4];
T126_t = eoutQ9->Tijk[0][1][4];
T146_t = eoutQ9->Tijk[0][3][4];
T166_t = eoutQ9->Tijk[0][4][4];
T326_t = eoutQ9->Tijk[2][1][4];
T336_t = eoutQ9->Tijk[2][2][4];
T346_t = eoutQ9->Tijk[2][3][4];
T366_t = eoutQ9->Tijk[2][4][4];
T21_t = etarg->Tij[1][0];
T22_t = etarg->Tij[1][1];
T23_t = etarg->Tij[1][2];
T24_t = etarg->Tij[1][3];
T26_t = etarg->Tij[1][4];
T41_t = etarg->Tij[3][0];
T42_t = etarg->Tij[3][1];
T43_t = etarg->Tij[3][2];
T44_t = etarg->Tij[3][3];
T46_t = etarg->Tij[3][4];
T226_t = etarg->Tijk[1][1][4];
T246_t = etarg->Tijk[1][3][4];
T266_t = etarg->Tijk[1][4][4];
T426_t = etarg->Tijk[3][1][4];
T436_t = etarg->Tijk[3][2][4];
T446_t = etarg->Tijk[3][3][4];
T466_t = etarg->Tijk[3][4][4];
} else {
Error ("reinit", "Could not retrieve beam elements from HPionTrackerBeamPar!");
return kFALSE;
}
} else return kFALSE;
{
memset(corrs, 0, 2*sizeof(Double_t));
if(!pTrackerMomRunpar)
{
Error ("reinit", "Could not retrieve params from HPionTrackerMomRunPar!");
return kFALSE;
}
Int_t runID = gHades->getRuntimeDb()->getCurrentRun()->getRunId();
correction.clear();
pTrackerMomRunpar->getRun(runID, &correction);
for (Int_t i =0; i < correction.getNVals(); ++i)
{
corrs[i] = correction.getVal(i);
}
}
return kTRUE;
}
Int_t HPionTrackerTrackF::execute (void)
{
Float_t x1, x2, y1, y2, z1, z2;
HPionTrackerHit *pHit0 = NULL, *pHit1 = NULL;
std::vector<track> trackcan;
trackcan.clear();
track tr;
Int_t cnt0 = 0;
while (true)
{
Int_t cnt1 = 0;
lochit[0] = 0;
lochit[1] = cnt0++;
pHit0 = (HPionTrackerHit*)pHitCat->getObject(lochit);
if (!pHit0)
break;
while (true)
{
lochit[0] = 1;
lochit[1] = cnt1++;
pHit1 = (HPionTrackerHit*)pHitCat->getObject(lochit);
if (!pHit1)
break;
if (pTrackfpar->getTrackingFlag() == 0)
{
tr.fP = pTrackfpar->getRefMom();
tr.fTheta = 0.;
tr.fPhi = 0.;
}
else
{
#ifdef USE_FILE
nev = nev + 1;
inputpos >> x1 >> y1 >> x2 >> y2 ;
#else
pHit0->getLabPos(x1,y1,z1);
pHit1->getLabPos(x2,y2,z2);
#endif
#ifdef USE_FILE_SCAN
scanpos.open("poscan.txt");
scanpos >> x_l >> x_u >> y_l >> y_u ;
scanpos.close();
if(x1<x_l||x1>x_u||y1<y_l||y1>y_u) continue;
#endif
Bool_t success = momrec(x1, y1, x2, y2, pTrackfpar->getRefMom() * 1e-3, tr);
#ifdef USE_FILE
if (nev > 10000) success = false;
cout << "Positions from file : " << endl;
cout << x1 << " " << x2 << " " << nev << endl;
#endif
if (!success) return 0;
}
trackcan.push_back(tr);
}
}
if (trackcan.size())
{
std::sort(trackcan.begin(), trackcan.end(), HPionTrackerTrackF::sortfunction);
Float_t eloss_corr = pTrackerMompar->getElossCorr();
trackcan[0].fP = trackcan[0].fP + eloss_corr;
for (UInt_t t = 0; t < trackcan.size(); ++t)
{
insertTrack(trackcan[t]);
}
}
return 0;
}
void HPionTrackerTrackF::insertTrack(const track& tr)
{
HPionTrackerTrack * pTrack = NULL;
pTrack = static_cast<HPionTrackerTrack*>(pTrackCat->getNewSlot(loc));
if (pTrack != NULL)
{
pTrack = new(pTrack) HPionTrackerTrack;
pTrack->setPThetaPhi(tr.fP, tr.fTheta, tr.fPhi, tr.fMatch);
pTrack->setPosAll(tr.fX1, tr.fY1, tr.fX2, tr.fY2, tr.fXh, tr.fYh);
pTrack->setProdAngles(tr.fTheta0, tr.fPhi0);
pTrack->setProdY(tr.fY0);
}
}
hpiontrackertrackf.cc:100 hpiontrackertrackf.cc:101 hpiontrackertrackf.cc:102 hpiontrackertrackf.cc:103 hpiontrackertrackf.cc:104 hpiontrackertrackf.cc:105 hpiontrackertrackf.cc:106 hpiontrackertrackf.cc:107 hpiontrackertrackf.cc:108 hpiontrackertrackf.cc:109 hpiontrackertrackf.cc:110 hpiontrackertrackf.cc:111 hpiontrackertrackf.cc:112 hpiontrackertrackf.cc:113 hpiontrackertrackf.cc:114 hpiontrackertrackf.cc:115 hpiontrackertrackf.cc:116 hpiontrackertrackf.cc:117 hpiontrackertrackf.cc:118 hpiontrackertrackf.cc:119 hpiontrackertrackf.cc:120 hpiontrackertrackf.cc:121 hpiontrackertrackf.cc:122 hpiontrackertrackf.cc:123 hpiontrackertrackf.cc:124 hpiontrackertrackf.cc:125 hpiontrackertrackf.cc:126 hpiontrackertrackf.cc:127 hpiontrackertrackf.cc:128 hpiontrackertrackf.cc:129 hpiontrackertrackf.cc:130 hpiontrackertrackf.cc:131 hpiontrackertrackf.cc:132 hpiontrackertrackf.cc:133 hpiontrackertrackf.cc:134 hpiontrackertrackf.cc:135 hpiontrackertrackf.cc:136 hpiontrackertrackf.cc:137 hpiontrackertrackf.cc:138 hpiontrackertrackf.cc:139 hpiontrackertrackf.cc:140 hpiontrackertrackf.cc:141 hpiontrackertrackf.cc:142 hpiontrackertrackf.cc:143 hpiontrackertrackf.cc:144 hpiontrackertrackf.cc:145 hpiontrackertrackf.cc:146 hpiontrackertrackf.cc:147 hpiontrackertrackf.cc:148 hpiontrackertrackf.cc:149 hpiontrackertrackf.cc:150 hpiontrackertrackf.cc:151 hpiontrackertrackf.cc:152 hpiontrackertrackf.cc:153 hpiontrackertrackf.cc:154 hpiontrackertrackf.cc:155 hpiontrackertrackf.cc:156 hpiontrackertrackf.cc:157 hpiontrackertrackf.cc:158 hpiontrackertrackf.cc:159 hpiontrackertrackf.cc:160 hpiontrackertrackf.cc:161 hpiontrackertrackf.cc:162 hpiontrackertrackf.cc:163 hpiontrackertrackf.cc:164 hpiontrackertrackf.cc:165 hpiontrackertrackf.cc:166 hpiontrackertrackf.cc:167 hpiontrackertrackf.cc:168 hpiontrackertrackf.cc:169 hpiontrackertrackf.cc:170 hpiontrackertrackf.cc:171 hpiontrackertrackf.cc:172 hpiontrackertrackf.cc:173 hpiontrackertrackf.cc:174 hpiontrackertrackf.cc:175 hpiontrackertrackf.cc:176 hpiontrackertrackf.cc:177 hpiontrackertrackf.cc:178 hpiontrackertrackf.cc:179 hpiontrackertrackf.cc:180 hpiontrackertrackf.cc:181 hpiontrackertrackf.cc:182 hpiontrackertrackf.cc:183 hpiontrackertrackf.cc:184 hpiontrackertrackf.cc:185 hpiontrackertrackf.cc:186 hpiontrackertrackf.cc:187 hpiontrackertrackf.cc:188 hpiontrackertrackf.cc:189 hpiontrackertrackf.cc:190 hpiontrackertrackf.cc:191 hpiontrackertrackf.cc:192 hpiontrackertrackf.cc:193 hpiontrackertrackf.cc:194 hpiontrackertrackf.cc:195 hpiontrackertrackf.cc:196 hpiontrackertrackf.cc:197 hpiontrackertrackf.cc:198 hpiontrackertrackf.cc:199 hpiontrackertrackf.cc:200 hpiontrackertrackf.cc:201 hpiontrackertrackf.cc:202 hpiontrackertrackf.cc:203 hpiontrackertrackf.cc:204 hpiontrackertrackf.cc:205 hpiontrackertrackf.cc:206 hpiontrackertrackf.cc:207 hpiontrackertrackf.cc:208 hpiontrackertrackf.cc:209 hpiontrackertrackf.cc:210 hpiontrackertrackf.cc:211 hpiontrackertrackf.cc:212 hpiontrackertrackf.cc:213 hpiontrackertrackf.cc:214 hpiontrackertrackf.cc:215 hpiontrackertrackf.cc:216 hpiontrackertrackf.cc:217 hpiontrackertrackf.cc:218 hpiontrackertrackf.cc:219 hpiontrackertrackf.cc:220 hpiontrackertrackf.cc:221 hpiontrackertrackf.cc:222 hpiontrackertrackf.cc:223 hpiontrackertrackf.cc:224 hpiontrackertrackf.cc:225 hpiontrackertrackf.cc:226 hpiontrackertrackf.cc:227 hpiontrackertrackf.cc:228 hpiontrackertrackf.cc:229 hpiontrackertrackf.cc:230 hpiontrackertrackf.cc:231 hpiontrackertrackf.cc:232 hpiontrackertrackf.cc:233 hpiontrackertrackf.cc:234 hpiontrackertrackf.cc:235 hpiontrackertrackf.cc:236 hpiontrackertrackf.cc:237 hpiontrackertrackf.cc:238 hpiontrackertrackf.cc:239 hpiontrackertrackf.cc:240 hpiontrackertrackf.cc:241 hpiontrackertrackf.cc:242 hpiontrackertrackf.cc:243 hpiontrackertrackf.cc:244 hpiontrackertrackf.cc:245 hpiontrackertrackf.cc:246 hpiontrackertrackf.cc:247 hpiontrackertrackf.cc:248 hpiontrackertrackf.cc:249 hpiontrackertrackf.cc:250 hpiontrackertrackf.cc:251 hpiontrackertrackf.cc:252 hpiontrackertrackf.cc:253 hpiontrackertrackf.cc:254 hpiontrackertrackf.cc:255 hpiontrackertrackf.cc:256 hpiontrackertrackf.cc:257 hpiontrackertrackf.cc:258 hpiontrackertrackf.cc:259 hpiontrackertrackf.cc:260 hpiontrackertrackf.cc:261 hpiontrackertrackf.cc:262 hpiontrackertrackf.cc:263 hpiontrackertrackf.cc:264 hpiontrackertrackf.cc:265 hpiontrackertrackf.cc:266 hpiontrackertrackf.cc:267 hpiontrackertrackf.cc:268 hpiontrackertrackf.cc:269 hpiontrackertrackf.cc:270 hpiontrackertrackf.cc:271 hpiontrackertrackf.cc:272 hpiontrackertrackf.cc:273 hpiontrackertrackf.cc:274 hpiontrackertrackf.cc:275 hpiontrackertrackf.cc:276 hpiontrackertrackf.cc:277 hpiontrackertrackf.cc:278 hpiontrackertrackf.cc:279 hpiontrackertrackf.cc:280 hpiontrackertrackf.cc:281 hpiontrackertrackf.cc:282 hpiontrackertrackf.cc:283 hpiontrackertrackf.cc:284 hpiontrackertrackf.cc:285 hpiontrackertrackf.cc:286 hpiontrackertrackf.cc:287 hpiontrackertrackf.cc:288 hpiontrackertrackf.cc:289 hpiontrackertrackf.cc:290 hpiontrackertrackf.cc:291 hpiontrackertrackf.cc:292 hpiontrackertrackf.cc:293 hpiontrackertrackf.cc:294 hpiontrackertrackf.cc:295 hpiontrackertrackf.cc:296 hpiontrackertrackf.cc:297 hpiontrackertrackf.cc:298 hpiontrackertrackf.cc:299 hpiontrackertrackf.cc:300 hpiontrackertrackf.cc:301 hpiontrackertrackf.cc:302 hpiontrackertrackf.cc:303 hpiontrackertrackf.cc:304 hpiontrackertrackf.cc:305 hpiontrackertrackf.cc:306 hpiontrackertrackf.cc:307 hpiontrackertrackf.cc:308 hpiontrackertrackf.cc:309 hpiontrackertrackf.cc:310 hpiontrackertrackf.cc:311 hpiontrackertrackf.cc:312 hpiontrackertrackf.cc:313 hpiontrackertrackf.cc:314 hpiontrackertrackf.cc:315 hpiontrackertrackf.cc:316 hpiontrackertrackf.cc:317 hpiontrackertrackf.cc:318 hpiontrackertrackf.cc:319 hpiontrackertrackf.cc:320 hpiontrackertrackf.cc:321 hpiontrackertrackf.cc:322 hpiontrackertrackf.cc:323 hpiontrackertrackf.cc:324 hpiontrackertrackf.cc:325 hpiontrackertrackf.cc:326 hpiontrackertrackf.cc:327 hpiontrackertrackf.cc:328 hpiontrackertrackf.cc:329 hpiontrackertrackf.cc:330 hpiontrackertrackf.cc:331 hpiontrackertrackf.cc:332 hpiontrackertrackf.cc:333 hpiontrackertrackf.cc:334 hpiontrackertrackf.cc:335 hpiontrackertrackf.cc:336 hpiontrackertrackf.cc:337 hpiontrackertrackf.cc:338 hpiontrackertrackf.cc:339 hpiontrackertrackf.cc:340 hpiontrackertrackf.cc:341 hpiontrackertrackf.cc:342 hpiontrackertrackf.cc:343 hpiontrackertrackf.cc:344 hpiontrackertrackf.cc:345 hpiontrackertrackf.cc:346 hpiontrackertrackf.cc:347 hpiontrackertrackf.cc:348 hpiontrackertrackf.cc:349 hpiontrackertrackf.cc:350 hpiontrackertrackf.cc:351 hpiontrackertrackf.cc:352 hpiontrackertrackf.cc:353 hpiontrackertrackf.cc:354 hpiontrackertrackf.cc:355 hpiontrackertrackf.cc:356 hpiontrackertrackf.cc:357 hpiontrackertrackf.cc:358 hpiontrackertrackf.cc:359 hpiontrackertrackf.cc:360 hpiontrackertrackf.cc:361 hpiontrackertrackf.cc:362 hpiontrackertrackf.cc:363 hpiontrackertrackf.cc:364 hpiontrackertrackf.cc:365 hpiontrackertrackf.cc:366 hpiontrackertrackf.cc:367 hpiontrackertrackf.cc:368 hpiontrackertrackf.cc:369 hpiontrackertrackf.cc:370 hpiontrackertrackf.cc:371 hpiontrackertrackf.cc:372 hpiontrackertrackf.cc:373 hpiontrackertrackf.cc:374 hpiontrackertrackf.cc:375 hpiontrackertrackf.cc:376 hpiontrackertrackf.cc:377 hpiontrackertrackf.cc:378 hpiontrackertrackf.cc:379 hpiontrackertrackf.cc:380 hpiontrackertrackf.cc:381 hpiontrackertrackf.cc:382 hpiontrackertrackf.cc:383 hpiontrackertrackf.cc:384 hpiontrackertrackf.cc:385 hpiontrackertrackf.cc:386 hpiontrackertrackf.cc:387 hpiontrackertrackf.cc:388 hpiontrackertrackf.cc:389 hpiontrackertrackf.cc:390 hpiontrackertrackf.cc:391 hpiontrackertrackf.cc:392 hpiontrackertrackf.cc:393 hpiontrackertrackf.cc:394 hpiontrackertrackf.cc:395 hpiontrackertrackf.cc:396 hpiontrackertrackf.cc:397 hpiontrackertrackf.cc:398 hpiontrackertrackf.cc:399 hpiontrackertrackf.cc:400 hpiontrackertrackf.cc:401 hpiontrackertrackf.cc:402 hpiontrackertrackf.cc:403 hpiontrackertrackf.cc:404 hpiontrackertrackf.cc:405 hpiontrackertrackf.cc:406 hpiontrackertrackf.cc:407 hpiontrackertrackf.cc:408 hpiontrackertrackf.cc:409 hpiontrackertrackf.cc:410 hpiontrackertrackf.cc:411 hpiontrackertrackf.cc:412 hpiontrackertrackf.cc:413 hpiontrackertrackf.cc:414 hpiontrackertrackf.cc:415 hpiontrackertrackf.cc:416 hpiontrackertrackf.cc:417 hpiontrackertrackf.cc:418 hpiontrackertrackf.cc:419 hpiontrackertrackf.cc:420 hpiontrackertrackf.cc:421 hpiontrackertrackf.cc:422 hpiontrackertrackf.cc:423 hpiontrackertrackf.cc:424 hpiontrackertrackf.cc:425 hpiontrackertrackf.cc:426 hpiontrackertrackf.cc:427 hpiontrackertrackf.cc:428 hpiontrackertrackf.cc:429 hpiontrackertrackf.cc:430 hpiontrackertrackf.cc:431 hpiontrackertrackf.cc:432 hpiontrackertrackf.cc:433 hpiontrackertrackf.cc:434 hpiontrackertrackf.cc:435 hpiontrackertrackf.cc:436 hpiontrackertrackf.cc:437 hpiontrackertrackf.cc:438 hpiontrackertrackf.cc:439 hpiontrackertrackf.cc:440 hpiontrackertrackf.cc:441 hpiontrackertrackf.cc:442 hpiontrackertrackf.cc:443 hpiontrackertrackf.cc:444 hpiontrackertrackf.cc:445 hpiontrackertrackf.cc:446 hpiontrackertrackf.cc:447 hpiontrackertrackf.cc:448 hpiontrackertrackf.cc:449 hpiontrackertrackf.cc:450 hpiontrackertrackf.cc:451 hpiontrackertrackf.cc:452 hpiontrackertrackf.cc:453 hpiontrackertrackf.cc:454 hpiontrackertrackf.cc:455 hpiontrackertrackf.cc:456 hpiontrackertrackf.cc:457 hpiontrackertrackf.cc:458 hpiontrackertrackf.cc:459 hpiontrackertrackf.cc:460 hpiontrackertrackf.cc:461 hpiontrackertrackf.cc:462 hpiontrackertrackf.cc:463 hpiontrackertrackf.cc:464 hpiontrackertrackf.cc:465 hpiontrackertrackf.cc:466 hpiontrackertrackf.cc:467 hpiontrackertrackf.cc:468 hpiontrackertrackf.cc:469 hpiontrackertrackf.cc:470 hpiontrackertrackf.cc:471 hpiontrackertrackf.cc:472 hpiontrackertrackf.cc:473 hpiontrackertrackf.cc:474 hpiontrackertrackf.cc:475 hpiontrackertrackf.cc:476 hpiontrackertrackf.cc:477 hpiontrackertrackf.cc:478 hpiontrackertrackf.cc:479 hpiontrackertrackf.cc:480 hpiontrackertrackf.cc:481 hpiontrackertrackf.cc:482 hpiontrackertrackf.cc:483 hpiontrackertrackf.cc:484 hpiontrackertrackf.cc:485 hpiontrackertrackf.cc:486 hpiontrackertrackf.cc:487 hpiontrackertrackf.cc:488 hpiontrackertrackf.cc:489 hpiontrackertrackf.cc:490 hpiontrackertrackf.cc:491 hpiontrackertrackf.cc:492 hpiontrackertrackf.cc:493 hpiontrackertrackf.cc:494 hpiontrackertrackf.cc:495 hpiontrackertrackf.cc:496 hpiontrackertrackf.cc:497 hpiontrackertrackf.cc:498 hpiontrackertrackf.cc:499 hpiontrackertrackf.cc:500 hpiontrackertrackf.cc:501 hpiontrackertrackf.cc:502 hpiontrackertrackf.cc:503 hpiontrackertrackf.cc:504 hpiontrackertrackf.cc:505 hpiontrackertrackf.cc:506 hpiontrackertrackf.cc:507 hpiontrackertrackf.cc:508 hpiontrackertrackf.cc:509 hpiontrackertrackf.cc:510 hpiontrackertrackf.cc:511 hpiontrackertrackf.cc:512 hpiontrackertrackf.cc:513 hpiontrackertrackf.cc:514 hpiontrackertrackf.cc:515 hpiontrackertrackf.cc:516 hpiontrackertrackf.cc:517 hpiontrackertrackf.cc:518 hpiontrackertrackf.cc:519 hpiontrackertrackf.cc:520 hpiontrackertrackf.cc:521 hpiontrackertrackf.cc:522 hpiontrackertrackf.cc:523 hpiontrackertrackf.cc:524 hpiontrackertrackf.cc:525 hpiontrackertrackf.cc:526 hpiontrackertrackf.cc:527 hpiontrackertrackf.cc:528 hpiontrackertrackf.cc:529 hpiontrackertrackf.cc:530 hpiontrackertrackf.cc:531 hpiontrackertrackf.cc:532 hpiontrackertrackf.cc:533 hpiontrackertrackf.cc:534 hpiontrackertrackf.cc:535 hpiontrackertrackf.cc:536 hpiontrackertrackf.cc:537 hpiontrackertrackf.cc:538 hpiontrackertrackf.cc:539 hpiontrackertrackf.cc:540 hpiontrackertrackf.cc:541 hpiontrackertrackf.cc:542 hpiontrackertrackf.cc:543 hpiontrackertrackf.cc:544 hpiontrackertrackf.cc:545 hpiontrackertrackf.cc:546 hpiontrackertrackf.cc:547 hpiontrackertrackf.cc:548 hpiontrackertrackf.cc:549 hpiontrackertrackf.cc:550 hpiontrackertrackf.cc:551 hpiontrackertrackf.cc:552 hpiontrackertrackf.cc:553 hpiontrackertrackf.cc:554 hpiontrackertrackf.cc:555 hpiontrackertrackf.cc:556 hpiontrackertrackf.cc:557 hpiontrackertrackf.cc:558 hpiontrackertrackf.cc:559 hpiontrackertrackf.cc:560 hpiontrackertrackf.cc:561 hpiontrackertrackf.cc:562 hpiontrackertrackf.cc:563 hpiontrackertrackf.cc:564 hpiontrackertrackf.cc:565 hpiontrackertrackf.cc:566 hpiontrackertrackf.cc:567 hpiontrackertrackf.cc:568 hpiontrackertrackf.cc:569 hpiontrackertrackf.cc:570 hpiontrackertrackf.cc:571 hpiontrackertrackf.cc:572 hpiontrackertrackf.cc:573 hpiontrackertrackf.cc:574 hpiontrackertrackf.cc:575 hpiontrackertrackf.cc:576 hpiontrackertrackf.cc:577 hpiontrackertrackf.cc:578 hpiontrackertrackf.cc:579 hpiontrackertrackf.cc:580 hpiontrackertrackf.cc:581 hpiontrackertrackf.cc:582 hpiontrackertrackf.cc:583 hpiontrackertrackf.cc:584 hpiontrackertrackf.cc:585 hpiontrackertrackf.cc:586 hpiontrackertrackf.cc:587 hpiontrackertrackf.cc:588 hpiontrackertrackf.cc:589 hpiontrackertrackf.cc:590 hpiontrackertrackf.cc:591 hpiontrackertrackf.cc:592 hpiontrackertrackf.cc:593 hpiontrackertrackf.cc:594 hpiontrackertrackf.cc:595 hpiontrackertrackf.cc:596 hpiontrackertrackf.cc:597 hpiontrackertrackf.cc:598 hpiontrackertrackf.cc:599 hpiontrackertrackf.cc:600 hpiontrackertrackf.cc:601 hpiontrackertrackf.cc:602 hpiontrackertrackf.cc:603 hpiontrackertrackf.cc:604 hpiontrackertrackf.cc:605 hpiontrackertrackf.cc:606 hpiontrackertrackf.cc:607 hpiontrackertrackf.cc:608 hpiontrackertrackf.cc:609 hpiontrackertrackf.cc:610 hpiontrackertrackf.cc:611 hpiontrackertrackf.cc:612 hpiontrackertrackf.cc:613 hpiontrackertrackf.cc:614 hpiontrackertrackf.cc:615 hpiontrackertrackf.cc:616 hpiontrackertrackf.cc:617 hpiontrackertrackf.cc:618 hpiontrackertrackf.cc:619 hpiontrackertrackf.cc:620 hpiontrackertrackf.cc:621