ROOT logo
//_HADES_CLASS_DESCRIPTION
////////////////////////////////////////////////////////////////
//
//  HPionTrackerTrackF:
//
//  Track finder of the PionTracker
//
////////////////////////////////////////////////////////////////

#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";

//typedef std::vector<int> test;

ClassImp (HPionTrackerTrackF)


    //#define USE_FILE 1 // uncomment for using file input
    //#define USE_FILE_SCAN 1 // uncomment for using file input



    //-------------------transport coefficent to the HADES target-------for angular variables-----------------/////////



    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)
{
    // constructor
    // the parameter "skip" (default; kFALSE) defines, if the event is skipted in case no hit can be reconstructed
    initVars();
    correction.clear();
    memset(corrs, 0, 2* sizeof(Double_t));
}

HPionTrackerTrackF::~HPionTrackerTrackF (void)
{
    //destructor deletes the iterator on the raw category
    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;  // element detector_1
    id_det2 =25;  // element detector_2
    id_outQ9=29;  // element out_Q9
    id_targ =32;  // element target

    // Setting transport matrix elements for det1 position
    // element ID 16  detector_1
    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;

    // Setting transport matrix elements for det2 position
    // element ID 25  detector_2
    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;


    //-------------------transport coefficent to the HADES target-------for angular variables-----------------/////////
    // element ID 29   out_Q9
    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;
    // element ID 32 target
    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; // wrong from 25.4.2014 xls 0.32059;
    T46_t = -5.58106;
    T426_t = - 0.003304;
    T436_t = - 8.291; //- 8.383;   // xls changed 6.5.2014
    T446_t = - 0.3796; //- 0.3817; // xls changed 6.5.2014
    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)
{
    // Input: 	x and y position at det1 and det2 (in cm)
    //			reference beam momentum (GeV/c)
    // Output: 	reconstructed momentum vector (GeV/c)
    // 		theta and phi angle at hades point (rad)

    // Solve equation in delta: a_0+a_1*delta+a_2*delta^2+a_3*delta^3
    // numerically starting from delta =3

    //--------MOMENTUM SELECTION PARAMETERS -----------------
    Int_t yy_weight = pTrackerMompar->getYYWeight();
    Float_t yy_slope = pTrackerMompar->getYYSlope();
    Float_t yy_offset = pTrackerMompar->getYYOffset();
    Int_t mom_weight = pTrackerMompar->getMomWeight();
    //cout << "mom_weight: " << mom_weight << endl;
    Float_t mom_maxt = corrs[0] - corrs[1];
    Float_t mom_offset = - corrs[1];
    //cout << "corr0: " << corrs[0] << endl;
    //-------------------------------------------------------

    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,/* yci,*/ phi;

    // calculate the theta value from the theta(delta) system

    theta = (x1-T16[idet1]*sol-T166[idet1]*sol*sol);
    theta = theta/(T12[idet1]+T126[idet1]*sol);

    // Solving the linear sytem :

    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;
    //yci = (gamma*betap-beta*gammap)/deter;
    phi = (alfa*gammap-gamma*alfap)/deter;

    xdetc1 = x1 - T14[idet1]*phi - T146[idet1]*phi*sol;
    xdetc2 = x2 - T14[idet2]*phi - T146[idet2]*phi*sol;

    // Solve again equation in delta: a_0+a_1*delta+a_2*delta^2+a_3*delta^3
    // using xdetc1 and xdetc2 and starting from last found delta value

    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;
	//	cout << " step " << isol << "delta = " << sol1 << endl;
	//std::cout<<"print 2"<<endl;
    }
    //cout << "parameters = " << a_3 << " " << a_2 << " " << a_1 << " " << a_0 << endl;
    //cout << "positions (cm) = " << x1 << " " << y1 << " " << x2 << " " << y2 << endl;

    // calculate the theta value from the theta(delta) system for new delta value

    theta1 = (xdetc1-T16[idet1]*sol1-T166[idet1]*sol1*sol1) / (T12[idet1] + T126[idet1]*sol1);

    // Solving again the linear system with the new delta value:

    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;

    // at the production target
    tr.fPhi0 = phi1/1000.;
    tr.fTheta0 = theta1/1000.;
    tr.fY0 = yci1;
    //cout << "y0" << tr.fY0 << "" << yci1 <<endl;
    // calculating the final theta and phi at hades position and converting them in rad (from mrad)

    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;

    // at the hades target
    tr.fTheta = Theta_hades/1000.;
    tr.fPhi = Phi_hades/1000.;
    tr.fXh = x_hades;
    tr.fYh = y_hades;

    // calculating the reconstructed momentum and its 3 components
    tr.fP = momref * (1. + sol1/100. )+mom_offset;
    /* 	cout << "mom: " << momref * (1. + sol1/100. ) << endl;
     cout << "mom_offset: " << mom_offset << endl;
     cout << "mom after corr: " << momref * (1. + sol1/100. )+mom_offset << endl;*/

    //--------------------------------------------
    // DIST FOR MOMENTUM SELECTION
    Float_t RecMom = momref * (1. + sol1/100. )+mom_offset;
    Float_t MaxMom =  mom_maxt;
    //cout << "max transmission: " << mom_maxt << endl;
    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));
    //-------------------------------------------


    //	cout << "momentum = " << tr.fP << " for a nominal of " << momref << "  (" << (momref-tr.fP)/tr.fP << ")" << endl;

    // this part is not needed, we get px, py, pz from p, theta, phi by TVector3
    // 	Float_t denom = sqrt(1. + pow( TMath::Tan(theta_h),2.) + pow( TMath::Tan(phi_h),2.) );
    // 	tr.fPx = ( tr.fP * TMath::Tan(theta_h))/denom;
    // 	tr.fPy = ( tr.fP * TMath::Tan(phi_h))/denom;
    // 	tr.fPz = ( tr.fP )/denom;

    return kTRUE;
}

