96 #include "TMatrixDEigen.h"
108 memset(CumClus,0,
sizeof(CumClus));
109 memset(CH4Clus,0,
sizeof(CH4Clus));
110 memset(PolyaCum,0,
sizeof(PolyaCum));
111 memset(Xs,0,
sizeof(Xs));
154 {0., .802, .0707, .020, .013, .008, .006, .005, .006,
155 .008, .009, .007, .0050, .0040, .0033, .0029, .0025,
174 {0., .730, .162, .038, .020, .0110, .0147, .0060, .0084,
175 .0052, .0020, .0042, .0021, .0025, .0038, .0021, .0009,
176 .00013, .00064, .00048};
195 RhoAr = pSTP*1.662*1.e-03;
202 RhoCO2 = pSTP*1.842*1.e-03;
209 RhoCH4 = pSTP*0.71*1.e-03;
214 ArWPerc = ArPerc *AAr /(ArPerc*AAr + CO2Perc*ACO2);
215 CO2WPerc = CO2Perc*ACO2/(ArPerc*AAr + CO2Perc*ACO2);
218 RhoMixCO2 = 1./((ArWPerc/RhoAr) + (CO2WPerc/RhoCO2));
219 RhoMixCH4 = 1./((ArWPerc/RhoAr) + (CH4WPerc/RhoCH4));
243 Double_t Wnorm = (ArPerc*NclAr + CO2Perc*NclCO2);
244 CumClus[0]=(ArPerc*NclAr*PClus[0] + CO2Perc*NclCO2*CO2Clus[0])/Wnorm;
246 for(Int_t
i=1;
i<=20;
i++) {
247 CumClus[
i]=(ArPerc*NclAr*PClus[
i] + CO2Perc*NclCO2*CO2Clus[
i])/Wnorm + CumClus[
i-1];
252 for(Int_t
i=0;
i<=19;
i++) {
282 Xin=InOut[0]; Yin=InOut[1]; Zin=InOut[2];
283 Xout=InOut[3]; Yout=InOut[4]; Zout=InOut[5];
288 Dx =
sqrt((Xout-Xin)*(Xout-Xin) +
289 (Yout-Yin)*(Yout-Yin) +
290 (Zout-Zin)*(Zout-Zin));
311 PEn =
sqrt(PMom*PMom + PMass*PMass);
313 gamma = 1/
sqrt(1.-beta*beta);
325 if(Xo <= Xst && Xst <= X1) Delta = 4.6051702*Xst +Cs +as*pow(X1-Xst,ms);
326 else if(X1< Xst) Delta = 4.6051702*Xst +Cs;
327 if(Delta < 0) Delta=0;
331 Emax = (1.022*begam*begam/(1.+2.*gamma*mratio+mratio*mratio))/1000.;
333 CsiAr = 0.5*0.3071*PZeta*PZeta*ZAr*RhoAr/(beta*beta*AAr)*1e-03;
334 Double_t fact = 2.*eMass*beta*beta*gamma*gamma*Emax/(IAr*IAr);
335 EmedAr = 2.*CsiAr*(0.5*
TMath::Log(fact)-beta*beta - 0.5*Delta);
336 EminAr = pSTP*2.70*1.e-06;
338 EmpAr = EmedAr + CsiAr*(0.422784 + beta*beta +
log(CsiAr/Emax));
340 CsiCO2 = 0.5*0.3071*PZeta*PZeta*ZCO2*RhoCO2/(beta*beta*ACO2)*1e-03;
341 fact = 2.*eMass*beta*beta*gamma*gamma*Emax/(ICO2*ICO2);
342 EmedCO2 = 2.*CsiCO2*(0.5*
TMath::Log(fact)-beta*beta - 0.5*Delta);
343 EminCO2 = pSTP*3.60*1.e-06;
345 EmpCO2 = EmedCO2 + CsiCO2*(0.422784 + beta*beta +
log(CsiCO2/Emax));
347 Csi = RhoMixCO2 * ((ArWPerc*CsiAr/RhoAr) + (CO2WPerc*CsiCO2/RhoCO2));;
348 Emed = RhoMixCO2 * ((ArWPerc*EmedAr/RhoAr) + (CO2WPerc*EmedCO2/RhoCO2));
349 Emin = RhoMixCO2 * ((ArWPerc*EminAr/RhoAr) + (CO2WPerc*EminCO2/RhoCO2));
350 Emp = RhoMixCO2 * ((ArWPerc*EmpAr/RhoAr) + (CO2WPerc*EmpCO2/RhoCO2));
353 Wi = (ArPerc*NclAr*WiAr + CO2Perc*NclCO2*WiCO2)/(ArPerc*NclAr + CO2Perc*NclCO2);
355 Double_t nAr = ArWPerc * RhoMixCO2/AAr;
356 Double_t nCO2 = CO2WPerc * RhoMixCO2/ACO2;
358 Ncl=pSTP*((nAr*NclAr+nCO2*NclCO2)/(nAr+nCO2))*Emed/Emin;
369 Thresh1 = 0.5*Ncl*Ecl* 0.05;
370 Thresh2 = 0.5*Ncl*Ecl* 0.10;
390 return gRandom->Landau(Emp*Dx,Csi*Dx);
403 Double_t Sig1CO2, Sig2CO2, Sig3CO2, IMix, nAr, nCO2;
405 Double_t N1Mix, N2Mix, N3Mix, E1Mix, E2Mix, E3Mix, ZMix;
413 Cuc = 2.*PMass*beta*beta*gamma*gamma;
419 e2 = 10.*ZAr*ZAr*eVGeV;
420 e2f = TMath::Power(e2,f2);
421 e1 = TMath::Power(IAr/e2f,1./f1);
422 Sig1Ar = (1.-ru)*Cu*(f1/e1)*(
TMath::Log(Cuc/e1) - beta*beta)/
424 Sig2Ar = (1.-ru)*Cu*(f2/e2)*(
TMath::Log(Cuc/e2) - beta*beta)/
426 Sig3Ar = Cu*Emax*ru / (IAr*(Emax+IAr)*
TMath::Log((Emax+IAr)/IAr));
432 e2 = 10.*ZCO2*ZCO2*eVGeV;
433 e2f = TMath::Power(e2,f2);
434 e1 = TMath::Power(ICO2/e2f,1./f1);
436 Sig1CO2 = (1.-ru)*Cu*(f1/e1)*(
TMath::Log(Cuc/e1) - beta*beta)/
438 Sig2CO2 = (1.-ru)*Cu*(f2/e2)*(
TMath::Log(Cuc/e2) - beta*beta)/
440 Sig3CO2 = Cu*Emax*ru / (ICO2*(Emax+ICO2)*
TMath::Log((Emax+ICO2)/ICO2));
443 nAr = ArWPerc * RhoMixCO2/AAr;
444 nCO2 = CO2WPerc * RhoMixCO2/ACO2;
446 (nAr*ZAr + nCO2*ZCO2));
448 ZMix = ArWPerc*ZAr + CO2WPerc*ZCO2;
451 E2Mix = 10.*ZMix*ZMix*eVGeV;
452 e2f = TMath::Power(E2Mix,f2);
453 E1Mix = TMath::Power(IMix/e2f,1./f1);
455 Sig1Mix = Dx*RhoMixCO2*(ArWPerc*Sig1Ar/RhoAr + CO2WPerc*Sig1CO2/RhoCO2);
456 Sig2Mix = Dx*RhoMixCO2*(ArWPerc*Sig2Ar/RhoAr + CO2WPerc*Sig2CO2/RhoCO2);
457 Sig3Mix = Dx*RhoMixCO2*(ArWPerc*Sig3Ar/RhoAr + CO2WPerc*Sig3CO2/RhoCO2);
459 NUrban = Sig1Mix+Sig2Mix+Sig3Mix;
462 N1Mix = gRandom->Poisson(Sig1Mix);
463 N2Mix = gRandom->Poisson(Sig2Mix);
464 N3Mix = gRandom->Poisson(Sig3Mix);
469 for(Int_t j=1;j<=N3;j++){
470 E3Mix += ((Emax+IMix)*IMix)/(IMix + Emax*(1.-gRandom->Uniform()));
475 Eup = IMix/(1.-0.98*Emax/(Emax+IMix));
476 Sig21 = IMix*(Emax+IMix)/Emax;
478 Sig22 = Sig21*Eup - Medd*Medd;
479 Sig23 = Sig1Mix*E1Mix*E1Mix + Sig2Mix*E2Mix*E2Mix
480 + Sig3Mix*Medd*Medd + Sig3Mix*Sig22;
482 AvUrb = Sig1Mix*E1Mix + Sig2Mix*E2Mix + Sig3Mix*Medd;
487 return N1Mix*E1Mix + N2Mix*E2Mix + E3Mix;
499 Double_t TotEnEle = 0., ClusEner=0., Ecurr;
508 for(Int_t j=1;j<=NNClus;j++){
510 for(Int_t
jj=1;
jj<=(Int_t)(CNele.at(j-1));
jj++){
517 CNeleT.push_back(
int(ClusEner/Wi));
523 for(Int_t k=1; k<=NNClus; k++) {
524 for (Int_t kk=0; kk<(Int_t)CNeleT.at(k-1); kk++) {
525 if(owfl > (Int_t) Cutoff)
break;
527 WDist.push_back(WDistCalc(CDistC.at(k-1)));
531 return TotEnEle*1.e-09;
549 for(Int_t k=1; k<=1000; k++) {
552 Double_t path = -Lcl*
log(1-gRandom->Uniform()+0.000001);
556 CDist.push_back(path);
557 CDistC.push_back(DisTot);
558 CNele.push_back((
Double_t)Eject() );
571 nelect= TMath::BinarySearch(21,CumClus,gRandom->Uniform());
573 return Inelect = (Int_t) (nelect) +1;
577 return Inelect = (Int_t)(20./(1.03-gRandom->Uniform()));
592 if(1.<=gamma2 && gamma2 <= 2.2){
593 Rise = -2.159*lg +1.7;
595 else if(2.2<=gamma2 && gamma2 <= 6.){
598 else if(6.<=gamma2 && gamma2 <= 200.){
599 Rise = 0.302*lg + 0.765;
601 else if(200.<=gamma2 && gamma2 <= 1000.){
602 Rise = 0.1431*lg + 1.131;
604 else if(1000.<=gamma2){
629 PMax = eps * pow(k,k)*
exp(-k);
634 value = pow(Xmax,k)*
exp(-Xmax);
643 for(Int_t
i=1;
i<NPolya;
i++){
649 PolyaCum[
i] = PolyaCum[
i-1] +
650 0.5*dx*(pow(x1,k)*
exp(-x1) + pow(x2,k)*
exp(-x2))/TMath::Gamma(k+1);
652 PolyaCum[
i] = PolyaCum[
i-1] +
653 0.5*dx* pow(x2,k)*
exp(-x2)/TMath::Gamma(k+1);
658 for(Int_t ii=0; ii<NPolya; ii++) PolyaCum[ii] /= PolyaCum[NPolya-1];
669 Int_t
n = TMath::BinarySearch(NPolya,PolyaCum,xr);
673 ((xr-PolyaCum[
n])/(PolyaCum[n+1] - PolyaCum[n])) *(Xs[n+1]-Xs[n]);
689 (Wy2-Wy1)*(Wy2-Wy1) +
690 (Wz2-Wz1)*(Wz2-Wz1) );
691 Wp = (Wx2-Wx1)/Wlength;
692 Wq = (Wy2-Wy1)/Wlength;
693 Wr = (Wz2-Wz1)/Wlength;
696 Double_t xcor = Calpha * DisTot + Xin;
697 Double_t ycor = Cbeta * DisTot + Yin;
698 Double_t zcor = Cgamma * DisTot + Zin;
701 Double_t XX1 = Wr*(ycor-Wy1) - Wq*(zcor-Wz1);
702 Double_t YY1 = Wp*(zcor-Wz1) - Wr*(xcor-Wx1);
703 Double_t ZZ1 = Wq*(xcor-Wx1) - Wp*(ycor-Wy1);
732 Double_t difL = gRandom->Gaus(0.,SigL);
733 Double_t difT = gRandom->Gaus(0.,SigT);
737 XX += difL*cosx + difT*Wp;
738 YY += difL*cosy + difT*Wq;
739 ZZ += difL*cosz + difT*Wr;
742 TVector3 TDist(XX,YY,ZZ);
754 Rpath =
sqrt((Xout-Xin)*(Xout-Xin) +
755 (Yout-Yin)*(Yout-Yin) +
756 (Zout-Zin)*(Zout-Zin));
759 Calpha = (Xout-Xin)/Rpath;
760 Cbeta = (Yout-Yin)/Rpath;
761 Cgamma = (Zout-Zin)/Rpath;
775 Int_t ido = WDist.size();
779 if(ido > (Int_t) Cutoff) ido = (Int_t) Cutoff;
781 for(Int_t k=0; k<ido; k++) {
789 etime= -1.624e-05 + 0.1258*dst + 0.8079*pow(dst,2) -2.918*pow(dst,3)
790 + 10.33*pow(dst,4) -10.84*pow(dst,5);
795 etime= -6.763e-05 + 0.1471*dst +0.3625*pow(dst,2) +0.3876*pow(dst,3)
796 +1.04*pow(dst,4) -1.693*pow(dst,5);
803 if(Field==1 && CO2Perc <0.15){
804 etime= -1.569123e-03 + 2.228707e-01*dst -2.100147e-01*pow(dst,2)
805 +1.240429*pow(dst,3) -5.929662e-01*pow(dst,4);
808 else if(Field==1 && CO2Perc >0.15){
809 etime = -3.022419e-04 + 1.490671e-01*dst -1.947376e-01*pow(dst,2)
810 +2.764081e+00*pow(dst,3) -2.129739e+00*pow(dst,4);
815 etime= -1.472305e-03 + 2.139223e-01*dst -5.835399e-02*pow(dst,2)
816 -6.727544e-02*pow(dst,3) +6.334636e-01*pow(dst,4);
821 TeleTime.push_back(etime);
824 return TeleTime.size();
841 if(x>0) elesig =pow(2.*x/10.,2)*
exp(-2.*x/10.);
860 Int_t neltot = TimeEle();
863 for(Int_t k=0; k< neltot; k++)
if(Tmax<TeleTime.at(k)) Tmax=TeleTime.at(k);
870 for(Int_t j=0; j< neltot; j++){
871 AmplSig.push_back(bPolya*PolyaSamp());
875 for(Int_t j=0; j<
nsteps; j++){
878 for(Int_t
jj=0;
jj< neltot;
jj++){
880 sumele += AmplSig.at(
jj)*Signal(te,te0);
883 Pulse.push_back(sumele);
884 PulseT.push_back(te);
891 for(Int_t k=0; k<(Int_t)Pulse.size(); k++)
892 if(Pmax<Pulse.at(k)) Pmax=Pulse.at(k);
894 for(Int_t k=0; k<(Int_t)Pulse.size(); k++){
895 Pulse.at(k) += 0.03*Pmax*gRandom->Uniform()
896 + 0.01*Pmax*(
sin(6.28*PulseT.at(k)/120.));
925 for(Int_t k=0; k<(Int_t) Pulse.size(); k++){
926 if(flag1==0 && Pulse[k]>Thresh1) {
939 if(flag1==1 && flag2==1) PulseTime=PulseT.at(ind)-OffT;
961 for(Int_t k=0; k<(Int_t) Pulse.size(); k++){
962 if(flag1==0 && Pulse[k]>Thresh1) {
968 if(Pulse[k]>Thresh1)ind1=k;
970 if(flag1==1 && flag2==1) PulseTime=PulseT.at(ind);
971 PulseTime1 = PulseT.at(ind1);
988 (Wy2-Wy1)*(Wy2-Wy1) +
989 (Wz2-Wz1)*(Wz2-Wz1) );
990 Wp = (Wx2-Wx1)/Wlength;
991 Wq = (Wy2-Wy1)/Wlength;
992 Wr = (Wz2-Wz1)/Wlength;
995 Double_t Modu =
sqrt( (Point[3]*Point[0])*(Point[3]*Point[0]) +
996 (Point[4]*Point[1])*(Point[4]*Point[1]) +
997 (Point[5]*Point[2])*(Point[5]*Point[2]) );
998 Double_t dcx = (Point[3]-Point[0])/Modu;
999 Double_t dcy = (Point[4]-Point[1])/Modu;
1000 Double_t dcz = (Point[5]-Point[2])/Modu;
1003 Double_t p1 = (Point[0]-Wx1)*(dcy*Wr-dcz*Wq);
1004 Double_t p2 =-(Point[1]-Wy1)*(dcx*Wr-dcz*Wp);
1005 Double_t p3 = (Point[2]-Wz1)*(dcx*Wq-dcy*Wp);
1007 Double_t Disc =
sqrt( (dcy*Wr-dcz*Wq)*(dcy*Wr-dcz*Wq) +
1008 (dcz*Wp-dcx*Wr)*(dcz*Wp-dcx*Wr) +
1009 (dcx*Wq-dcy*Wp)*(dcx*Wq-dcy*Wp) );
1033 drift = -0.0140 -1.37281e-01
1035 +7.65443e-05*pow(time,2)
1036 -9.53479e-06*pow(time,3)
1037 +1.19432e-07*pow(time,4)
1038 -6.19861e-10*pow(time,5)
1039 +1.35458e-12*pow(time,6)
1040 -1.10933e-15*pow(time,7);
1048 drift = 0.0300 -1.07377e-01
1050 +1.20909e-03*pow(time,2)
1051 -4.56678e-05*pow(time,3)
1052 +6.70207e-07*pow(time,4)
1053 -4.99204e-09*pow(time,5)
1054 +2.19079e-11*pow(time,6)
1055 -8.01791e-14*pow(time,7)
1056 +2.16778e-16*pow(time,8);
1060 drift = 0.0300 -8.91701e-01
1062 +1.00902e-03*pow(time,2)
1063 -4.00359e-05*pow(time,3)
1064 +6.23768e-07*pow(time,4)
1065 -5.20556e-09*pow(time,5)
1066 +2.41502e-11*pow(time,6)
1067 -5.85450e-14*pow(time,7)
1068 +5.77250e-17*pow(time,8);
1086 drift = 2.498729e-02
1088 +3.997619e-03 *pow(time,2)
1089 -1.289555e-04 *pow(time,3)
1090 +2.101670e-06 *pow(time,4)
1091 -1.959622e-08 *pow(time,5)
1092 +1.053198e-10 *pow(time,6)
1093 -3.030411e-13 *pow(time,7)
1094 +3.609173e-16 *pow(time,8);
1098 drift = -4.843174e-02
1100 +4.593485e-03 *pow(time,2)
1101 -1.677031e-04 *pow(time,3)
1102 +2.955270e-06 *pow(time,4)
1103 -2.996812e-08 *pow(time,5)
1104 +1.832841e-10 *pow(time,6)
1105 -6.678677e-13 *pow(time,7)
1106 +1.335729e-15 *pow(time,8)
1107 -1.128932e-18 *pow(time,9);
1112 if(drift < 0.) drift=0.;
1125 TInit(xPMass, xPMom, InOut);
1126 Out1 = StrawCharge();
1127 Out2 = StrawSignal(Nchann);
1142 for(Int_t j=1; j<= NNClus; j++){
1144 for(Int_t jc=1; jc<=(Int_t) CNeleT[j-1]; jc++)
1145 ADCsignal += bPolya * GasGain * PolyaSamp();
1163 Int_t NtotEle = (Int_t) (1.e+09 * STUrban()/Wi);
1165 for(Int_t j=1; j<= NtotEle; j++){
1167 ADCsignal += bPolya * GasGain * PolyaSamp();
1195 resmic = 1.24506e+02 -1.80117e+02*TrueDcm
1196 +3.76905e+03*pow(TrueDcm,2) -4.63251e+04*pow(TrueDcm,3)
1197 +1.80068e+05*pow(TrueDcm,4) -2.21094e+05*pow(TrueDcm,5);
1204 resmic = 1.53656e+02
1205 -5.07749e+03*TrueDcm
1206 +1.73707e+05*pow(TrueDcm,2)
1207 -2.72285e+06*pow(TrueDcm,3)
1208 +2.28719e+07*pow(TrueDcm,4)
1209 -1.12921e+08*pow(TrueDcm,5)
1210 +3.39427e+08*pow(TrueDcm,6)
1211 -6.12741e+08 *pow(TrueDcm,7)
1212 +6.12041e+08 *pow(TrueDcm,8)
1213 -2.60444e+08*pow(TrueDcm,9) ;
1224 resmic = +1.06966e+02
1225 -4.03073e+03 *TrueDcm
1226 +1.60851e+05 *pow(TrueDcm,2)
1227 -2.87722e+06 *pow(TrueDcm,3)
1228 +2.67581e+07 *pow(TrueDcm,4)
1229 -1.43397e+08 *pow(TrueDcm,5)
1230 +4.61046e+08 *pow(TrueDcm,6)
1231 -8.79170e+08 *pow(TrueDcm,7)
1232 +9.17095e+08 *pow(TrueDcm,8)
1233 -4.03253e+08 *pow(TrueDcm,9) ;
1240 resmic = +1.48048e+02
1241 -3.35951e+02*TrueDcm
1242 -1.87575e+03*pow(TrueDcm,2)
1243 +1.92910e+04*pow(TrueDcm,3)
1244 -6.90036e+04*pow(TrueDcm,4)
1245 +1.07960e+05*pow(TrueDcm,5)
1246 -5.90064e+04*pow(TrueDcm,6) ;
1269 + 0.00211993 * TrueDcm
1270 + 0.00336004 * pow(TrueDcm, 2)
1271 - 0.0103979 * pow(TrueDcm, 3)
1272 + 0.0033461 * pow(TrueDcm, 4)
1273 -0.000315764 * pow(TrueDcm, 5);
1281 resmic = 4.521331e-01
1282 -2.087216e-01 *10.*TrueDcm
1283 +4.911102e-02 *pow(10.*TrueDcm,2)
1284 -3.934728e-03 *pow(10.*TrueDcm,3);
1285 resmic = resmic*1000.;
1290 Double_t rsim = gRandom->Gaus(TrueDcm, resmic*0.0001);
1291 if (rsim<0.) rsim = TrueDcm - TrueDcm*gRandom->Uniform(0.,1.);
1292 else if (rsim>0.5) rsim = TrueDcm + (0.5-TrueDcm)*gRandom->Uniform(0.,1.);
1310 DiffMic = 0.896 + 1387.*Distcm - 1.888e+04*pow(Distcm,2)
1311 + 1.799e+05*pow(Distcm,3) - 9.848e+05*pow(Distcm,4)
1312 + 3.009e+06*pow(Distcm,5) - 4.777e+06*pow(Distcm,6)
1313 + 3.074e+06*pow(Distcm,7);
1317 DiffMic = 1.537 + 1246.*Distcm - 1.357e+04*pow(Distcm,2)
1318 + 1.049e+05*pow(Distcm,3) - 4.755e+05*pow(Distcm,4)
1319 + 1.211e+06*pow(Distcm,5) - 1.6e+06*pow(Distcm,6)
1320 + 8.533e+05*pow(Distcm,7);
1326 DiffMic = 2.135 +818.*Distcm - 1.044e+04*pow(Distcm,2)
1327 + 8.31e+04*pow(Distcm,3) - 3.492e+05*pow(Distcm,4)
1328 + 7.959e+05*pow(Distcm,5) - 9.378e+05*pow(Distcm,6)
1329 + 4.492e+05*pow(Distcm,7);
1350 DiffMic = + 1.482 + 1529.*Distcm - 6755.*pow(Distcm,2)
1351 + 2.924e+04*pow(Distcm,3) - 0.9246e+05*pow(Distcm,4)
1352 + 1.548e+05*pow(Distcm,5) - 1.002e+05*pow(Distcm,6);
1356 DiffMic = + 1.482 + 1529.*Distcm - 6755.*pow(Distcm,2)
1357 + 2.924e+04*pow(Distcm,3) - 0.9246e+05*pow(Distcm,4)
1358 + 1.548e+05*pow(Distcm,5) - 1.002e+05*pow(Distcm,6);
1364 DiffMic = +2.094 + 1138.*Distcm - 7557.*pow(Distcm,2)
1365 + 2.968e+04*pow(Distcm,3) - 6.577e+04*pow(Distcm,4)
1366 + 7.581e+04*pow(Distcm,5) - 3.497e+04*pow(Distcm,6);
1389 drift = 0.001629 + 6.194*time
1390 - 56.55*pow(time,2) + 355.8*pow(time,3)
1391 - 903.2*pow(time,4);
1395 drift = 0.003365 + 5.734*time
1396 - 41.88*pow(time,2) + 191.2*pow(time,3)
1397 - 333.4*pow(time,4) ;
1405 drift = 0.003365 + 7.056*time
1406 - 62.28*pow(time,2) + 306.1*pow(time,3)
1407 - 558.7*pow(time,4);
friend F32vec4 exp(const F32vec4 &a)
void PutWireXYZ(Double_t w1, Double_t w2, Double_t w3, Double_t w4, Double_t w5, Double_t w6)
friend F32vec4 sqrt(const F32vec4 &a)
static T Sqrt(const T &x)
friend F32vec4 sin(const F32vec4 &a)
friend F32vec4 log(const F32vec4 &a)
TVector3 WDistCalc(Double_t d)
Double_t TrueDist(Double_t Point[])
Int_t StrawSignal(Int_t nsteps)
Double_t Signal(Double_t t, Double_t t0)
Double_t DiffLong(Double_t distcm)
double eps(TVector3 v1, TVector3 v2)
Double_t DistEle(Double_t tns)
Double_t DiffTran(Double_t distcm)
Double_t TimnsToDiscm(Double_t time)
void TInit(Double_t Mass, Double_t Momentum, Double_t InOut[])
void Polya(Double_t bpar)
Double_t FastRec(Double_t TrueDcm, Int_t Flag)
void TConst(Double_t Radius, Double_t pSTP, Double_t ArP, Double_t CO2P)
Double_t RRise(Double_t gamma)
Double_t PartToTime(Double_t Mass, Double_t Momentum, Double_t InOut[])