#ifndef HPARTICLEBTANGLETRAFO_H
#define HPARTICLEBTANGLETRAFO_H
#include "TObject.h"
#include <TMath.h>
class HParticleBtAngleTrafo : public TObject {
protected:
const static Int_t yParMax=6, thetaParMax=7, xParMax=2, xPadParMax=5, zParMax=6;
Float_t yThetaPar[yParMax], yPadThetaPar[yParMax], yPadYPar[yParMax];
Float_t thetaYPar[thetaParMax], thetaYPadPar[yParMax], yYPadPar[yParMax];
Float_t xPar[xParMax], xPadPar[xPadParMax];
Float_t dzPar[zParMax], dz2Par[zParMax], dzPadPar[zParMax], dz2PadPar[zParMax];
Float_t dzYPar[zParMax], dz2YPar[zParMax];
Float_t dzThetaPar[zParMax], dz2ThetaPar[zParMax],dzThetaPhiPar[2], dz2ThetaPhiPar[2];
Float_t thetaOffset[3];
Float_t phiOffset;
Float_t thetaSlope[2];
Float_t thetaPadSlope[6];
Float_t dyPadSlope[4];
Float_t phiSlope[2];
Float_t phiPadSlope[4];
Float_t phiThetaSlope[5];
Float_t padThetaSlope[4];
Float_t yThetaSlope[4];
Float_t yOffset[6];
Float_t yProjOffset[2];
Float_t yPadOffset[3];
Float_t xPadSize;
Float_t xPadOffset;
Float_t dxVertex;
Float_t dxPadVertex;
Float_t zRichCenter, dzTarg, zRef, zNorm, thetaRef, yRef;
Float_t rad2deg ;
public:
HParticleBtAngleTrafo(void) {initParam();};
~HParticleBtAngleTrafo(void) {};
void initParam(void);
Float_t x2xPad(const Float_t x)
{
return x/xPadSize + xPadOffset;
}
Float_t xPad2x(const Float_t xPad)
{
return (xPad-xPadOffset)*xPadSize;
}
Float_t yPhi2x(const Float_t y, const Float_t phi)
{
return -tan(phi/rad2deg)*(y*xPar[1]+xPar[0]);
}
Float_t yPhi2xPad(const Float_t y, const Float_t phi)
{
Float_t x = yPhi2x(y, phi);
return x2xPad(x);
}
Float_t angles2y(const Float_t theta, const Float_t phi);
Float_t yPhi2Theta(const Float_t y, const Float_t phi);
Float_t angles2x(const Float_t theta, const Float_t phi)
{
Float_t y = angles2y(theta, phi);
return yPhi2x(y, phi);
}
Float_t angles2yPad(const Float_t theta, const Float_t phi);
Float_t yPadPhi2Theta(const Float_t yPad, const Float_t phi);
Float_t angles2xPad(const Float_t theta, const Float_t phi)
{
Float_t y = angles2y(theta, phi);
return yPhi2xPad(y, phi);
}
Float_t xy2Phi(const Float_t x, const Float_t y)
{
return atan(-x/(y*xPar[1]+xPar[0]))*rad2deg;
}
Float_t xPadyPad2Phi(const Float_t xPad, const Float_t yPad);
Float_t yPad2y(const Float_t yPad)
{
return xPadPar[0]+yPad*(xPadPar[1]+yPad*(xPadPar[2]+yPad*(xPadPar[3]+yPad*xPadPar[4])));
}
Float_t yPadPhi2x(const Float_t yPad, const Float_t phi)
{
return yPad2y(yPad) * tan(phi/rad2deg);
}
Float_t yPhi2yPad(const Float_t y, const Float_t phi);
Float_t yPadPhi2y(const Float_t yPad, const Float_t phi);
Float_t xy2yPad(const Float_t x, const Float_t y)
{
Float_t phi = xy2Phi(x,y);
return yPhi2yPad(y, phi);
}
Float_t xPadyPad2y(const Float_t xPad, const Float_t yPad)
{
Float_t phi = xPadyPad2Phi(xPad,yPad);
return yPadPhi2y(yPad, phi);
}
Float_t xy2Theta(const Float_t x, const Float_t y)
{
Float_t phi = xy2Phi(x,y);
return yPhi2Theta(y,phi);
}
Float_t xPadyPad2Theta(const Float_t xPad, const Float_t yPad)
{
Float_t phi = xPadyPad2Phi(xPad,yPad);
return yPadPhi2Theta(yPad,phi);
}
Float_t zTheta2dY(const Float_t z, const Float_t theta, const Float_t phi);
Float_t zTheta2dYPad(const Float_t z, const Float_t theta, const Float_t phi);
Float_t zTheta2dX()
{
return dxVertex;
}
Float_t zTheta2dXPad()
{
return dxPadVertex;
}
Float_t zY2dTheta(const Float_t z, const Float_t y, const Float_t x)
{
return zYPhi2dTheta(z, y, xy2Phi(x,y));
}
Float_t zYPad2dTheta(const Float_t z, const Float_t yPad, const Float_t xPad)
{
Float_t phi = xPadyPad2Phi(xPad,yPad);
return zYPhi2dTheta(z, yPadPhi2y(yPad, phi), phi);
}
Float_t zYPhi2dTheta(const Float_t z, const Float_t y, const Float_t phi);
Float_t zTheta2dTheta(const Float_t z, const Float_t theta, const Float_t phi);
void setRichPos(const Float_t zRichPos) {zRichCenter = zRichPos;}
Float_t getRichPos() {return zRichCenter;}
void setRichPos(const char * beamtime);
ClassDef(HParticleBtAngleTrafo,0)
};
#endif //HPARTICLEBTANGLETRAFO_H
hparticlebtangletrafo.h:1 hparticlebtangletrafo.h:2 hparticlebtangletrafo.h:3 hparticlebtangletrafo.h:4 hparticlebtangletrafo.h:5 hparticlebtangletrafo.h:6 hparticlebtangletrafo.h:7 hparticlebtangletrafo.h:8 hparticlebtangletrafo.h:9 hparticlebtangletrafo.h:10 hparticlebtangletrafo.h:11 hparticlebtangletrafo.h:12 hparticlebtangletrafo.h:13 hparticlebtangletrafo.h:14 hparticlebtangletrafo.h:15 hparticlebtangletrafo.h:16 hparticlebtangletrafo.h:17 hparticlebtangletrafo.h:18 hparticlebtangletrafo.h:19 hparticlebtangletrafo.h:20 hparticlebtangletrafo.h:21 hparticlebtangletrafo.h:22 hparticlebtangletrafo.h:23 hparticlebtangletrafo.h:24 hparticlebtangletrafo.h:25 hparticlebtangletrafo.h:26 hparticlebtangletrafo.h:27 hparticlebtangletrafo.h:28 hparticlebtangletrafo.h:29 hparticlebtangletrafo.h:30 hparticlebtangletrafo.h:31 hparticlebtangletrafo.h:32 hparticlebtangletrafo.h:33 hparticlebtangletrafo.h:34 hparticlebtangletrafo.h:35 hparticlebtangletrafo.h:36 hparticlebtangletrafo.h:37 hparticlebtangletrafo.h:38 hparticlebtangletrafo.h:39 hparticlebtangletrafo.h:40 hparticlebtangletrafo.h:41 hparticlebtangletrafo.h:42 hparticlebtangletrafo.h:43 hparticlebtangletrafo.h:44 hparticlebtangletrafo.h:45 hparticlebtangletrafo.h:46 hparticlebtangletrafo.h:47 hparticlebtangletrafo.h:48 hparticlebtangletrafo.h:49 hparticlebtangletrafo.h:50 hparticlebtangletrafo.h:51 hparticlebtangletrafo.h:52 hparticlebtangletrafo.h:53 hparticlebtangletrafo.h:54 hparticlebtangletrafo.h:55 hparticlebtangletrafo.h:56 hparticlebtangletrafo.h:57 hparticlebtangletrafo.h:58 hparticlebtangletrafo.h:59 hparticlebtangletrafo.h:60 hparticlebtangletrafo.h:61 hparticlebtangletrafo.h:62 hparticlebtangletrafo.h:63 hparticlebtangletrafo.h:64 hparticlebtangletrafo.h:65 hparticlebtangletrafo.h:66 hparticlebtangletrafo.h:67 hparticlebtangletrafo.h:68 hparticlebtangletrafo.h:69 hparticlebtangletrafo.h:70 hparticlebtangletrafo.h:71 hparticlebtangletrafo.h:72 hparticlebtangletrafo.h:73 hparticlebtangletrafo.h:74 hparticlebtangletrafo.h:75 hparticlebtangletrafo.h:76 hparticlebtangletrafo.h:77 hparticlebtangletrafo.h:78 hparticlebtangletrafo.h:79 hparticlebtangletrafo.h:80 hparticlebtangletrafo.h:81 hparticlebtangletrafo.h:82 hparticlebtangletrafo.h:83 hparticlebtangletrafo.h:84 hparticlebtangletrafo.h:85 hparticlebtangletrafo.h:86 hparticlebtangletrafo.h:87 hparticlebtangletrafo.h:88 hparticlebtangletrafo.h:89 hparticlebtangletrafo.h:90 hparticlebtangletrafo.h:91 hparticlebtangletrafo.h:92 hparticlebtangletrafo.h:93 hparticlebtangletrafo.h:94 hparticlebtangletrafo.h:95 hparticlebtangletrafo.h:96 hparticlebtangletrafo.h:97 hparticlebtangletrafo.h:98 hparticlebtangletrafo.h:99 hparticlebtangletrafo.h:100 hparticlebtangletrafo.h:101 hparticlebtangletrafo.h:102 hparticlebtangletrafo.h:103 hparticlebtangletrafo.h:104 hparticlebtangletrafo.h:105 hparticlebtangletrafo.h:106 hparticlebtangletrafo.h:107 hparticlebtangletrafo.h:108 hparticlebtangletrafo.h:109 hparticlebtangletrafo.h:110 hparticlebtangletrafo.h:111 hparticlebtangletrafo.h:112 hparticlebtangletrafo.h:113 hparticlebtangletrafo.h:114 hparticlebtangletrafo.h:115 hparticlebtangletrafo.h:116 hparticlebtangletrafo.h:117 hparticlebtangletrafo.h:118 hparticlebtangletrafo.h:119 hparticlebtangletrafo.h:120 hparticlebtangletrafo.h:121 hparticlebtangletrafo.h:122 hparticlebtangletrafo.h:123 hparticlebtangletrafo.h:124 hparticlebtangletrafo.h:125 hparticlebtangletrafo.h:126 hparticlebtangletrafo.h:127 hparticlebtangletrafo.h:128 hparticlebtangletrafo.h:129 hparticlebtangletrafo.h:130 hparticlebtangletrafo.h:131 hparticlebtangletrafo.h:132 hparticlebtangletrafo.h:133 hparticlebtangletrafo.h:134 hparticlebtangletrafo.h:135 hparticlebtangletrafo.h:136 hparticlebtangletrafo.h:137 hparticlebtangletrafo.h:138 hparticlebtangletrafo.h:139 hparticlebtangletrafo.h:140 hparticlebtangletrafo.h:141 hparticlebtangletrafo.h:142 hparticlebtangletrafo.h:143 hparticlebtangletrafo.h:144 hparticlebtangletrafo.h:145 hparticlebtangletrafo.h:146 hparticlebtangletrafo.h:147 hparticlebtangletrafo.h:148 hparticlebtangletrafo.h:149 hparticlebtangletrafo.h:150 hparticlebtangletrafo.h:151 hparticlebtangletrafo.h:152 hparticlebtangletrafo.h:153 hparticlebtangletrafo.h:154 hparticlebtangletrafo.h:155 hparticlebtangletrafo.h:156 hparticlebtangletrafo.h:157 hparticlebtangletrafo.h:158 hparticlebtangletrafo.h:159 hparticlebtangletrafo.h:160 hparticlebtangletrafo.h:161 hparticlebtangletrafo.h:162