CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PedeLabelerBase.h
Go to the documentation of this file.
1 #ifndef Alignment_MillePedeAlignmentAlgorithm_PedeLabelerBase_h
2 #define Alignment_MillePedeAlignmentAlgorithm_PedeLabelerBase_h
3 
16 
19 
21 
22 #include <vector>
23 
24 class Alignable;
25 class AlignableTracker;
26 class AlignableMuon;
27 class AlignableExtras;
29 
30 /***************************************
31 ****************************************/
33 {
34  public:
35 
38  typedef std::vector<RunRange> RunRanges;
39 
41  {
42  public:
44  AlignableMuon *aliMuon,
45  AlignableExtras *extras)
46  :aliTracker_(aliTracker), aliMuon_(aliMuon), aliExtras_(extras) {}
50  };
51 
53  PedeLabelerBase(const TopLevelAlignables& alignables,
54  const edm::ParameterSet & config);
55  virtual ~PedeLabelerBase() {}
57  virtual void addCalibrations(const std::vector<IntegratedCalibrationBase*> &iCals);
58 
62  virtual unsigned int alignableLabel(Alignable *alignable) const = 0;
67  virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
68  unsigned int param,
69  unsigned int instance) const = 0;
70  virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const = 0;
72  virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const = 0;
75  virtual unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
77  const TrajectoryStateOnSurface &tsos) const = 0;
79  virtual bool hasSplitParameters(Alignable *alignable) const = 0;
81  virtual unsigned int numberOfParameterInstances(Alignable *alignable,
82  int param=-1) const = 0;
84  virtual unsigned int maxNumberOfParameterInstances() const = 0;
86  unsigned int parameterInstanceOffset() const { return theParamInstanceOffset; }
87 
89  virtual unsigned int paramNumFromLabel(unsigned int paramLabel) const = 0;
91  virtual unsigned int alignableLabelFromLabel(unsigned int label) const = 0;
94  virtual Alignable* alignableFromLabel(unsigned int label) const = 0;
97  virtual unsigned int lasBeamIdFromLabel(unsigned int label) const = 0;
100  virtual std::pair<IntegratedCalibrationBase*, unsigned int>
101  calibrationParamFromLabel(unsigned int label) const;
102 
103  virtual const RunRange& runRangeFromLabel(unsigned int label) const {
104  return theOpenRunRange;
105  }
108  virtual unsigned int firstFreeLabel() const;
109 
111  virtual unsigned int calibrationLabel(const IntegratedCalibrationBase* calib,
112  unsigned int paramNum) const;
113 
114  static const unsigned int theMaxNumParam;
115  static const unsigned int theParamInstanceOffset;
116  static const unsigned int theMinLabel;
117 
118  protected:
121  virtual unsigned int firstNonAlignableLabel() const;
122 
124 
125  private:
127  std::vector<std::pair<IntegratedCalibrationBase*, unsigned int> > theCalibrationLabels;
128 
129 };
130 
131 #endif
virtual const RunRange & runRangeFromLabel(unsigned int label) const
AlignmentAlgorithmBase::RunNumber RunNumber
virtual Alignable * alignableFromLabel(unsigned int label) const =0
cond::RealTimeType< cond::runnumber >::type RunNumber
virtual unsigned int alignableLabelFromLabel(unsigned int label) const =0
alignable label from parameter label (works also for alignable label...)
std::vector< std::pair< IntegratedCalibrationBase *, unsigned int > > theCalibrationLabels
pairs of calibrations and their first label
AlignmentAlgorithmBase::RunRange RunRange
static PFTauRenderPlugin instance
virtual unsigned int alignableLabel(Alignable *alignable) const =0
virtual ~PedeLabelerBase()
static const unsigned int theMinLabel
virtual unsigned int paramNumFromLabel(unsigned int paramLabel) const =0
parameter number, 0 &lt;= .. &lt; theMaxNumParam, belonging to unique parameter label
virtual unsigned int firstNonAlignableLabel() const
std::pair< RunNumber, RunNumber > RunRange
virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const =0
const RunRange theOpenRunRange
define event information passed to algorithms
static const unsigned int theMaxNumParam
virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const =0
returns the label for a given alignable parameter number combination
PedeLabelerBase(const TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
MVATrainerComputer * calib
Definition: MVATrainer.cc:64
unsigned int parameterInstanceOffset() const
offset in labels between consecutive parameter instances of Alignable*s
TopLevelAlignables(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras)
virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const =0
static const unsigned int theParamInstanceOffset
std::vector< RunRange > RunRanges
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
virtual std::pair< IntegratedCalibrationBase *, unsigned int > calibrationParamFromLabel(unsigned int label) const
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
virtual unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const =0
returns the number of instances for a given parameter
virtual unsigned int maxNumberOfParameterInstances() const =0
returns the maximum number of instances for any parameter of an Alignable*
virtual bool hasSplitParameters(Alignable *alignable) const =0
returns true if the alignable has parameters that are split into various bins
virtual unsigned int lasBeamIdFromLabel(unsigned int label) const =0