CMS 3D CMS Logo

PedeLabelerBase.h
Go to the documentation of this file.
1 #ifndef Alignment_MillePedeAlignmentAlgorithm_PedeLabelerBase_h
2 #define Alignment_MillePedeAlignmentAlgorithm_PedeLabelerBase_h
3 
16 
21 
23 
24 #include <vector>
25 
26 class Alignable;
27 class AlignableTracker;
28 class AlignableMuon;
29 class AlignableExtras;
31 
32 /***************************************
33 ****************************************/
35 {
36  public:
37 
41 
43  {
44  public:
46  AlignableMuon *aliMuon,
47  AlignableExtras *extras)
48  :aliTracker_(aliTracker), aliMuon_(aliMuon), aliExtras_(extras) {}
52  };
53 
55  PedeLabelerBase(const TopLevelAlignables& alignables,
56  const edm::ParameterSet & config);
57  virtual ~PedeLabelerBase() {}
59  virtual void addCalibrations(const std::vector<IntegratedCalibrationBase*> &iCals);
60 
64  virtual unsigned int alignableLabel(Alignable *alignable) const = 0;
69  virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
70  unsigned int param,
71  unsigned int instance) const = 0;
72  virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const = 0;
74  virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const = 0;
77  virtual unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
79  const TrajectoryStateOnSurface &tsos) const = 0;
81  virtual bool hasSplitParameters(Alignable *alignable) const = 0;
83  virtual unsigned int numberOfParameterInstances(Alignable *alignable,
84  int param=-1) const = 0;
86  virtual unsigned int maxNumberOfParameterInstances() const = 0;
88  unsigned int parameterInstanceOffset() const { return theParamInstanceOffset; }
89 
91  virtual unsigned int paramNumFromLabel(unsigned int paramLabel) const = 0;
93  virtual unsigned int alignableLabelFromLabel(unsigned int label) const = 0;
96  virtual Alignable* alignableFromLabel(unsigned int label) const = 0;
99  virtual unsigned int lasBeamIdFromLabel(unsigned int label) const = 0;
102  virtual std::pair<IntegratedCalibrationBase*, unsigned int>
103  calibrationParamFromLabel(unsigned int label) const;
104 
105  virtual const RunRange& runRangeFromLabel(unsigned int label) const {
106  return theOpenRunRange;
107  }
110  virtual unsigned int firstFreeLabel() const;
111 
113  virtual unsigned int calibrationLabel(const IntegratedCalibrationBase* calib,
114  unsigned int paramNum) const;
118 
119  static const unsigned int theMaxNumParam;
120  static const unsigned int theParamInstanceOffset;
121  static const unsigned int theMinLabel;
122 
123  protected:
126  virtual unsigned int firstNonAlignableLabel() const;
127 
130 
132 
133  private:
134 
137 
139  std::vector<std::pair<IntegratedCalibrationBase*, unsigned int> > theCalibrationLabels;
140 
141 };
142 
143 #endif
virtual const RunRange & runRangeFromLabel(unsigned int label) const
const TopLevelAlignables topLevelAlignables_
std::vector< std::pair< IntegratedCalibrationBase *, unsigned int > > theCalibrationLabels
pairs of calibrations and their first label
static PFTauRenderPlugin instance
std::vector< RunRange > RunRanges
Definition: Utilities.h:40
virtual ~PedeLabelerBase()
virtual bool hasSplitParameters(Alignable *alignable) const =0
returns true if the alignable has parameters that are split into various bins
static const unsigned int theMinLabel
virtual unsigned int firstNonAlignableLabel() const
Definition: config.py:1
virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const =0
virtual unsigned int alignableLabelFromLabel(unsigned int label) const =0
alignable label from parameter label (works also for alignable label...)
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
virtual unsigned int maxNumberOfParameterInstances() const =0
returns the maximum number of instances for any parameter of an Alignable*
virtual unsigned int paramNumFromLabel(unsigned int paramLabel) const =0
parameter number, 0 <= .. < theMaxNumParam, belonging to unique parameter label
const RunRange theOpenRunRange
define event information passed to algorithms
static const unsigned int theMaxNumParam
PedeLabelerBase(const TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
virtual unsigned int lasBeamIdFromLabel(unsigned int label) const =0
virtual unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const =0
returns the number of instances for a given parameter
align::RunNumber RunNumber
unsigned int parameterInstanceOffset() const
offset in labels between consecutive parameter instances of Alignable*s
TopLevelAlignables(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras)
const AlignableExtras * alignableExtras() const
virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const =0
returns the label for a given alignable parameter number combination
Allows conversion between type and name, and vice-versa.
const AlignableTracker * alignableTracker() const
virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const =0
virtual Alignable * alignableFromLabel(unsigned int label) const =0
std::pair< RunNumber, RunNumber > RunRange
Definition: Utilities.h:39
align::RunRange RunRange
const AlignableObjectId alignableObjectId_
virtual unsigned int alignableLabel(Alignable *alignable) const =0
static const unsigned int theParamInstanceOffset
virtual unsigned int calibrationLabel(const IntegratedCalibrationBase *calib, unsigned int paramNum) const
label for parameter &#39;paramNum&#39; (counted from 0) of an integrated calibration
virtual unsigned int firstFreeLabel() const
virtual void addCalibrations(const std::vector< IntegratedCalibrationBase * > &iCals)
tell labeler to treat also integrated calibrations
eventInfo
add run, event number and lumi section
virtual std::pair< IntegratedCalibrationBase *, unsigned int > calibrationParamFromLabel(unsigned int label) const
align::RunRanges RunRanges
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37
const AlignableMuon * alignableMuon() const
const AlignableObjectId & objectIdProvider() const
Return tracker alignable object ID provider derived from the tracker&#39;s geometry.
cond::RealTimeType< cond::runnumber >::type RunNumber
Definition: Utilities.h:38