2 #include "StThreeVectorF.hh"
3 #include "StEvent/StTpcHit.h"
11 int TpcLocalTransform(
StThreeVectorD& aPoint,
int& aSector,
int& aRow,
12 float& aU,
double& aPhi){
13 static int tNPadAtRow[45]={
14 88,96,104,112,118,126,134,142,150,158,166,174,182,
15 98,100,102,104,106,106,108,110,112,112,114,116,118,120,122,122,
16 124,126,128,128,130,132,134,136,138,138,140,142,144,144,144,144};
17 static double tSectToPhi[24]={2.,1.,0.,11.,10.,9.,8. ,7. ,6.,5.,4.,3.,
18 4.,5.,6., 7., 8.,9.,10.,11.,0.,1.,2.,3.};
21 static double tPadWidthInner = 0.335;
22 static double tPadWidthOuter = 0.67;
24 static double tPi = TMath::Pi();
27 if(aPhi<0.) aPhi+=(2*tPi);
29 if(aPhi>2*tPi) aPhi-=2*tPi;
30 int tiPhi = (int) (aPhi/tPi*6.);
32 aSector = (tiPhi<3)? 3-tiPhi : 15-tiPhi;
35 aSector = (tiPhi<4)? 21+tiPhi : 9+tiPhi;
37 aPhi = tSectToPhi[aSector-1]*tPi/6.;
44 float tR = aPoint.x()*cos(aPhi)+aPoint.y()*sin(aPhi);
45 aU = -aPoint.x()*sin(aPhi)+aPoint.y()*cos(aPhi);
55 while(tR>radmax && aRow<46){
77 double tPadWidth = aRow<14? tPadWidthInner : tPadWidthOuter;
78 if(fabs(aU) > tNPadAtRow[aRow-1]*tPadWidth/2.){