- wireOffset is now 4 not 3. Phew. Gosh Golly. Change in Armory/ClassPW.h - Concomitant changes made to Armory/PC_Stepladder_Correction.h. In this particular version, a shift of 2 anodes in run*.sh has been replaced by an offset in z - The above needs to be worked out carefully. - The rho_vs_z fixes have NOT been corrected for. This version will likely yield nonsensical results, hence. To be fixed by a subsequent push that also cleans up the histogram plotting somewhat. *Read again* The sort uses rho from the 3 wireOffset cases in MakeVertex.C The code assumes wireOffset=4. Anywhere this matters, this version will break - caveat Emptor. Pushing here to plant a flag, but to also make sure the key changes are communicated across branches.
43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#include <TF1.h>
|
|
double model(double* x, double* p) {
|
|
double result = x[0];
|
|
double factor = 0.0;
|
|
double slope = 0.7;
|
|
if(TMath::Abs(x[0]) < 16.2) result=x[0]*slope;
|
|
else if(TMath::Abs(x[0]) < 49.8 ) result=x[0]*slope+TMath::Sign(1.0,x[0])*factor;
|
|
else if(TMath::Abs(x[0]) < 85.2 ) result=x[0]*slope+TMath::Sign(1.0,x[0])*factor*2;
|
|
else result=x[0]*slope+TMath::Sign(1.0,x[0])*factor*3;
|
|
return result;
|
|
}
|
|
|
|
double model_invert(double *y, double *q) {
|
|
double result=y[0];
|
|
double slope = 0.7;
|
|
double factor = 40.0;
|
|
if(TMath::Abs(y[0]) < 16.2/slope) result = y[0]/slope;
|
|
else if(TMath::Abs(y[0]) < 49.8/slope ) result=y[0]/slope-TMath::Sign(1.0,y[0])*factor;
|
|
else if(TMath::Abs(y[0]) < 85.2/slope ) result=y[0]/slope-TMath::Sign(1.0,y[0])*factor*2;
|
|
else result=y[0]/slope-TMath::Sign(1.0,y[0])*factor*3;
|
|
return result+40;
|
|
}
|
|
|
|
/*void testmodel() {
|
|
TF1 eqline("x","x",-200,200);
|
|
eqline.Draw("");
|
|
eqline.SetLineStyle(kDashed);
|
|
|
|
//TF1 f1("model",model,-200,200,2);
|
|
TF1 f1("model_inv",model_invert,-200,200,2);
|
|
eqline.SetNpx(10000);
|
|
f1.SetNpx(10000);
|
|
std::vector<double> pars = {0.0,1.};
|
|
f1.SetParameters(pars.data());
|
|
f1.SetLineColor(kGreen+2);
|
|
f1.SetLineStyle(kLine);
|
|
f1.Draw("L SAME");
|
|
|
|
gPad->Modified(); gPad->Update();
|
|
while(gPad->WaitPrimitive());
|
|
|
|
}*/
|