-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path#draw_laser_profile.C#
37 lines (33 loc) · 1.23 KB
/
#draw_laser_profile.C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Double_t laser_profile(Double_t *x, Double_t *par)
{
double a = TMath::Cos(par[4])*TMath::Cos(par[3]),
b = TMath::Sin(par[4]),
c = TMath::Cos(par[4])*TMath::Sin(par[3])/par[1],
d = (-TMath::Cos(par[4])*TMath::Sin(par[3])*par[0]+par[2]*TMath::Sin(par[4]))/par[1];
double gamma = TMath::Sqrt(a*a+b*b),
delta = TMath::ATan2(b,a);
double phi = ((TMath::ASin((c*(-x[0]+576)+d/gamma)-delta) + par[5])*TMath::RadToDeg())/11.25;
// double phimax = TMath::Cos(par[1]/par[2]) + par[5];
// if( phi > phimax ) return 0.;
return phi;
}
void draw_laser_profile()
{
// z0 -> par[0]
// Rc -> par[1]
// Rr -> par[2]
// theta -> par[3]
// beta -> par[4]
// off_phi -> par[5]
//double z0 = -5.125, Rc = 315.3, Rr = Rc + 294.8375, // rows
//double z0 = -5.125, Rc = 109.2, Rr = Rc + 27.35, // mm
double z0 = 581.125, Rc = 109.2, Rr = Rc + 27.35, // mm
theta = -3.0*TMath::DegToRad(), beta = -50.*TMath::DegToRad();
double off_phi = 0*TMath::DegToRad();
double zmin=0., zmax=576.; // mm
//double zmin=0., zmax=576.; // mm
TF1* f1 = new TF1("laser_profile_1",laser_profile,zmin,zmax,6);
f1->SetParameters(z0,Rc,Rr,theta,beta,off_phi);
f1->SetParNames("z0","Rc","Rr","theta","beta");
f1->Draw();
}