37 p_tzfl=
new Double_t[708400];
38 p_tpfl=
new Double_t[708400];
39 p_trfl=
new Double_t[708400];
52 Double_t radd=57.29577951;
56 t1=Double_t(i-ACOS_TABLE_SIZE);
58 acos_table[i]=acos(temp)*radd;
65 for(Int_t i=ACOS_TABLE_SIZE+1;i<(ACOS_TABLE_SIZE*2+1);i++)
67 t1=Double_t(i-ACOS_TABLE_SIZE);
69 acos_table[i]=acos(temp)*radd;
89 input.open(infile.Data(),ios::in);
102 for (Int_t i1 = 0; i1 < nfp; i1 ++){
103 for (Int_t i2 = 0; i2 < nfr; i2 ++){
104 for (Int_t i3 = 0;i3 < nfz; i3 ++){input>>p_tzfl[i3+i2*nfz+i1*nfz*nfr];}
105 for (Int_t i3 = 0;i3 < nfz; i3 ++){input>>p_trfl[i3+i2*nfz+i1*nfz*nfr];}
106 for (Int_t i3 = 0;i3 < nfz; i3 ++){input>>p_tpfl[i3+i2*nfz+i1*nfz*nfr];}
110 cout<<
"READING FIELDMAP FINISHED!"<<endl;
119 Double_t xloc,yloc,zloc,rhog,phigd,phil,bz,br,bp;
121 Double_t dc,ds,a,b,c,ac,ab,bc,abc,w1,w2,w3,w4,w5,w6,w7,w8;
124 Int_t ifz,ifr,ifp,ifr1,ifp1;
125 Int_t i1,i2,i3,i4,i5,i6,i7,i8;
129 if(zloc<zflmin||zloc>zflmax) {
130 btos[0]=0.; btos[1]=0.;btos[2]=0.;
136 rhog=sqrt(xloc*xloc+yloc*yloc);
157 phil=phigd-(Int_t)(phigd*one_sixtyth)*60.0;
168 m1=(zloc-zflmin)*step1z;
169 m2=(rhog-rflmin)*step1r;
170 m3=(phil-pflmin)*step1p;
190 w1=1.0-a-b+ab-c+ac+bc-abc;
208 bz=w1*p_tzfl[i1]+w2*p_tzfl[i2]
209 +w3*p_tzfl[i3]+w4*p_tzfl[i4]
210 +w5*p_tzfl[i5]+w6*p_tzfl[i6]
211 +w7*p_tzfl[i7]+w8*p_tzfl[i8];
213 br=w1*p_trfl[i1]+w2*p_trfl[i2]
214 +w3*p_trfl[i3]+w4*p_trfl[i4]
215 +w5*p_trfl[i5]+w6*p_trfl[i6]
216 +w7*p_trfl[i7]+w8*p_trfl[i8];
218 bp=w1*p_tpfl[i1]+w2*p_tpfl[i2]
219 +w3*p_tpfl[i3]+w4*p_tpfl[i4]
220 +w5*p_tpfl[i5]+w6*p_tpfl[i6]
221 +w7*p_tpfl[i7]+w8*p_tpfl[i8];
230 btos[0]=(dc*br-ds*bp);
231 btos[1]=(ds*br+dc*bp);
237 void HMdcTrackGField::Streamer(TBuffer &R__b) {
242 if (R__b.IsReading()) {
243 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
if (R__v) { }
244 TNamed::Streamer(R__b);
260 for (Int_t i3 = 0; i3 < nfz; i3 ++)
261 for (Int_t i2 = 0; i2 < nfr; i2 ++)
262 for (Int_t i1 = 0; i1 < nfp; i1 ++)
263 R__b >> p_tzfl[i3+i2*nfz+i1*nfz*nfr];
266 for (Int_t i3 = 0; i3 < nfz; i3 ++)
267 for (Int_t i2 = 0; i2 < nfr; i2 ++)
268 for (Int_t i1 = 0; i1 < nfp; i1 ++)
269 R__b >> p_trfl[i3+i2*nfz+i1*nfz*nfr];
272 for (Int_t i3 = 0; i3 < nfz; i3 ++)
273 for (Int_t i2 = 0; i2 < nfr; i2 ++)
274 for (Int_t i1 = 0; i1 < nfp; i1 ++)
275 R__b >> p_tpfl[i3+i2*nfz+i1*nfz*nfr];
281 R__b.ReadStaticArray((Double_t*)Pvector);
282 R__b.ReadStaticArray((Double_t*)Fvector);
284 R__b.CheckByteCount(R__s, R__c, HMdcTrackGField::IsA());
287 R__c = R__b.WriteVersion(HMdcTrackGField::IsA(), kTRUE);
288 TNamed::Streamer(R__b);
304 for (Int_t i3 = 0; i3 < nfz; i3 ++)
305 for (Int_t i2 = 0; i2 < nfr; i2 ++)
306 for (Int_t i1 = 0; i1 < nfp; i1 ++)
307 R__b << p_tzfl[i3+i2*nfz+i1*nfz*nfr];
310 for (Int_t i3 = 0; i3 < nfz; i3 ++)
311 for (Int_t i2 = 0; i2 < nfr; i2 ++)
312 for (Int_t i1 = 0; i1 < nfp; i1 ++)
313 R__b << p_trfl[i3+i2*nfz+i1*nfz*nfr];
316 for (Int_t i3 = 0; i3 < nfz; i3 ++)
317 for (Int_t i2 = 0; i2 < nfr; i2 ++)
318 for (Int_t i1 = 0; i1 < nfp; i1 ++)
319 R__b << p_tpfl[i3+i2*nfz+i1*nfz*nfr];
321 R__b.WriteArray(Pvector, 3);
322 R__b.WriteArray(Fvector, 3);
323 R__b.SetByteCount(R__c, kTRUE);
void calcField(Double_t *xv, Double_t *btos, Double_t fpol)
void init(TString infile)
ClassImp(HMdcTrackGField) HMdcTrackGField
virtual ~HMdcTrackGField()