CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunRangeDependentPedeLabeler.h
Go to the documentation of this file.
1 #ifndef RUNRANGEDEPENDENTPEDELABELER_H
2 #define RUNRANGEDEPENDENTPEDELABELER_H
3 
16 #include <vector>
17 #include <map>
18 
20 
22 
24 
25 namespace edm {
26  class EventID;
27 }
28 
29 /***************************************
30 ****************************************/
32 {
33  public:
34 
37  const edm::ParameterSet& config);
40 
44  unsigned int alignableLabel(Alignable *alignable) const;
49  unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
50  unsigned int param,
51  unsigned int instance) const;
52  unsigned int lasBeamLabel(unsigned int lasBeamId) const;
54  unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const;
57  unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
59  const TrajectoryStateOnSurface &tsos) const;
61  bool hasSplitParameters(Alignable *alignable) const;
63  unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const;
64 
66  unsigned int paramNumFromLabel(unsigned int paramLabel) const;
68  unsigned int alignableLabelFromLabel(unsigned int label) const;
71  Alignable* alignableFromLabel(unsigned int label) const;
74  unsigned int lasBeamIdFromLabel(unsigned int label) const;
75  const RunRange& runRangeFromLabel(unsigned int label) const;
76 
77  private:
78 
79  typedef std::map<Alignable*, unsigned int> AlignableToIdMap;
81  typedef std::vector<RunRange> RunRangeVector;
82  typedef std::map<unsigned int, RunRangeVector> RunRangeParamMap;
83  typedef std::map<Alignable*, RunRangeParamMap> AlignableToRunRangeRangeMap;
85  typedef std::map<unsigned int, Alignable*> IdToAlignableMap;
86  typedef std::map<unsigned int, unsigned int> UintUintMap;
87 
88  unsigned int runRangeIndexFromLabel(unsigned int label) const;
89 
90  std::vector<std::string> decompose(const std::string &s, std::string::value_type delimiter) const;
91  std::vector<unsigned int> convertParamSel(const std::string &selString) const;
92  unsigned int buildRunRangeDependencyMap(AlignableTracker *aliTracker, AlignableMuon* aliMuon,
93  AlignableExtras *extras,
94  const edm::ParameterSet &config);
95 
97  unsigned int buildMap(const std::vector<Alignable*> &alis);
99  unsigned int buildReverseMap();
100 
101  // data members
107 };
108 
109 #endif
unsigned int lasBeamLabel(unsigned int lasBeamId) const
AlignableToIdMap::value_type AlignableToIdPair
UintUintMap theLabelToLasBeamMap
labels for las beams
unsigned int lasBeamIdFromLabel(unsigned int label) const
std::map< unsigned int, unsigned int > UintUintMap
AlignmentAlgorithmBase::RunRange RunRange
unsigned int alignableLabel(Alignable *alignable) const
Return 32-bit unique label for alignable, 0 indicates failure.
static PFTauRenderPlugin instance
Alignable * alignableFromLabel(unsigned int label) const
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const
returns the number of instances for a given parameter
std::map< Alignable *, RunRangeParamMap > AlignableToRunRangeRangeMap
unsigned int alignableLabelFromLabel(unsigned int label) const
alignable label from parameter label (works also for alignable label...)
unsigned int buildReverseMap()
returns size of map
std::map< unsigned int, Alignable * > IdToAlignableMap
unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const
AlignableToRunRangeRangeMap::value_type AlignableToRunRangeRangePair
std::map< Alignable *, unsigned int > AlignableToIdMap
AlignableToRunRangeRangeMap theAlignableToRunRangeRangeMap
providing unique ID for alignable, space for param IDs
Container::value_type value_type
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs
unsigned int runRangeIndexFromLabel(unsigned int label) const
const RunRange & runRangeFromLabel(unsigned int label) const
UintUintMap theLasBeamToLabelMap
reverse map
unsigned int buildRunRangeDependencyMap(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras, const edm::ParameterSet &config)
RunRangeDependentPedeLabeler(const PedeLabelerBase::TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
std::map< unsigned int, RunRangeVector > RunRangeParamMap
unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const
returns the label for a given alignable parameter number combination
unsigned int paramNumFromLabel(unsigned int paramLabel) const
parameter number, 0 &lt;= .. &lt; theMaxNumParam, belonging to unique parameter label
std::vector< unsigned int > convertParamSel(const std::string &selString) const
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
bool hasSplitParameters(Alignable *alignable) const
returns true if the alignable has parameters that are split into various bins
unsigned int buildMap(const std::vector< Alignable * > &alis)
returns size of map
std::vector< std::string > decompose(const std::string &s, std::string::value_type delimiter) const
define event information passed to algorithms