- Float_t counter=0;
-
- c0=0;c1=0;c2=0;
- while((c1*c1-4*c2*c0)<=0 && counter<1000)
- {
- //Choose which side to go...
- if(i>250 && i<750) s1=1;
- //if (gRandom->Rndm(1)>.5) s1=1;
- else s1=-1;
- //printf("s1:%d\n",s1);
- //Trial a y
- y=s1*i*gRandom->Rndm(Int_t(fiducial/50));
- //printf("Fiducial %f for omega:%f theta:%f phi:%f\n",fiducial,fOmega,fTheta,fPhi);
- Float_t alfa1=fTheta;
- Float_t theta1=fPhi;
- Float_t omega1=fOmega;
-
- //Solve the eq for a trial x
- c0=-TMath::Power(y*TMath::Cos(alfa1)*TMath::Cos(theta1),2)-TMath::Power(y*TMath::Sin(alfa1),2)+TMath::Power(l*TMath::Tan(omega1),2)+2*l*y*TMath::Cos(alfa1)*TMath::Sin(theta1)*TMath::Power(TMath::Tan(omega1),2)+TMath::Power(y*TMath::Cos(alfa1)*TMath::Sin(theta1)*TMath::Tan(omega1),2);
- c1=2*y*TMath::Cos(alfa1)*TMath::Sin(alfa1)-2*y*TMath::Cos(alfa1)*TMath::Power(TMath::Cos(theta1),2)*TMath::Sin(alfa1)+2*l*TMath::Sin(alfa1)*TMath::Sin(theta1)*TMath::Power(TMath::Tan(omega1),2)+2*y*TMath::Cos(alfa1)*TMath::Sin(alfa1)*TMath::Power(TMath::Sin(theta1),2)*TMath::Power(TMath::Tan(omega1),2);
- c2=-TMath::Power(TMath::Cos(alfa1),2)-TMath::Power(TMath::Cos(theta1)*TMath::Sin(alfa1),2)+TMath::Power(TMath::Sin(alfa1)*TMath::Sin(theta1)*TMath::Tan(omega1),2);
- //cout<<"Trial: y="<<y<<"c0="<<c0<<" c1="<<c1<<" c2="<<c2<<endl;
- //printf("Result:%f\n\n",c1*c1-4*c2*c0);
- //i+=.01;
- counter +=1;
- }
+ //if(phi<=TMath::Pi())
+ omega1=SnellAngle(omega);
+ theta1=SnellAngle(theta);
+ //omega1=SnellAngle(omega+cos(phi)*theta);
+ //if(phi>TMath::Pi())
+ //omega1=SnellAngle(omega+(1-2*(2*TMath::Pi()-phi)/(TMath::Pi()))*theta);
+
+
+ //Omega1->Fill(omega1,(float) 1);
+
+ a = h*(tan(omega1+theta1)+tan(omega1-theta1))/2;
+ b = h*tan(omega1);
+ e = sqrt(1 - (b*b)/(a*a));
+ c = a*e;
+ r = (a*(1-e*e))/(1+e*cos(e));
+ offset = h*(tan(omega1+theta1)-tan(omega1-theta1))/2;
+
+ x = b* sin(phi);
+ y = a* cos(phi) + offset;
+
+ rotx = x*cos(phiinc)-y*sin(phiinc);
+ roty = x*sin(phiinc)+y*cos(phiinc);
+
+ //x = h * 1/(tan(omega1)) * sin(phi+phiinc);
+ //y = x * 1/(tan(phi+phiinc));
+