#include <iostream>
#include "hparticlebtangletrafo.h"
ClassImp(HParticleBtAngleTrafo)
Float_t HParticleBtAngleTrafo::yPhi2yPad(const Float_t y, const Float_t phi)
{
    
    Float_t yPad = yPadYPar[0];
    Float_t yPower = 1.0F;
    for (Int_t i=1; i<yParMax;++i) {
	yPower *= y;
	yPad += yPadYPar[i]*yPower;
    }
    Float_t phi2 = phi*phi;
    yPad += (phiPadSlope[3] + dyPadSlope[0]*y)*phi2;
    if(y > yOffset[0]) {
	Float_t dy = y - yOffset[0];
	yPad += dyPadSlope[1]*phi2*dy*dy;
	Float_t yOff = yOffset[1] - 0.050*phi2;  
	if(y > yOff) {
	    dy = y - yOff;
	    yPad += dyPadSlope[2]*phi2*dy*dy;
	    yOff = yOffset[2] - 0.072*phi2;  
	    if(y > yOff) {
		dy = y - yOff;
		yPad += dyPadSlope[3]*phi2*dy*dy;
	    }
	}
    }
    return yPad;
}
Float_t HParticleBtAngleTrafo::yPadPhi2y(const Float_t yPad, const Float_t phi)
{
    
    Float_t y = yYPadPar[0];
    Float_t yPower = 1.0F;
    for (Int_t i=1; i<yParMax;++i) {
	yPower *= yPad;
	y += yYPadPar[i]*yPower;
    }
    Float_t phi2 = phi*phi;
    Float_t dyPad = yPad - yPadOffset[2];
    y += 1.14e-3F*phi2;
    if(dyPad > 0.0F) {
	y -= 6.85e-6F*dyPad*dyPad*phi2;
	Float_t y0 = 48.6F*(1.0F - 4.9e-4*phi2);
	Float_t dy0 = y0 - yPadOffset[2];
	dyPad = yPad - y0;
	y += 7.7e-7F*(dy0*dy0 - dyPad*dyPad)*phi2;
    } else {
	y -= 3.5e-6F*dyPad*dyPad*phi2;
    }
    return y;
}
Float_t HParticleBtAngleTrafo::angles2yPad(const Float_t theta, const Float_t phi)
{
    
    Float_t yPad = yPadThetaPar[0];
    Float_t thetaPower = 1.0F;
    for (Int_t i=1; i<yParMax; ++i) {
	thetaPower *= theta;
	yPad += yPadThetaPar[i]*thetaPower;
    }
    Float_t phi2 = phi*phi;
    if(theta > thetaOffset[1]) {
	Float_t dTheta = theta-thetaOffset[1];
	yPad += ((thetaPadSlope[2]*dTheta+thetaPadSlope[3])*dTheta+phiPadSlope[2])*phi2;
	if(theta > thetaOffset[2]) {
	    dTheta = theta - thetaOffset[2];
	    yPad += (thetaPadSlope[4]*dTheta*dTheta)*phi2;
	}
    } else {
	yPad += (phiPadSlope[0] + (thetaPadSlope[0]+thetaPadSlope[5]*theta)*theta)*phi2;
    }
    Float_t dPhi = fabs(phi) - phiOffset;
    if(dPhi>0) yPad -= (phiPadSlope[1] + thetaPadSlope[1]*theta)*dPhi*dPhi;
    return yPad*cos(phi/rad2deg);
}
Float_t HParticleBtAngleTrafo::angles2y(const Float_t theta, const Float_t phi)
{
    
    Float_t y = yThetaPar[0];
    Float_t thetaPower = 1.0F;
    for (Int_t i=1; i<yParMax; ++i) {
	thetaPower *= theta;
	y += yThetaPar[i]*thetaPower;
    }
    Float_t phi2 = phi*phi;
    if(theta > thetaOffset[0]) {
	Float_t dTheta = theta-thetaOffset[0];
	y += (phiSlope[1] + thetaSlope[1]*dTheta*dTheta)*phi2;
    } else {
	y += (phiSlope[0]+thetaSlope[0]*theta)*phi2;
    }
    return y*cos(phi/rad2deg);
}
Float_t HParticleBtAngleTrafo::xPadyPad2Phi(const Float_t xPad, const Float_t yPad)
{
    
    Float_t x = fabs(xPad2x(xPad));
    Float_t y = yPad2y(yPad);
    Float_t xyRatio = x/y;
    
    Float_t fac = xyRatio - 0.1405F; 
    if(fac > 0) {
	x -= 2.8F*fac*fac;
    }
    Float_t dx = x - xyRatio*yOffset[3];
    if(dx > 0.0F && xyRatio > 5.0e-4F) { 
	x += (8.0e-4F + 9.2e-5/xyRatio)*dx*dx*fac;
    }
    xyRatio = x/y;
    if(xPad > xPadOffset) xyRatio *= -1.0F;
    return atan(xyRatio)*rad2deg;
}
Float_t HParticleBtAngleTrafo::yPhi2Theta(const Float_t y, const Float_t phi)
{
    
    Float_t theta = thetaYPar[0];
    Float_t yPower = 1.0F;
    Float_t yProj = y/cos(phi/rad2deg);
    for (Int_t i=1; i<thetaParMax;++i) {
	yPower *= yProj;
	theta += thetaYPar[i]*yPower;
    }
    Float_t phi2 = phi*phi;
    theta += (phiThetaSlope[0] + yThetaSlope[0]*yProj)*phi2;
    Float_t dy = yProj - yProjOffset[0];
    if(dy > 0.0F) {
	theta += yThetaSlope[1]*dy*dy*phi2;
	dy = yProj - yProjOffset[1];
	if(dy > 0.0F) {
	    theta += yThetaSlope[2]*dy*dy*phi2;
	}
    }
    Float_t dPhi = fabs(phi)- phiOffset;
    if(dPhi>0.0F) theta += (phiThetaSlope[1] + yThetaSlope[3]*yProj)*dPhi*dPhi;
    return theta;
}
Float_t HParticleBtAngleTrafo::yPadPhi2Theta(const Float_t yPad, const Float_t phi)
{
    
    Float_t theta = thetaYPadPar[0];
    Float_t yPower = 1.0F;
    Float_t yProj = yPad/cos(phi/rad2deg);
    for (Int_t i=1; i<yParMax;++i) {
	yPower *= yProj;
	theta += thetaYPadPar[i]*yPower;
    }
    Float_t phi2 = phi*phi;
    theta += phiThetaSlope[2]*phi2;
    Float_t dyPad = yProj - yPadOffset[0];
    if(dyPad < 0.0F) {
	theta += padThetaSlope[0]*yProj*phi2;
    } else {
	theta += (phiThetaSlope[3] + (2.465e-6F + padThetaSlope[1]*dyPad)*dyPad)*phi2;
	dyPad = yProj - yPadOffset[1];
	if(dyPad >0.0F) theta += padThetaSlope[2]*dyPad*dyPad*phi2;
    }
    Float_t dPhi = fabs(phi) - phiOffset;
    if(dPhi>0.0F) theta += phiThetaSlope[4]*dPhi*dPhi;
    return theta;
}
Float_t HParticleBtAngleTrafo::zTheta2dY(const Float_t z, const Float_t theta, const Float_t phi)
{
    
    
    Float_t dz = (z - zRef)/zNorm;;
    Float_t dz2 = dz*dz;
    Float_t dy = dzPar[0]*dz + dz2Par[0]*dz2;
    Float_t theta0 = theta - thetaRef;
    Float_t thetaPower = 1.0F;
    for (Int_t n=1; n<zParMax; ++n) {
	thetaPower *= theta0;
	dy += dzPar[n]*thetaPower*dz + dz2Par[n]*thetaPower*dz2;
    }
    Float_t phi2dz = phi*phi*dz;
    dy -= (9.581e-4F + 2.651e-5F*theta0)*phi2dz;
    Float_t phi0 = fabs(phi/rad2deg);
    dxVertex = -dy*sin(phi0) + 1.56e-4*phi2dz;
    if(phi < 0) dxVertex = -dxVertex;
    return dy*cos(phi0);
}
Float_t HParticleBtAngleTrafo::zTheta2dYPad(const Float_t z, const Float_t theta, const Float_t phi)
{
    
    
    Float_t dz = (z - zRef)/zNorm;;
    Float_t dz2 = dz*dz;
    Float_t dyPad = dzPadPar[0]*dz + dz2PadPar[0]*dz2;
    Float_t theta0 = theta - thetaRef;
    Float_t thetaPower = 1.0F;
    for (Int_t n=1; n<zParMax; ++n) {
	thetaPower *= theta0;
	dyPad += dzPadPar[n]*thetaPower*dz + dz2PadPar[n]*thetaPower*dz2;
    }
    Float_t phi2dz = phi*phi*dz;
    dyPad -= (1.57e-4F + 5.0e-6F*theta0)*phi2dz;
    Float_t absPhi = fabs(phi);
    Float_t phi0 = absPhi/rad2deg;
    dxPadVertex = -dyPad*sin(phi0) + (7.78e-5 + 3.9e-6*theta0)*phi2dz;
    if( theta0 > 0.0F) dxPadVertex -= 4.330e-9*theta0*theta0*theta0*phi2dz;
    if (dz > 0.0F) {
	if(absPhi > 16.0F) absPhi = 32.0F - absPhi;
	dxPadVertex += (4.72e-4 + 2.08e-5*theta0)*absPhi*dz;
    }
    if(phi < 0) dxPadVertex = -dxPadVertex;
    return dyPad*cos(phi0);
}
Float_t HParticleBtAngleTrafo::zYPhi2dTheta(const Float_t z, const Float_t y, const Float_t phi)
{
    
    
    Float_t dz = (z - zRef)/zNorm;;
    Float_t dz2 = dz*dz;
    Float_t dTheta = dzYPar[0]*dz + dz2YPar[0]*dz2;
    Float_t cosPhi = cos(phi/rad2deg);
    Float_t y0 = (y - yRef)/cosPhi;
    Float_t yPower = 1.0F;
    for (Int_t n=1; n<zParMax; ++n) {
	yPower *= y0;
	dTheta += dzYPar[n]*yPower*dz + dz2YPar[n]*yPower*dz2;
    }
    if (dz <0.0F) {
	dTheta -= 1.15e-4F*phi*phi*dz;
	if (y > yOffset[4]) {
	    Float_t dyPhi = (y-yOffset[4])/cosPhi*phi;
	    dTheta += 1.72e-8F*dyPhi*dyPhi*dz;
	}
    } else {
	dTheta -= 1.41e-4F*phi*phi*dz;
	if (y > yOffset[5]) {
	    Float_t dyPhi = (y-yOffset[5])/cosPhi*phi;
	    dTheta += 2.25e-8F*dyPhi*dyPhi*dz;
	}
    }
    return -dTheta;
}
Float_t HParticleBtAngleTrafo::zTheta2dTheta(const Float_t z, const Float_t theta, const Float_t phi)
{
    
    
    Float_t dz = (z - zRef)/zNorm;;
    Float_t dz2 = dz*dz;
    Float_t theta0 = theta - thetaRef;
    Float_t dTheta = dzThetaPar[0]*dz + dz2ThetaPar[0]*dz2;
    Float_t thetaPower = 1.0F;
    for (Int_t n=1; n<zParMax; ++n) {
	thetaPower *= theta0;
	dTheta += dzThetaPar[n]*thetaPower*dz + dz2ThetaPar[n]*thetaPower*dz2;
    }
    dTheta += ((dzThetaPhiPar[0] + dzThetaPhiPar[1]*theta0)*dz +
	       (dz2ThetaPhiPar[0] + dz2ThetaPhiPar[1]*theta0)*dz2)*phi*phi;
    return dTheta;
}
void HParticleBtAngleTrafo::setRichPos(const char * beamtime)
{
    
    if (strcmp(beamtime, "apr12") == 0) {zRichCenter = -35.1F; return;}
    if (strcmp(beamtime, "aug11") == 0) {zRichCenter = -36.52F; return;}
    if (strcmp(beamtime, "sep08") == 0) {zRichCenter = -33.5F; return;}
    Error("setRichPos()","Unknown Beamtime = %s !",beamtime);
    return;
}
void HParticleBtAngleTrafo::initParam()
{
    rad2deg = 57.29578F;
    {
	const Float_t yTheta[yParMax] =
	{-13.9019,8.2065,-0.00230282,0.000319631,-1.16559e-5,7.70673e-8};
	for (Int_t n=0; n<yParMax; ++n) yThetaPar[n]=yTheta[n];
    }
    {
	const Float_t thetaY[thetaParMax] =
	{-0.409201,0.172229,-0.000483011,2.35766e-6,-6.24602e-9,8.89312e-12,-5.03386e-15};
	for (Int_t n=0; n<thetaParMax; ++n) thetaYPar[n]=thetaY[n];
    }
    {
	const Float_t yPadY[yParMax] =
	{-9.20874,0.138557,-1.22646e-05,9.40742e-8,-1.00015e-10,1.01867e-13};
	for (Int_t n=0; n<yParMax; ++n) yPadYPar[n]=yPadY[n];
    }
    {
	const Float_t yYPad[yParMax] =
	{66.5283,7.27125,-0.00376257,-0.000119067, 2.75981e-7, 5.24191e-10};
	for (Int_t n=0; n<yParMax; ++n) yYPadPar[n]=yYPad[n];
    }
    {
	const Float_t yPadTheta[yParMax] =
	{-12.0324, 1.26572,-0.0080772,0.000266112,-3.98786e-6, 2.06571e-8};
	for (Int_t n=0; n<yParMax; ++n) yPadThetaPar[n]=yPadTheta[n];
    }
    {
	const Float_t thetaYPad[yParMax] =
	{10.0927, 0.829933, 0.00328383,-0.000130755,2.32883e-06,-1.35292e-08};
	for (Int_t n=0; n<yParMax; ++n) thetaYPadPar[n]=thetaYPad[n];
    }
    {
	const Float_t xParam[xParMax] = {12.83F, 0.9403F};
	for (Int_t n=0; n<xParMax; ++n) xPar[n]=xParam[n];
	const Float_t xPadParam[xPadParMax] = {75.5559,6.83342,-0.00328614,-0.000126939,4.19646e-7};
	for (Int_t n=0; n<xPadParMax; ++n) xPadPar[n]=xPadParam[n];
    }
    {
	const Float_t thOffset[3] = {50.0F, 43.0F, 71.0F}; 
	for (Int_t n=0; n<3; ++n) thetaOffset[n]=thOffset[n];
	phiOffset = 12.0F;
	const Float_t dySlope[4] = {-5e-7, 2.21e-8, 2.964e-8, 4.12e-8}; 
	for (Int_t n=0; n<4; ++n) dyPadSlope[n] = dySlope[n];
	const Float_t thSlope[6] = {-2.4e-5, 0.982e-5, 1.375e-6, 1.723e-6, 4.45e-6, 1.5e-7};
	for (Int_t n=0; n<6; ++n) thetaPadSlope[n] = thSlope[n];
	thetaSlope[0] =-9.0e-6F;
	thetaSlope[1] = 6.2e-6F;
	phiSlope[0] = -0.00265;
	phiSlope[1] = phiSlope[0]+thetaOffset[0]*thetaSlope[0];
	phiPadSlope[0] = -0.00156; 
	phiPadSlope[1] = 0.00033;
	phiPadSlope[2] = phiPadSlope[0] + (thetaPadSlope[0]+thetaPadSlope[5]*thetaOffset[1])*thetaOffset[1];
	phiPadSlope[3] = -8.2e-5F; 
    }
    yOffset[0] = 190.0F; 
    yOffset[1] = 350.0F; 
    yOffset[2] = 470.0F; 
    yOffset[3] = 234.7F; 
    yOffset[4] = 300.0F; 
    yOffset[5] = 325.0F; 
    xPadSize = 6.6F;
    xPadOffset = 47.5F;
    yProjOffset[0] =350.0F; 
    yProjOffset[1] =500.0F;
    yPadOffset[0] = 40.0F;  
    yPadOffset[1] = 64.5F;
    yPadOffset[2] = 18.0F; 
    yThetaSlope[0] = 6.4e-7;
    yThetaSlope[1] = -1.57e-8F; 
    yThetaSlope[2] = -6.125e-8F;
    yThetaSlope[3] = -9.01e-7F;
    padThetaSlope[0] = 1.188e-5F; 
    padThetaSlope[1] = -1.191e-6F;
    padThetaSlope[2] = -2.05e-6F;
    phiThetaSlope[0] = 0.000214; 
    phiThetaSlope[1] = 0.000335;
    phiThetaSlope[2] = 0.00159;
    phiThetaSlope[3] = padThetaSlope[0] * yPadOffset[0];
    phiThetaSlope[4] = 0.00059;
    { 
	const Float_t dzParam[zParMax] =
	{5.6788,0.0958689,-0.00465984,-0.000112338,3.45014e-7,2.29705e-8};
	for (Int_t n=0; n<zParMax; ++n) dzPar[n] = dzParam[n];
	const Float_t dz2Param[zParMax] =
	{0.434261,0.0200656,-7.63692e-5,-1.84764e-5,2.7613e-8,1.13782e-8};
	for (Int_t n=0; n<zParMax; ++n) dz2Par[n] = dz2Param[n];
    }
    {
	const Float_t dzPadParam[zParMax] =
	{0.903236,0.0203734,-0.00061401,-2.12993e-5,-5.40314e-8,3.29523e-9};
	for (Int_t n=0; n<zParMax; ++n) dzPadPar[n] = dzPadParam[n];
	const Float_t dz2PadParam[zParMax] =
	{0.0713911,0.00374504,2.89311e-6,-3.25952e-6,2.16649e-9,2.08433e-9};
	for (Int_t n=0; n<zParMax; ++n) dz2PadPar[n] = dz2PadParam[n];
    }
    { 
	
	const Float_t dzYParam[zParMax] =
	{-0.871874,-0.00265706,1.45749e-05,9.64097e-8,1.33382e-10,-1.23551e-13};
	for (Int_t n=0; n<zParMax; ++n) dzYPar[n] = dzYParam[n];
	const Float_t dz2YParam[zParMax] =
	{-0.0599679,-0.000680895,-2.2915e-06,6.49625e-9,5.34e-11,7.35146e-14};
	for (Int_t n=0; n<zParMax; ++n) dz2YPar[n] = dz2YParam[n];
    }
    {
	const Float_t dzThParam[zParMax] =
	{-0.820714,-0.021845,0.00050965,2.57468e-5,1.19138e-7,-5.83638e-9};
	for (Int_t n=0; n<zParMax; ++n) dzThetaPar[n] = dzThParam[n];
	const Float_t dz2ThParam[zParMax] =
	{-0.0662483,-0.00375807,-9.81675e-6,3.5676e-6,1.2312e-8,-1.99097e-9};
	for (Int_t n=0; n<zParMax; ++n) dz2ThetaPar[n] = dz2ThParam[n];
	const Float_t dzThPhParam[2] = {0.0408321, 0.00150907};
	for (Int_t n=0; n<2; ++n) dzThetaPhiPar[n] = dzThPhParam[n]/256.0F;
	const Float_t dz2ThPhParam[2] = {0.00107495, 9.0156e-5};
	for (Int_t n=0; n<2; ++n) dz2ThetaPhiPar[n] = dz2ThPhParam[n]/256.0F;
    }
    
    zRichCenter = -35.0F; 
    dzTarg = 5.0F; 
    zRef = zRichCenter + dzTarg;
    zNorm = 22.5F;
    thetaRef = 50.0F;
    yRef = 400.0F;
}
 hparticlebtangletrafo.cc:1  hparticlebtangletrafo.cc:2  hparticlebtangletrafo.cc:3  hparticlebtangletrafo.cc:4  hparticlebtangletrafo.cc:5  hparticlebtangletrafo.cc:6  hparticlebtangletrafo.cc:7  hparticlebtangletrafo.cc:8  hparticlebtangletrafo.cc:9  hparticlebtangletrafo.cc:10  hparticlebtangletrafo.cc:11  hparticlebtangletrafo.cc:12  hparticlebtangletrafo.cc:13  hparticlebtangletrafo.cc:14  hparticlebtangletrafo.cc:15  hparticlebtangletrafo.cc:16  hparticlebtangletrafo.cc:17  hparticlebtangletrafo.cc:18  hparticlebtangletrafo.cc:19  hparticlebtangletrafo.cc:20  hparticlebtangletrafo.cc:21  hparticlebtangletrafo.cc:22  hparticlebtangletrafo.cc:23  hparticlebtangletrafo.cc:24  hparticlebtangletrafo.cc:25  hparticlebtangletrafo.cc:26  hparticlebtangletrafo.cc:27  hparticlebtangletrafo.cc:28  hparticlebtangletrafo.cc:29  hparticlebtangletrafo.cc:30  hparticlebtangletrafo.cc:31  hparticlebtangletrafo.cc:32  hparticlebtangletrafo.cc:33  hparticlebtangletrafo.cc:34  hparticlebtangletrafo.cc:35  hparticlebtangletrafo.cc:36  hparticlebtangletrafo.cc:37  hparticlebtangletrafo.cc:38  hparticlebtangletrafo.cc:39  hparticlebtangletrafo.cc:40  hparticlebtangletrafo.cc:41  hparticlebtangletrafo.cc:42  hparticlebtangletrafo.cc:43  hparticlebtangletrafo.cc:44  hparticlebtangletrafo.cc:45  hparticlebtangletrafo.cc:46  hparticlebtangletrafo.cc:47  hparticlebtangletrafo.cc:48  hparticlebtangletrafo.cc:49  hparticlebtangletrafo.cc:50  hparticlebtangletrafo.cc:51  hparticlebtangletrafo.cc:52  hparticlebtangletrafo.cc:53  hparticlebtangletrafo.cc:54  hparticlebtangletrafo.cc:55  hparticlebtangletrafo.cc:56  hparticlebtangletrafo.cc:57  hparticlebtangletrafo.cc:58  hparticlebtangletrafo.cc:59  hparticlebtangletrafo.cc:60  hparticlebtangletrafo.cc:61  hparticlebtangletrafo.cc:62  hparticlebtangletrafo.cc:63  hparticlebtangletrafo.cc:64  hparticlebtangletrafo.cc:65  hparticlebtangletrafo.cc:66  hparticlebtangletrafo.cc:67  hparticlebtangletrafo.cc:68  hparticlebtangletrafo.cc:69  hparticlebtangletrafo.cc:70  hparticlebtangletrafo.cc:71  hparticlebtangletrafo.cc:72  hparticlebtangletrafo.cc:73  hparticlebtangletrafo.cc:74  hparticlebtangletrafo.cc:75  hparticlebtangletrafo.cc:76  hparticlebtangletrafo.cc:77  hparticlebtangletrafo.cc:78  hparticlebtangletrafo.cc:79  hparticlebtangletrafo.cc:80  hparticlebtangletrafo.cc:81  hparticlebtangletrafo.cc:82  hparticlebtangletrafo.cc:83  hparticlebtangletrafo.cc:84  hparticlebtangletrafo.cc:85  hparticlebtangletrafo.cc:86  hparticlebtangletrafo.cc:87  hparticlebtangletrafo.cc:88  hparticlebtangletrafo.cc:89  hparticlebtangletrafo.cc:90  hparticlebtangletrafo.cc:91  hparticlebtangletrafo.cc:92  hparticlebtangletrafo.cc:93  hparticlebtangletrafo.cc:94  hparticlebtangletrafo.cc:95  hparticlebtangletrafo.cc:96  hparticlebtangletrafo.cc:97  hparticlebtangletrafo.cc:98  hparticlebtangletrafo.cc:99  hparticlebtangletrafo.cc:100  hparticlebtangletrafo.cc:101  hparticlebtangletrafo.cc:102  hparticlebtangletrafo.cc:103  hparticlebtangletrafo.cc:104  hparticlebtangletrafo.cc:105  hparticlebtangletrafo.cc:106  hparticlebtangletrafo.cc:107  hparticlebtangletrafo.cc:108  hparticlebtangletrafo.cc:109  hparticlebtangletrafo.cc:110  hparticlebtangletrafo.cc:111  hparticlebtangletrafo.cc:112  hparticlebtangletrafo.cc:113  hparticlebtangletrafo.cc:114  hparticlebtangletrafo.cc:115  hparticlebtangletrafo.cc:116  hparticlebtangletrafo.cc:117  hparticlebtangletrafo.cc:118  hparticlebtangletrafo.cc:119  hparticlebtangletrafo.cc:120  hparticlebtangletrafo.cc:121  hparticlebtangletrafo.cc:122  hparticlebtangletrafo.cc:123  hparticlebtangletrafo.cc:124  hparticlebtangletrafo.cc:125  hparticlebtangletrafo.cc:126  hparticlebtangletrafo.cc:127  hparticlebtangletrafo.cc:128  hparticlebtangletrafo.cc:129  hparticlebtangletrafo.cc:130  hparticlebtangletrafo.cc:131  hparticlebtangletrafo.cc:132  hparticlebtangletrafo.cc:133  hparticlebtangletrafo.cc:134  hparticlebtangletrafo.cc:135  hparticlebtangletrafo.cc:136  hparticlebtangletrafo.cc:137  hparticlebtangletrafo.cc:138  hparticlebtangletrafo.cc:139  hparticlebtangletrafo.cc:140  hparticlebtangletrafo.cc:141  hparticlebtangletrafo.cc:142  hparticlebtangletrafo.cc:143  hparticlebtangletrafo.cc:144  hparticlebtangletrafo.cc:145  hparticlebtangletrafo.cc:146  hparticlebtangletrafo.cc:147  hparticlebtangletrafo.cc:148  hparticlebtangletrafo.cc:149  hparticlebtangletrafo.cc:150  hparticlebtangletrafo.cc:151  hparticlebtangletrafo.cc:152  hparticlebtangletrafo.cc:153  hparticlebtangletrafo.cc:154  hparticlebtangletrafo.cc:155  hparticlebtangletrafo.cc:156  hparticlebtangletrafo.cc:157  hparticlebtangletrafo.cc:158  hparticlebtangletrafo.cc:159  hparticlebtangletrafo.cc:160  hparticlebtangletrafo.cc:161  hparticlebtangletrafo.cc:162  hparticlebtangletrafo.cc:163  hparticlebtangletrafo.cc:164  hparticlebtangletrafo.cc:165  hparticlebtangletrafo.cc:166  hparticlebtangletrafo.cc:167  hparticlebtangletrafo.cc:168  hparticlebtangletrafo.cc:169  hparticlebtangletrafo.cc:170  hparticlebtangletrafo.cc:171  hparticlebtangletrafo.cc:172  hparticlebtangletrafo.cc:173  hparticlebtangletrafo.cc:174  hparticlebtangletrafo.cc:175  hparticlebtangletrafo.cc:176  hparticlebtangletrafo.cc:177  hparticlebtangletrafo.cc:178  hparticlebtangletrafo.cc:179  hparticlebtangletrafo.cc:180  hparticlebtangletrafo.cc:181  hparticlebtangletrafo.cc:182  hparticlebtangletrafo.cc:183  hparticlebtangletrafo.cc:184  hparticlebtangletrafo.cc:185  hparticlebtangletrafo.cc:186  hparticlebtangletrafo.cc:187  hparticlebtangletrafo.cc:188  hparticlebtangletrafo.cc:189  hparticlebtangletrafo.cc:190  hparticlebtangletrafo.cc:191  hparticlebtangletrafo.cc:192  hparticlebtangletrafo.cc:193  hparticlebtangletrafo.cc:194  hparticlebtangletrafo.cc:195  hparticlebtangletrafo.cc:196  hparticlebtangletrafo.cc:197  hparticlebtangletrafo.cc:198  hparticlebtangletrafo.cc:199  hparticlebtangletrafo.cc:200  hparticlebtangletrafo.cc:201  hparticlebtangletrafo.cc:202  hparticlebtangletrafo.cc:203  hparticlebtangletrafo.cc:204  hparticlebtangletrafo.cc:205  hparticlebtangletrafo.cc:206  hparticlebtangletrafo.cc:207  hparticlebtangletrafo.cc:208  hparticlebtangletrafo.cc:209  hparticlebtangletrafo.cc:210  hparticlebtangletrafo.cc:211  hparticlebtangletrafo.cc:212  hparticlebtangletrafo.cc:213  hparticlebtangletrafo.cc:214  hparticlebtangletrafo.cc:215  hparticlebtangletrafo.cc:216  hparticlebtangletrafo.cc:217  hparticlebtangletrafo.cc:218  hparticlebtangletrafo.cc:219  hparticlebtangletrafo.cc:220  hparticlebtangletrafo.cc:221  hparticlebtangletrafo.cc:222  hparticlebtangletrafo.cc:223  hparticlebtangletrafo.cc:224  hparticlebtangletrafo.cc:225  hparticlebtangletrafo.cc:226  hparticlebtangletrafo.cc:227  hparticlebtangletrafo.cc:228  hparticlebtangletrafo.cc:229  hparticlebtangletrafo.cc:230  hparticlebtangletrafo.cc:231  hparticlebtangletrafo.cc:232  hparticlebtangletrafo.cc:233  hparticlebtangletrafo.cc:234  hparticlebtangletrafo.cc:235  hparticlebtangletrafo.cc:236  hparticlebtangletrafo.cc:237  hparticlebtangletrafo.cc:238  hparticlebtangletrafo.cc:239  hparticlebtangletrafo.cc:240  hparticlebtangletrafo.cc:241  hparticlebtangletrafo.cc:242  hparticlebtangletrafo.cc:243  hparticlebtangletrafo.cc:244  hparticlebtangletrafo.cc:245  hparticlebtangletrafo.cc:246  hparticlebtangletrafo.cc:247  hparticlebtangletrafo.cc:248  hparticlebtangletrafo.cc:249  hparticlebtangletrafo.cc:250  hparticlebtangletrafo.cc:251  hparticlebtangletrafo.cc:252  hparticlebtangletrafo.cc:253  hparticlebtangletrafo.cc:254  hparticlebtangletrafo.cc:255  hparticlebtangletrafo.cc:256  hparticlebtangletrafo.cc:257  hparticlebtangletrafo.cc:258  hparticlebtangletrafo.cc:259  hparticlebtangletrafo.cc:260  hparticlebtangletrafo.cc:261  hparticlebtangletrafo.cc:262  hparticlebtangletrafo.cc:263  hparticlebtangletrafo.cc:264  hparticlebtangletrafo.cc:265  hparticlebtangletrafo.cc:266  hparticlebtangletrafo.cc:267  hparticlebtangletrafo.cc:268  hparticlebtangletrafo.cc:269  hparticlebtangletrafo.cc:270  hparticlebtangletrafo.cc:271  hparticlebtangletrafo.cc:272  hparticlebtangletrafo.cc:273  hparticlebtangletrafo.cc:274  hparticlebtangletrafo.cc:275  hparticlebtangletrafo.cc:276  hparticlebtangletrafo.cc:277  hparticlebtangletrafo.cc:278  hparticlebtangletrafo.cc:279  hparticlebtangletrafo.cc:280  hparticlebtangletrafo.cc:281  hparticlebtangletrafo.cc:282  hparticlebtangletrafo.cc:283  hparticlebtangletrafo.cc:284  hparticlebtangletrafo.cc:285  hparticlebtangletrafo.cc:286  hparticlebtangletrafo.cc:287  hparticlebtangletrafo.cc:288  hparticlebtangletrafo.cc:289  hparticlebtangletrafo.cc:290  hparticlebtangletrafo.cc:291  hparticlebtangletrafo.cc:292  hparticlebtangletrafo.cc:293  hparticlebtangletrafo.cc:294  hparticlebtangletrafo.cc:295  hparticlebtangletrafo.cc:296  hparticlebtangletrafo.cc:297  hparticlebtangletrafo.cc:298  hparticlebtangletrafo.cc:299  hparticlebtangletrafo.cc:300  hparticlebtangletrafo.cc:301  hparticlebtangletrafo.cc:302  hparticlebtangletrafo.cc:303  hparticlebtangletrafo.cc:304  hparticlebtangletrafo.cc:305  hparticlebtangletrafo.cc:306  hparticlebtangletrafo.cc:307  hparticlebtangletrafo.cc:308  hparticlebtangletrafo.cc:309  hparticlebtangletrafo.cc:310  hparticlebtangletrafo.cc:311  hparticlebtangletrafo.cc:312  hparticlebtangletrafo.cc:313  hparticlebtangletrafo.cc:314  hparticlebtangletrafo.cc:315  hparticlebtangletrafo.cc:316  hparticlebtangletrafo.cc:317  hparticlebtangletrafo.cc:318  hparticlebtangletrafo.cc:319  hparticlebtangletrafo.cc:320  hparticlebtangletrafo.cc:321  hparticlebtangletrafo.cc:322  hparticlebtangletrafo.cc:323  hparticlebtangletrafo.cc:324  hparticlebtangletrafo.cc:325  hparticlebtangletrafo.cc:326  hparticlebtangletrafo.cc:327  hparticlebtangletrafo.cc:328  hparticlebtangletrafo.cc:329  hparticlebtangletrafo.cc:330  hparticlebtangletrafo.cc:331  hparticlebtangletrafo.cc:332  hparticlebtangletrafo.cc:333  hparticlebtangletrafo.cc:334  hparticlebtangletrafo.cc:335  hparticlebtangletrafo.cc:336  hparticlebtangletrafo.cc:337  hparticlebtangletrafo.cc:338  hparticlebtangletrafo.cc:339  hparticlebtangletrafo.cc:340  hparticlebtangletrafo.cc:341  hparticlebtangletrafo.cc:342  hparticlebtangletrafo.cc:343  hparticlebtangletrafo.cc:344  hparticlebtangletrafo.cc:345  hparticlebtangletrafo.cc:346  hparticlebtangletrafo.cc:347  hparticlebtangletrafo.cc:348  hparticlebtangletrafo.cc:349  hparticlebtangletrafo.cc:350  hparticlebtangletrafo.cc:351  hparticlebtangletrafo.cc:352  hparticlebtangletrafo.cc:353  hparticlebtangletrafo.cc:354  hparticlebtangletrafo.cc:355  hparticlebtangletrafo.cc:356  hparticlebtangletrafo.cc:357  hparticlebtangletrafo.cc:358  hparticlebtangletrafo.cc:359  hparticlebtangletrafo.cc:360  hparticlebtangletrafo.cc:361  hparticlebtangletrafo.cc:362  hparticlebtangletrafo.cc:363  hparticlebtangletrafo.cc:364  hparticlebtangletrafo.cc:365  hparticlebtangletrafo.cc:366  hparticlebtangletrafo.cc:367  hparticlebtangletrafo.cc:368  hparticlebtangletrafo.cc:369  hparticlebtangletrafo.cc:370  hparticlebtangletrafo.cc:371  hparticlebtangletrafo.cc:372  hparticlebtangletrafo.cc:373  hparticlebtangletrafo.cc:374  hparticlebtangletrafo.cc:375  hparticlebtangletrafo.cc:376  hparticlebtangletrafo.cc:377  hparticlebtangletrafo.cc:378  hparticlebtangletrafo.cc:379  hparticlebtangletrafo.cc:380  hparticlebtangletrafo.cc:381  hparticlebtangletrafo.cc:382  hparticlebtangletrafo.cc:383  hparticlebtangletrafo.cc:384  hparticlebtangletrafo.cc:385  hparticlebtangletrafo.cc:386  hparticlebtangletrafo.cc:387  hparticlebtangletrafo.cc:388  hparticlebtangletrafo.cc:389  hparticlebtangletrafo.cc:390  hparticlebtangletrafo.cc:391  hparticlebtangletrafo.cc:392  hparticlebtangletrafo.cc:393  hparticlebtangletrafo.cc:394  hparticlebtangletrafo.cc:395  hparticlebtangletrafo.cc:396  hparticlebtangletrafo.cc:397  hparticlebtangletrafo.cc:398  hparticlebtangletrafo.cc:399  hparticlebtangletrafo.cc:400  hparticlebtangletrafo.cc:401  hparticlebtangletrafo.cc:402  hparticlebtangletrafo.cc:403  hparticlebtangletrafo.cc:404  hparticlebtangletrafo.cc:405  hparticlebtangletrafo.cc:406  hparticlebtangletrafo.cc:407  hparticlebtangletrafo.cc:408  hparticlebtangletrafo.cc:409  hparticlebtangletrafo.cc:410  hparticlebtangletrafo.cc:411  hparticlebtangletrafo.cc:412  hparticlebtangletrafo.cc:413  hparticlebtangletrafo.cc:414  hparticlebtangletrafo.cc:415  hparticlebtangletrafo.cc:416  hparticlebtangletrafo.cc:417  hparticlebtangletrafo.cc:418  hparticlebtangletrafo.cc:419  hparticlebtangletrafo.cc:420  hparticlebtangletrafo.cc:421  hparticlebtangletrafo.cc:422  hparticlebtangletrafo.cc:423  hparticlebtangletrafo.cc:424  hparticlebtangletrafo.cc:425  hparticlebtangletrafo.cc:426  hparticlebtangletrafo.cc:427  hparticlebtangletrafo.cc:428  hparticlebtangletrafo.cc:429  hparticlebtangletrafo.cc:430  hparticlebtangletrafo.cc:431  hparticlebtangletrafo.cc:432  hparticlebtangletrafo.cc:433  hparticlebtangletrafo.cc:434  hparticlebtangletrafo.cc:435