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 class Alignable;
23 class AlignableTracker;
24 class AlignableMuon;
25 class AlignableExtras;
26 
27 /***************************************
28 ****************************************/
30 {
31  public:
32 
35  typedef std::vector<RunRange> RunRanges;
36 
38  {
39  public:
41  AlignableMuon *aliMuon,
42  AlignableExtras *extras)
43  :aliTracker_(aliTracker), aliMuon_(aliMuon), aliExtras_(extras) {}
47  };
48 
50  PedeLabelerBase(const TopLevelAlignables& alignables,
51  const edm::ParameterSet & config);
53  virtual ~PedeLabelerBase() {}
54 
58  virtual unsigned int alignableLabel(Alignable *alignable) const = 0;
63  virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
64  unsigned int param,
65  unsigned int instance) const = 0;
66  virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const = 0;
68  virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const = 0;
71  virtual unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
73  const TrajectoryStateOnSurface &tsos) const = 0;
75  virtual bool hasSplitParameters(Alignable *alignable) const = 0;
77  virtual unsigned int numberOfParameterInstances(Alignable *alignable,
78  int param=-1) const = 0;
79 
81  virtual unsigned int paramNumFromLabel(unsigned int paramLabel) const = 0;
83  virtual unsigned int alignableLabelFromLabel(unsigned int label) const = 0;
86  virtual Alignable* alignableFromLabel(unsigned int label) const = 0;
89  virtual unsigned int lasBeamIdFromLabel(unsigned int label) const = 0;
90  virtual const RunRange& runRangeFromLabel(unsigned int label) const {
91  return theOpenRunRange;
92  }
93 
94  static const unsigned int theMaxNumParam;
95  static const unsigned int theParamInstanceOffset;
96  static const unsigned int theMinLabel;
97 
98  protected:
99 
101 };
102 
103 #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
const std::string & label
Definition: MVAComputer.cc:186
virtual unsigned int alignableLabelFromLabel(unsigned int label) const =0
alignable label from parameter label (works also for alignable label...)
AlignmentAlgorithmBase::RunRange RunRange
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
std::pair< RunNumber, RunNumber > RunRange
virtual unsigned int lasBeamLabel(unsigned int lasBeamId) const =0
const RunRange theOpenRunRange
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 )
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
Constructor of the full muon geometry.
Definition: AlignableMuon.h:39
virtual unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const =0
returns the number of instances for a given parameter
define event information passed to algorithms
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