CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
AlignmentAlgorithm.h
Go to the documentation of this file.
1 /****************************************************************************
2 * Authors:
3 * Jan Kašpar (jan.kaspar@gmail.com)
4 ****************************************************************************/
5 
6 #ifndef CalibPPS_AlignmentRelative_AlignmentAlgorithm_h
7 #define CalibPPS_AlignmentRelative_AlignmentAlgorithm_h
8 
10 
17 
18 #include <string>
19 #include <map>
20 
21 class AlignmentTask;
22 class TDirectory;
23 
24 namespace edm {
25  class ParameterSet;
26 }
27 
32 protected:
33  unsigned int verbosity;
34 
37 
39  double singularLimit;
40 
41 public:
44 
47 
48  virtual ~AlignmentAlgorithm() {}
49 
50  virtual std::string getName() { return "Base"; }
51 
53  virtual bool hasErrorEstimate() = 0;
54 
56  virtual void begin(const CTPPSGeometry *geometryReal, const CTPPSGeometry *geometryMisaligned) = 0;
57 
59  virtual void feed(const HitCollection &, const LocalTrackFit &) = 0;
60 
62  virtual void saveDiagnostics(TDirectory *) = 0;
63 
65  virtual void analyze() = 0;
66 
70  virtual unsigned int solve(const std::vector<AlignmentConstraint> &,
71  std::map<unsigned int, AlignmentResult> &results,
72  TDirectory *dir = nullptr) = 0;
73 
75  virtual void end() = 0;
76 };
77 
78 #endif
AlignmentTask * task
the tasked to be completed
dictionary results
virtual bool hasErrorEstimate()=0
returns whether this algorithm is capable of estimating result uncertainties
Abstract parent for all (track-based) alignment algorithms.
Local (linear) track description (or a fit result). Uses global reference system. ...
Definition: LocalTrackFit.h:15
Represents an alignment task.
Definition: AlignmentTask.h:20
virtual void begin(const CTPPSGeometry *geometryReal, const CTPPSGeometry *geometryMisaligned)=0
prepare for processing
virtual std::string getName()
The manager class for TOTEM RP geometry.
Definition: CTPPSGeometry.h:30
double singularLimit
eigenvalues in (-singularLimit, singularLimit) are treated as singular
virtual void end()=0
cleans up after processing
virtual unsigned int solve(const std::vector< AlignmentConstraint > &, std::map< unsigned int, AlignmentResult > &results, TDirectory *dir=nullptr)=0
std::vector< Hit > HitCollection
Definition: HitCollection.h:35
virtual void analyze()=0
analyzes the data collected
virtual void feed(const HitCollection &, const LocalTrackFit &)=0
process one track
AlignmentAlgorithm()
dummy constructor (not to be used)
virtual void saveDiagnostics(TDirectory *)=0
saves diagnostic histograms/plots