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 
24 
25 #include <vector>
26 #include <utility>
27 #include <string>
28 
29 class AlignableTracker;
30 class AlignableMuon;
31 class AlignableExtras;
32 
34 class TrackingRecHit;
35 
36 namespace edm { class EventSetup; class ParameterSet; }
37 
39 {
40 public:
41 
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 
93  AlignableExtras *extras) {};
94 
97  virtual void beginRun(const edm::Run&, const edm::EventSetup&) {};
98 
102  virtual void startNewLoop() {};
103 
107  virtual void endOfLoop() {};
108 
113  virtual void endOfJob() = 0;
114 
115  /* /// called at begin of run */
116  /* virtual void beginRun(const edm::EventSetup &setup) {}; */
117 
118  /* /// called at end of run - order of arguments like in EDProducer etc. */
119  /* virtual void endRun(const EndRunInfo &runInfo, const edm::EventSetup &setup) {}; */
120 
121  /* /// called at begin of luminosity block (no lumi block info passed yet) */
122  /* virtual void beginLuminosityBlock(const edm::EventSetup &setup) {}; */
123 
124  /* /// called at end of luminosity block (no lumi block info passed yet) */
125  /* virtual void endLuminosityBlock(const edm::EventSetup &setup) {}; */
126 
128  const std::string& name() const { return name_;} // non-virtual since refering to private member
129 
130  private:
132 };
133 
134 #endif
const std::string & name() const
name of this calibration
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
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.
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37
virtual void beginOfJob(AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras)
Definition: Run.h:44