Bool_t HPionTrackerTrackF::init (void)
{
    // gets the parameter containers
    // gets the PionTrackerCal category and creates the PionTrackerTrack category
    // creates an iterator which loops over all fired strips in PionTrackerCal

    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;
    }

    //----------------------------------------------
    // MOMENTUM SELECTION & CALIBRATION
    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){

	    //------------------------------------------------------------
	    // Setting transport matrix elements for det1 position
	    // element ID 16  detector_1
	    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];

	    // Setting transport matrix elements for det2 position
	    // element ID 25  detector_2
	    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];

	    //-------------------transport coefficent to the HADES target-------for angular variables-----------------/////////
	    // element ID 29   out_Q9
	    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];
	    // element ID 32  target
	    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;

    {//	return kTRUE;
	// ------------------------------------------------------------------------
	// MOMENTUM CORRECTION PER RUN
	//	{
	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; //, x_l,x_u,y_l,y_u;
    // make hits
    HPionTrackerHit *pHit0 = NULL, *pHit1 = NULL;

    //------------
    // MOMENTUM SELECTION
    std::vector<track> trackcan;
    trackcan.clear();
    //------------
    track tr;

    Int_t cnt0 = 0;
    while (true)	// plane 0, det1
    {

	Int_t cnt1 = 0;
	lochit[0] = 0;
	lochit[1] = cnt0++;

	pHit0 = (HPionTrackerHit*)pHitCat->getObject(lochit);
	//PR(pHit0);

	if (!pHit0)
	    break;

	while (true)	// plane 1, det2
	{
	    lochit[0] = 1;
	    lochit[1] = cnt1++;

	    pHit1 = (HPionTrackerHit*)pHitCat->getObject(lochit);
	    // 			PR(pHit1);
	    if (!pHit1)
		break;

	    // 			PR(cnt0);
	    //			PR(cnt1);

	    if (pTrackfpar->getTrackingFlag() == 0)	// no tracking
	    {
		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 ;
		//				cout << x_l << " " <<  y_l << " " << x_u << " " << y_u <<endl ;
		//				cout << x1 << " " << y1 << " Present pos" << endl;
		scanpos.close();
		if(x1<x_l||x1>x_u||y1<y_l||y1>y_u) continue;

		//				cout << x1 << " " << y1 << " Portion ACCEPTED" << endl;
#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;	// set condition for input txt file number of events
	    }

	    trackcan.push_back(tr);//	insertTrack(tr);
	}
    }

    if (trackcan.size())
    {
	// Sorting minimal distance (Momentum selection)
	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]);
	}
    }

    //------------------------------------------------------------END-----------------------------------------------------------------------------------

    // insertTrack(vector);
    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:1
 hpiontrackertrackf.cc:2
 hpiontrackertrackf.cc:3
 hpiontrackertrackf.cc:4
 hpiontrackertrackf.cc:5
 hpiontrackertrackf.cc:6
 hpiontrackertrackf.cc:7
 hpiontrackertrackf.cc:8
 hpiontrackertrackf.cc:9
 hpiontrackertrackf.cc:10
 hpiontrackertrackf.cc:11
 hpiontrackertrackf.cc:12
 hpiontrackertrackf.cc:13
 hpiontrackertrackf.cc:14
 hpiontrackertrackf.cc:15
 hpiontrackertrackf.cc:16
 hpiontrackertrackf.cc:17
 hpiontrackertrackf.cc:18
 hpiontrackertrackf.cc:19
 hpiontrackertrackf.cc:20
 hpiontrackertrackf.cc:21
 hpiontrackertrackf.cc:22
 hpiontrackertrackf.cc:23
 hpiontrackertrackf.cc:24
 hpiontrackertrackf.cc:25
 hpiontrackertrackf.cc:26
 hpiontrackertrackf.cc:27
 hpiontrackertrackf.cc:28
 hpiontrackertrackf.cc:29
 hpiontrackertrackf.cc:30
 hpiontrackertrackf.cc:31
 hpiontrackertrackf.cc:32
 hpiontrackertrackf.cc:33
 hpiontrackertrackf.cc:34
 hpiontrackertrackf.cc:35
 hpiontrackertrackf.cc:36
 hpiontrackertrackf.cc:37
 hpiontrackertrackf.cc:38
 hpiontrackertrackf.cc:39
 hpiontrackertrackf.cc:40
 hpiontrackertrackf.cc:41
 hpiontrackertrackf.cc:42
 hpiontrackertrackf.cc:43
 hpiontrackertrackf.cc:44
 hpiontrackertrackf.cc:45
 hpiontrackertrackf.cc:46
 hpiontrackertrackf.cc:47
 hpiontrackertrackf.cc:48
 hpiontrackertrackf.cc:49
 hpiontrackertrackf.cc:50
 hpiontrackertrackf.cc:51
 hpiontrackertrackf.cc:52
 hpiontrackertrackf.cc:53
 hpiontrackertrackf.cc:54
 hpiontrackertrackf.cc:55
 hpiontrackertrackf.cc:56
 hpiontrackertrackf.cc:57
 hpiontrackertrackf.cc:58
 hpiontrackertrackf.cc:59
 hpiontrackertrackf.cc:60
 hpiontrackertrackf.cc:61
 hpiontrackertrackf.cc:62
 hpiontrackertrackf.cc:63
 hpiontrackertrackf.cc:64
 hpiontrackertrackf.cc:65
 hpiontrackertrackf.cc:66
 hpiontrackertrackf.cc:67
 hpiontrackertrackf.cc:68
 hpiontrackertrackf.cc:69
 hpiontrackertrackf.cc:70
 hpiontrackertrackf.cc:71
 hpiontrackertrackf.cc:72
 hpiontrackertrackf.cc:73
 hpiontrackertrackf.cc:74
 hpiontrackertrackf.cc:75
 hpiontrackertrackf.cc:76
 hpiontrackertrackf.cc:77
 hpiontrackertrackf.cc:78
 hpiontrackertrackf.cc:79
 hpiontrackertrackf.cc:80
 hpiontrackertrackf.cc:81
 hpiontrackertrackf.cc:82
 hpiontrackertrackf.cc:83
 hpiontrackertrackf.cc:84
 hpiontrackertrackf.cc:85
 hpiontrackertrackf.cc:86
 hpiontrackertrackf.cc:87
 hpiontrackertrackf.cc:88
 hpiontrackertrackf.cc:89
 hpiontrackertrackf.cc:90
 hpiontrackertrackf.cc:91
 hpiontrackertrackf.cc:92
 hpiontrackertrackf.cc:93
 hpiontrackertrackf.cc:94
 hpiontrackertrackf.cc:95
 hpiontrackertrackf.cc:96
 hpiontrackertrackf.cc:97
 hpiontrackertrackf.cc:98
 hpiontrackertrackf.cc:99
 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