CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
98  virtual void startNewLoop() {};
99 
103  virtual void endOfLoop() {};
104 
109  virtual void endOfJob() = 0;
110 
111  /* /// called at begin of run */
112  /* virtual void beginRun(const edm::EventSetup &setup) {}; */
113 
114  /* /// called at end of run - order of arguments like in EDProducer etc. */
115  /* virtual void endRun(const EndRunInfo &runInfo, const edm::EventSetup &setup) {}; */
116 
117  /* /// called at begin of luminosity block (no lumi block info passed yet) */
118  /* virtual void beginLuminosityBlock(const edm::EventSetup &setup) {}; */
119 
120  /* /// called at end of luminosity block (no lumi block info passed yet) */
121  /* virtual void endLuminosityBlock(const edm::EventSetup &setup) {}; */
122 
124  const std::string& name() const { return name_;} // non-virtual since refering to private member
125 
126  private:
128 };
129 
130 #endif
virtual unsigned int numParameters() const =0
How many parameters does this calibration define?
tuple cfg
Definition: looper.py:237
IntegratedCalibrationBase(const edm::ParameterSet &cfg)
Values and their parameter index.
virtual bool setParameter(unsigned int index, double value)=0
const std::string & name() const
name of this calibration
virtual void endOfJob()=0
virtual double getParameterError(unsigned int index) const =0
define event information passed to algorithms
std::pair< Values, unsigned int > ValuesIndexPair
x- and y-values
AlignmentAlgorithmBase::EventInfo EventInfo
virtual ~IntegratedCalibrationBase()
Destructor.
std::pair< double, double > Values
virtual double getParameter(unsigned int index) const =0
virtual bool setParameterError(unsigned int index, double value)=0
virtual std::vector< Values > derivatives(const TrackingRecHit &hit, const TrajectoryStateOnSurface &tsos, const edm::EventSetup &setup, const EventInfo &eventInfo) const
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
virtual void beginOfJob(AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras)