CMS 3D CMS Logo

IntegratedCalibrationBase.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignmentAlgorithm_IntegratedCalibrationBase_h
2 #define Alignment_CommonAlignmentAlgorithm_IntegratedCalibrationBase_h
3 
23 
24 #include <vector>
25 #include <utility>
26 #include <string>
27 
28 class AlignableTracker;
29 class AlignableMuon;
30 class AlignableExtras;
31 
33 class TrackingRecHit;
34 
35 namespace edm {
36  class EventSetup;
37  class ParameterSet;
38 } // namespace edm
39 
41 public:
43  typedef std::pair<double, double> Values;
44  typedef std::pair<Values, unsigned int> ValuesIndexPair;
45 
48 
51 
53  virtual unsigned int numParameters() const = 0;
54 
58  virtual std::vector<Values> derivatives(const TrackingRecHit &hit,
59  const TrajectoryStateOnSurface &tsos,
60  const edm::EventSetup &setup,
61  const EventInfo &eventInfo) const;
62 
67  virtual unsigned int derivatives(std::vector<ValuesIndexPair> &outDerivInds,
68  const TrackingRecHit &hit,
69  const TrajectoryStateOnSurface &tsos,
70  const edm::EventSetup &setup,
71  const EventInfo &eventInfo) const = 0;
72 
75  virtual bool setParameter(unsigned int index, double value) = 0;
76 
79  virtual bool setParameterError(unsigned int index, double value) = 0;
80 
83  virtual double getParameter(unsigned int index) const = 0;
84 
87  virtual double getParameterError(unsigned int index) const = 0;
88 
92 
95  virtual void beginRun(const edm::Run &, const edm::EventSetup &) {}
96 
100  virtual void startNewLoop() {}
101 
105  virtual void endOfLoop() {}
106 
111  virtual void endOfJob() = 0;
112 
113  /* /// called at begin of run */
114  /* virtual void beginRun(const edm::EventSetup &setup) {}; */
115 
116  /* /// called at end of run - order of arguments like in EDProducer etc. */
117  /* virtual void endRun(const EndRunInfo &runInfo, const edm::EventSetup &setup) {}; */
118 
119  /* /// called at begin of luminosity block (no lumi block info passed yet) */
120  /* virtual void beginLuminosityBlock(const edm::EventSetup &setup) {}; */
121 
122  /* /// called at end of luminosity block (no lumi block info passed yet) */
123  /* virtual void endLuminosityBlock(const edm::EventSetup &setup) {}; */
124 
126  const std::string &name() const { return name_; } // non-virtual since refering to private member
127 
128 private:
130 };
131 
132 #endif
virtual std::vector< Values > derivatives(const TrackingRecHit &hit, const TrajectoryStateOnSurface &tsos, const edm::EventSetup &setup, const EventInfo &eventInfo) const
virtual unsigned int numParameters() const =0
How many parameters does this calibration define?
IntegratedCalibrationBase(const edm::ParameterSet &cfg)
Values and their parameter index.
virtual bool setParameter(unsigned int index, double value)=0
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
virtual void endOfJob()=0
virtual double getParameterError(unsigned int index) const =0
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
define event information passed to algorithms
std::pair< Values, unsigned int > ValuesIndexPair
x- and y-values
AlignmentAlgorithmBase::EventInfo EventInfo
Definition: value.py:1
virtual ~IntegratedCalibrationBase()
Destructor.
std::pair< double, double > Values
HLT enums.
virtual double getParameter(unsigned int index) const =0
virtual bool setParameterError(unsigned int index, double value)=0
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
Definition: AlignableMuon.h:38
const std::string & name() const
name of this calibration
virtual void beginOfJob(AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras)
Definition: Run.h:45