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
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
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