19 double MuonResiduals6DOFrphiFitter_residual(
double delta_x,
double delta_y,
double delta_z,
double delta_phix,
double delta_phiy,
double delta_phiz,
double track_x,
double track_y,
double track_dxdz,
double track_dydz,
double R,
double alpha,
double resslope) {
20 return delta_x - (track_x/R - 3.*
pow(track_x/R, 3)) * delta_y - track_dxdz * delta_z - track_y * track_dxdz * delta_phix + track_x * track_dxdz * delta_phiy - track_y * delta_phiz + resslope * alpha;
23 double MuonResiduals6DOFrphiFitter_resslope(
double delta_x,
double delta_y,
double delta_z,
double delta_phix,
double delta_phiy,
double delta_phiz,
double track_x,
double track_y,
double track_dxdz,
double track_dydz,
double R) {
24 return -track_dxdz/2./R * delta_y + (track_x/R - track_dxdz * track_dydz) * delta_phix + (1. + track_dxdz * track_dxdz) * delta_phiy - track_dydz * delta_phiz;
40 Double_t
MuonResiduals6DOFrphiFitter_residual_trackx_TF1(Double_t *xvec, Double_t *
par) {
return 10.*
MuonResiduals6DOFrphiFitter_residual(par[0], par[1], par[2], par[3], par[4], par[5], xvec[0], par[7], par[8], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(xvec[0], par[7]), par[10], par[11]); }
41 Double_t
MuonResiduals6DOFrphiFitter_residual_tracky_TF1(Double_t *xvec, Double_t *
par) {
return 10.*
MuonResiduals6DOFrphiFitter_residual(par[0], par[1], par[2], par[3], par[4], par[5], par[6], xvec[0], par[8], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], xvec[0]), par[10], par[11]); }
42 Double_t
MuonResiduals6DOFrphiFitter_residual_trackdxdz_TF1(Double_t *xvec, Double_t *
par) {
return 10.*
MuonResiduals6DOFrphiFitter_residual(par[0], par[1], par[2], par[3], par[4], par[5], par[6], par[7], xvec[0], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], par[7]), par[10], par[11]); }
43 Double_t
MuonResiduals6DOFrphiFitter_residual_trackdydz_TF1(Double_t *xvec, Double_t *
par) {
return 10.*
MuonResiduals6DOFrphiFitter_residual(par[0], par[1], par[2], par[3], par[4], par[5], par[6], par[7], par[8], xvec[0],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], par[7]), par[10], par[11]); }
45 Double_t
MuonResiduals6DOFrphiFitter_resslope_trackx_TF1(Double_t *xvec, Double_t *
par) {
return 1000.*
MuonResiduals6DOFrphiFitter_resslope(par[0], par[1], par[2], par[3], par[4], par[5], xvec[0], par[7], par[8], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(xvec[0], par[7])); }
46 Double_t
MuonResiduals6DOFrphiFitter_resslope_tracky_TF1(Double_t *xvec, Double_t *
par) {
return 1000.*
MuonResiduals6DOFrphiFitter_resslope(par[0], par[1], par[2], par[3], par[4], par[5], par[6], xvec[0], par[8], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], xvec[0])); }
47 Double_t
MuonResiduals6DOFrphiFitter_resslope_trackdxdz_TF1(Double_t *xvec, Double_t *
par) {
return 1000.*
MuonResiduals6DOFrphiFitter_resslope(par[0], par[1], par[2], par[3], par[4], par[5], par[6], par[7], xvec[0], par[9],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], par[7])); }
48 Double_t
MuonResiduals6DOFrphiFitter_resslope_trackdydz_TF1(Double_t *xvec, Double_t *
par) {
return 1000.*
MuonResiduals6DOFrphiFitter_resslope(par[0], par[1], par[2], par[3], par[4], par[5], par[6], par[7], par[8], xvec[0],
MuonResiduals6DOFrphiFitter_effectiveR(par[6], par[7])); }
76 double residpeak =
MuonResiduals6DOFrphiFitter_residual(alignx, aligny, alignz, alignphix, alignphiy, alignphiz, positionX, positionY, angleX, angleY,
MuonResiduals6DOFrphiFitter_effectiveR(positionX, positionY), alpha, resslope);
77 double resslopepeak =
MuonResiduals6DOFrphiFitter_resslope(alignx, aligny, alignz, alignphix, alignphiy, alignphiz, positionX, positionY, angleX, angleY,
MuonResiduals6DOFrphiFitter_effectiveR(positionX, positionY));
100 else { assert(
false); }
113 if (TMath::Prob(redchi2*6, 6) < 0.99) {
130 double resid_mean = 0;
131 double resslope_mean = 0;
132 double resid_stdev = 0.5;
133 double resslope_stdev = 0.005;
134 double alpha_estimate = 0;
136 std::vector<int>
num;
137 std::vector<std::string>
name;
138 std::vector<double> start;
139 std::vector<double>
step;
140 std::vector<double> low;
141 std::vector<double> high;
144 num.push_back(
kAlignX); name.push_back(std::string(
"AlignX")); start.push_back(0.); step.push_back(0.1); low.push_back(0.); high.push_back(0.);
146 num.push_back(
kAlignX); name.push_back(std::string(
"AlignX")); start.push_back(resid_mean); step.push_back(0.1); low.push_back(0.); high.push_back(0.);
148 num.push_back(
kAlignY); name.push_back(std::string(
"AlignY")); start.push_back(0.); step.push_back(0.1); low.push_back(0.); high.push_back(0.);
149 num.push_back(
kAlignZ); name.push_back(std::string(
"AlignZ")); start.push_back(0.); step.push_back(0.1); low.push_back(0.); high.push_back(0.);
150 num.push_back(
kAlignPhiX); name.push_back(std::string(
"AlignPhiX")); start.push_back(0.); step.push_back(0.001); low.push_back(0.); high.push_back(0.);
152 num.push_back(
kAlignPhiY); name.push_back(std::string(
"AlignPhiY")); start.push_back(0.); step.push_back(0.001); low.push_back(0.); high.push_back(0.);
154 num.push_back(
kAlignPhiY); name.push_back(std::string(
"AlignPhiY")); start.push_back(resslope_mean); step.push_back(0.001); low.push_back(0.); high.push_back(0.);
156 num.push_back(
kAlignPhiZ); name.push_back(std::string(
"AlignPhiZ")); start.push_back(0.); step.push_back(0.001); low.push_back(0.); high.push_back(0.);
157 num.push_back(
kResidSigma); name.push_back(std::string(
"ResidSigma")); start.push_back(resid_stdev); step.push_back(0.01*resid_stdev); low.push_back(0.); high.push_back(0.);
158 num.push_back(
kResSlopeSigma); name.push_back(std::string(
"ResSlopeSigma")); start.push_back(resslope_stdev); step.push_back(0.01*resslope_stdev); low.push_back(0.); high.push_back(0.);
159 num.push_back(
kAlpha); name.push_back(std::string(
"Alpha")); start.push_back(alpha_estimate); step.push_back(0.01*resslope_stdev); low.push_back(0.); high.push_back(0.);
161 num.push_back(
kResidGamma); name.push_back(std::string(
"ResidGamma")); start.push_back(0.1*resid_stdev); step.push_back(0.01*resid_stdev); low.push_back(0.); high.push_back(0.);
162 num.push_back(
kResSlopeGamma); name.push_back(std::string(
"ResSlopeGamma")); start.push_back(0.1*resslope_stdev); step.push_back(0.01*resslope_stdev); low.push_back(0.); high.push_back(0.);
175 std::stringstream name_residual, name_resslope, name_residual_raw, name_resslope_raw, name_residual_cut, name_alpha;
176 std::stringstream name_residual_trackx, name_resslope_trackx;
177 std::stringstream name_residual_tracky, name_resslope_tracky;
178 std::stringstream name_residual_trackdxdz, name_resslope_trackdxdz;
179 std::stringstream name_residual_trackdydz, name_resslope_trackdydz;
181 name_residual << name <<
"_residual";
182 name_resslope << name <<
"_resslope";
183 name_residual_raw << name <<
"_residual_raw";
184 name_resslope_raw << name <<
"_resslope_raw";
185 name_residual_cut << name <<
"_residual_cut";
186 name_alpha << name <<
"_alpha";
187 name_residual_trackx << name <<
"_residual_trackx";
188 name_resslope_trackx << name <<
"_resslope_trackx";
189 name_residual_tracky << name <<
"_residual_tracky";
190 name_resslope_tracky << name <<
"_resslope_tracky";
191 name_residual_trackdxdz << name <<
"_residual_trackdxdz";
192 name_resslope_trackdxdz << name <<
"_resslope_trackdxdz";
193 name_residual_trackdydz << name <<
"_residual_trackdydz";
194 name_resslope_trackdydz << name <<
"_resslope_trackdydz";
198 double min_residual = -100.;
double max_residual = 100.;
199 double min_resslope = -100.;
double max_resslope = 100.;
200 double min_trackx = -width/2.;
double max_trackx = width/2.;
201 double min_tracky = -length/2.;
double max_tracky = length/2.;
202 double min_trackdxdz = -1.5;
double max_trackdxdz = 1.5;
203 double min_trackdydz = -1.5;
double max_trackdydz = 1.5;
205 TH1F *hist_residual = dir->
make<TH1F>(name_residual.str().c_str(),
"", 100, min_residual, max_residual);
206 TH1F *hist_resslope = dir->
make<TH1F>(name_resslope.str().c_str(),
"", 100, min_resslope, max_resslope);
207 TH1F *hist_residual_raw = dir->
make<TH1F>(name_residual_raw.str().c_str(),
"", 100, min_residual, max_residual);
208 TH1F *hist_resslope_raw = dir->
make<TH1F>(name_resslope_raw.str().c_str(),
"", 100, min_resslope, max_resslope);
209 TH1F *hist_residual_cut = dir->
make<TH1F>(name_residual_cut.str().c_str(),
"", 100, min_residual, max_residual);
210 TH2F *hist_alpha = dir->
make<TH2F>(name_alpha.str().c_str(),
"", 40, min_resslope, max_resslope, 40, -20., 20.);
211 TProfile *hist_residual_trackx = dir->
make<TProfile>(name_residual_trackx.str().c_str(),
"", 100, min_trackx, max_trackx, min_residual, max_residual);
212 TProfile *hist_resslope_trackx = dir->
make<TProfile>(name_resslope_trackx.str().c_str(),
"", 100, min_trackx, max_trackx, min_resslope, max_resslope);
213 TProfile *hist_residual_tracky = dir->
make<TProfile>(name_residual_tracky.str().c_str(),
"", 100, min_tracky, max_tracky, min_residual, max_residual);
214 TProfile *hist_resslope_tracky = dir->
make<TProfile>(name_resslope_tracky.str().c_str(),
"", 100, min_tracky, max_tracky, min_resslope, max_resslope);
215 TProfile *hist_residual_trackdxdz = dir->
make<TProfile>(name_residual_trackdxdz.str().c_str(),
"", 500, min_trackdxdz, max_trackdxdz, min_residual, max_residual);
216 TProfile *hist_resslope_trackdxdz = dir->
make<TProfile>(name_resslope_trackdxdz.str().c_str(),
"", 500, min_trackdxdz, max_trackdxdz, min_resslope, max_resslope);
217 TProfile *hist_residual_trackdydz = dir->
make<TProfile>(name_residual_trackdydz.str().c_str(),
"", 500, min_trackdydz, max_trackdydz, min_residual, max_residual);
218 TProfile *hist_resslope_trackdydz = dir->
make<TProfile>(name_resslope_trackdydz.str().c_str(),
"", 500, min_trackdydz, max_trackdydz, min_resslope, max_resslope);
220 hist_residual_trackx->SetAxisRange(-10., 10.,
"Y");
221 hist_resslope_trackx->SetAxisRange(-10., 10.,
"Y");
222 hist_residual_tracky->SetAxisRange(-10., 10.,
"Y");
223 hist_resslope_tracky->SetAxisRange(-10., 10.,
"Y");
224 hist_residual_trackdxdz->SetAxisRange(-10., 10.,
"Y");
225 hist_resslope_trackdxdz->SetAxisRange(-10., 10.,
"Y");
226 hist_residual_trackdydz->SetAxisRange(-10., 10.,
"Y");
227 hist_resslope_trackdydz->SetAxisRange(-10., 10.,
"Y");
229 name_residual <<
"_fit";
230 name_resslope <<
"_fit";
231 name_alpha <<
"_fit";
232 name_residual_trackx <<
"_fit";
233 name_resslope_trackx <<
"_fit";
234 name_residual_tracky <<
"_fit";
235 name_resslope_tracky <<
"_fit";
236 name_residual_trackdxdz <<
"_fit";
237 name_resslope_trackdxdz <<
"_fit";
238 name_residual_trackdydz <<
"_fit";
239 name_resslope_trackdydz <<
"_fit";
241 TF1 *fit_residual =
NULL;
242 TF1 *fit_resslope =
NULL;
267 else { assert(
false); }
269 fit_residual->SetLineColor(2); fit_residual->SetLineWidth(2);
270 fit_resslope->SetLineColor(2); fit_resslope->SetLineWidth(2);
271 fit_residual->Write();
272 fit_resslope->Write();
274 TF1 *fit_alpha =
new TF1(name_alpha.str().c_str(),
"[0] + x*[1]", min_resslope, max_resslope);
276 fit_alpha->SetLineColor(2); fit_alpha->SetLineWidth(2);
279 TProfile *fit_residual_trackx = dir->
make<TProfile>(name_residual_trackx.str().c_str(),
"", 100, min_trackx, max_trackx);
280 TProfile *fit_resslope_trackx = dir->
make<TProfile>(name_resslope_trackx.str().c_str(),
"", 100, min_trackx, max_trackx);
281 TProfile *fit_residual_tracky = dir->
make<TProfile>(name_residual_tracky.str().c_str(),
"", 100, min_tracky, max_tracky);
282 TProfile *fit_resslope_tracky = dir->
make<TProfile>(name_resslope_tracky.str().c_str(),
"", 100, min_tracky, max_tracky);
283 TProfile *fit_residual_trackdxdz = dir->
make<TProfile>(name_residual_trackdxdz.str().c_str(),
"", 500, min_trackdxdz, max_trackdxdz);
284 TProfile *fit_resslope_trackdxdz = dir->
make<TProfile>(name_resslope_trackdxdz.str().c_str(),
"", 500, min_trackdxdz, max_trackdxdz);
285 TProfile *fit_residual_trackdydz = dir->
make<TProfile>(name_residual_trackdydz.str().c_str(),
"", 500, min_trackdydz, max_trackdydz);
286 TProfile *fit_resslope_trackdydz = dir->
make<TProfile>(name_resslope_trackdydz.str().c_str(),
"", 500, min_trackdydz, max_trackdydz);
288 fit_residual_trackx->SetLineColor(2); fit_residual_trackx->SetLineWidth(2);
289 fit_resslope_trackx->SetLineColor(2); fit_resslope_trackx->SetLineWidth(2);
290 fit_residual_tracky->SetLineColor(2); fit_residual_tracky->SetLineWidth(2);
291 fit_resslope_tracky->SetLineColor(2); fit_resslope_tracky->SetLineWidth(2);
292 fit_residual_trackdxdz->SetLineColor(2); fit_residual_trackdxdz->SetLineWidth(2);
293 fit_resslope_trackdxdz->SetLineColor(2); fit_resslope_trackdxdz->SetLineWidth(2);
294 fit_residual_trackdydz->SetLineColor(2); fit_residual_trackdydz->SetLineWidth(2);
295 fit_resslope_trackdydz->SetLineColor(2); fit_resslope_trackdydz->SetLineWidth(2);
297 name_residual_trackx <<
"line";
298 name_resslope_trackx <<
"line";
299 name_residual_tracky <<
"line";
300 name_resslope_tracky <<
"line";
301 name_residual_trackdxdz <<
"line";
302 name_resslope_trackdxdz <<
"line";
303 name_residual_trackdydz <<
"line";
304 name_resslope_trackdydz <<
"line";
315 double sum_resslope = 0.;
316 double sum_trackx = 0.;
317 double sum_tracky = 0.;
318 double sum_trackdxdz = 0.;
319 double sum_trackdydz = 0.;
327 double weight = 1./redchi2;
331 sum_resslope += weight * resslope;
332 sum_trackx += weight * positionX;
333 sum_tracky += weight * positionY;
334 sum_trackdxdz += weight * angleX;
335 sum_trackdydz += weight * angleY;
344 double fitparameters[12];
351 fitparameters[6] = mean_trackx;
352 fitparameters[7] = mean_tracky;
353 fitparameters[8] = mean_trackdxdz;
354 fitparameters[9] = mean_trackdydz;
356 fitparameters[11] = mean_resslope;
358 fitline_residual_trackx->SetParameters(fitparameters);
359 fitline_resslope_trackx->SetParameters(fitparameters);
360 fitline_residual_tracky->SetParameters(fitparameters);
361 fitline_resslope_tracky->SetParameters(fitparameters);
362 fitline_residual_trackdxdz->SetParameters(fitparameters);
363 fitline_resslope_trackdxdz->SetParameters(fitparameters);
364 fitline_residual_trackdydz->SetParameters(fitparameters);
365 fitline_resslope_trackdydz->SetParameters(fitparameters);
367 fitline_residual_trackx->SetLineColor(2); fitline_residual_trackx->SetLineWidth(2);
368 fitline_resslope_trackx->SetLineColor(2); fitline_resslope_trackx->SetLineWidth(2);
369 fitline_residual_tracky->SetLineColor(2); fitline_residual_tracky->SetLineWidth(2);
370 fitline_resslope_tracky->SetLineColor(2); fitline_resslope_tracky->SetLineWidth(2);
371 fitline_residual_trackdxdz->SetLineColor(2); fitline_residual_trackdxdz->SetLineWidth(2);
372 fitline_resslope_trackdxdz->SetLineColor(2); fitline_resslope_trackdxdz->SetLineWidth(2);
373 fitline_residual_trackdydz->SetLineColor(2); fitline_residual_trackdydz->SetLineWidth(2);
374 fitline_resslope_trackdydz->SetLineColor(2); fitline_resslope_trackdydz->SetLineWidth(2);
376 fitline_residual_trackx->Write();
377 fitline_resslope_trackx->Write();
378 fitline_residual_tracky->Write();
379 fitline_resslope_tracky->Write();
380 fitline_residual_trackdxdz->Write();
381 fitline_resslope_trackdxdz->Write();
382 fitline_residual_trackdydz->Write();
383 fitline_resslope_trackdydz->Write();
393 double weight = 1./redchi2;
397 hist_alpha->Fill(1000.*resslope, 10.*resid);
399 double geom_resid =
MuonResiduals6DOFrphiFitter_residual(
value(
kAlignX),
value(
kAlignY),
value(
kAlignZ),
value(
kAlignPhiX),
value(
kAlignPhiY),
value(
kAlignPhiZ), positionX, positionY, angleX, angleY,
MuonResiduals6DOFrphiFitter_effectiveR(positionX, positionY),
value(
kAlpha), resslope);
400 hist_residual->Fill(10.*(resid - geom_resid +
value(
kAlignX)), weight);
401 hist_residual_trackx->Fill(positionX, 10.*resid, weight);
402 hist_residual_tracky->Fill(positionY, 10.*resid, weight);
403 hist_residual_trackdxdz->Fill(angleX, 10.*resid, weight);
404 hist_residual_trackdydz->Fill(angleY, 10.*resid, weight);
405 fit_residual_trackx->Fill(positionX, 10.*geom_resid, weight);
406 fit_residual_tracky->Fill(positionY, 10.*geom_resid, weight);
407 fit_residual_trackdxdz->Fill(angleX, 10.*geom_resid, weight);
408 fit_residual_trackdydz->Fill(angleY, 10.*geom_resid, weight);
410 double geom_resslope =
MuonResiduals6DOFrphiFitter_resslope(
value(
kAlignX),
value(
kAlignY),
value(
kAlignZ),
value(
kAlignPhiX),
value(
kAlignPhiY),
value(
kAlignPhiZ), positionX, positionY, angleX, angleY,
MuonResiduals6DOFrphiFitter_effectiveR(positionX, positionY));
411 hist_resslope->Fill(1000.*(resslope - geom_resslope +
value(
kAlignPhiY)), weight);
412 hist_resslope_trackx->Fill(positionX, 1000.*resslope, weight);
413 hist_resslope_tracky->Fill(positionY, 1000.*resslope, weight);
414 hist_resslope_trackdxdz->Fill(angleX, 1000.*resslope, weight);
415 hist_resslope_trackdydz->Fill(angleY, 1000.*resslope, weight);
416 fit_resslope_trackx->Fill(positionX, 1000.*geom_resslope, weight);
417 fit_resslope_tracky->Fill(positionY, 1000.*geom_resslope, weight);
418 fit_resslope_trackdxdz->Fill(angleX, 1000.*geom_resslope, weight);
419 fit_resslope_trackdydz->Fill(angleY, 1000.*geom_resslope, weight);
422 hist_residual_raw->Fill(10.*resid);
423 hist_resslope_raw->Fill(1000.*resslope);
424 if (fabs(resslope) < 0.005) hist_residual_cut->Fill(10.*resid);
429 for (
int i = 1;
i <= hist_residual->GetNbinsX();
i++) {
430 double xi = hist_residual->GetBinCenter(
i);
431 double yi = hist_residual->GetBinContent(
i);
432 double yerri = hist_residual->GetBinError(
i);
433 double yth = fit_residual->Eval(xi);
435 chi2 +=
pow((yth - yi)/yerri, 2);
439 for (
int i = 1;
i <= hist_resslope->GetNbinsX();
i++) {
440 double xi = hist_resslope->GetBinCenter(
i);
441 double yi = hist_resslope->GetBinContent(
i);
442 double yerri = hist_resslope->GetBinError(
i);
443 double yth = fit_resslope->Eval(xi);
445 chi2 +=
pow((yth - yi)/yerri, 2);
451 return (ndof > 0. ? chi2 / ndof : -1.);
align::Scalar width() const
double MuonResidualsFitter_logGaussPowerTails(double residual, double center, double sigma)
Double_t MuonResiduals6DOFrphiFitter_resslope_trackdxdz_TF1(Double_t *xvec, Double_t *par)
static double MuonResiduals6DOFrphiFitter_R
Double_t MuonResidualsFitter_powerLawTails_TF1(Double_t *xvec, Double_t *par)
Double_t MuonResiduals6DOFrphiFitter_residual_trackdxdz_TF1(Double_t *xvec, Double_t *par)
const CSCGeometry * m_cscGeometry
MuonResidualsFitter * fitter()
Double_t MuonResiduals6DOFrphiFitter_residual_tracky_TF1(Double_t *xvec, Double_t *par)
int residualsModel() const
void inform(TMinuit *tMinuit)
bool dofit(void(*fcn)(int &, double *, double &, double *, int), std::vector< int > &parNum, std::vector< std::string > &parName, std::vector< double > &start, std::vector< double > &step, std::vector< double > &low, std::vector< double > &high)
double MuonResidualsFitter_logROOTVoigt(double residual, double center, double sigma, double gamma)
double MuonResiduals6DOFrphiFitter_resslope(double delta_x, double delta_y, double delta_z, double delta_phix, double delta_phiy, double delta_phiz, double track_x, double track_y, double track_dxdz, double track_dydz, double R)
double MuonResiduals6DOFrphiFitter_effectiveR(double x, double y)
static double MuonResiduals6DOFrphiFitter_number_of_hits
uint32_t rawId() const
get the raw id
Double_t MuonResiduals6DOFrphiFitter_resslope_trackdydz_TF1(Double_t *xvec, Double_t *par)
static bool MuonResiduals6DOFrphiFitter_weightAlignment
void MuonResiduals6DOFrphiFitter_FCN(int &npar, double *gin, double &fval, double *par, int iflag)
double MuonResiduals6DOFrphiFitter_residual(double delta_x, double delta_y, double delta_z, double delta_phix, double delta_phiy, double delta_phiz, double track_x, double track_y, double track_dxdz, double track_dydz, double R, double alpha, double resslope)
double MuonResidualsFitter_logPowerLawTails(double residual, double center, double sigma, double gamma)
Double_t MuonResidualsFitter_GaussPowerTails_TF1(Double_t *xvec, Double_t *par)
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
static TMinuit * MuonResiduals6DOFrphiFitter_TMinuit
Double_t MuonResidualsFitter_pureGaussian_TF1(Double_t *xvec, Double_t *par)
align::Scalar length() const
static double MuonResiduals6DOFrphiFitter_sum_of_weights
std::vector< double * >::const_iterator residuals_end() const
Double_t MuonResiduals6DOFrphiFitter_resslope_trackx_TF1(Double_t *xvec, Double_t *par)
Double_t MuonResiduals6DOFrphiFitter_residual_trackdydz_TF1(Double_t *xvec, Double_t *par)
Double_t MuonResiduals6DOFrphiFitter_resslope_tracky_TF1(Double_t *xvec, Double_t *par)
T * make() const
make new ROOT object
const PositionType & globalPosition() const
Return the global position of the object.
double plot(std::string name, TFileDirectory *dir, Alignable *ali)
const CSCGeometry * MuonResiduals6DOFrphiFitter_cscGeometry
Double_t MuonResiduals6DOFrphiFitter_residual_trackx_TF1(Double_t *xvec, Double_t *par)
Double_t MuonResidualsFitter_ROOTVoigt_TF1(Double_t *xvec, Double_t *par)
std::vector< double * >::const_iterator residuals_begin() const
double MuonResidualsFitter_logPureGaussian(double residual, double center, double sigma)
const DetId & geomDetId() const
Power< A, B >::type pow(const A &a, const B &b)
static CSCDetId MuonResiduals6DOFrphiFitter_cscDetId
const double par[8 *NPar][4]