CMS 3D CMS Logo

MuonResidualsAngleFitter.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignmentAlgorithms_MuonResidualsAngleFitter_H
2 #define Alignment_MuonAlignmentAlgorithms_MuonResidualsAngleFitter_H
3 
11 
13 public:
15 
16  enum { kResidual = 0, kXAngle, kYAngle, kNData };
17 
18  MuonResidualsAngleFitter(int residualsModel, int minHitsPerRegion, int useResiduals, bool weightAlignment = true)
19  : MuonResidualsFitter(residualsModel, minHitsPerRegion, useResiduals, weightAlignment) {}
20 
21  int type() const override { return MuonResidualsFitter::kAngleFitter; }
22 
23  int npar() override {
25  return kNPar - 1;
26  else if (residualsModel() == kPowerLawTails)
27  return kNPar;
28  else if (residualsModel() == kROOTVoigt)
29  return kNPar;
30  else
31  assert(false);
32  }
33  int ndata() override { return kNData; }
34 
35  bool fit(Alignable *ali) override;
36  double sumofweights() override { return numResiduals(); }
37  double plot(std::string name, TFileDirectory *dir, Alignable *ali) override;
38 
39 protected:
40  void inform(TMinuit *tMinuit) override;
41 };
42 
43 #endif // Alignment_MuonAlignmentAlgorithms_MuonResidualsAngleFitter_H
MuonResidualsAngleFitter(int residualsModel, int minHitsPerRegion, int useResiduals, bool weightAlignment=true)
double plot(std::string name, TFileDirectory *dir, Alignable *ali) override
tuple weightAlignment
Definition: align_cfg.py:30
bool fit(Alignable *ali) override
void inform(TMinuit *tMinuit) override