CMS 3D CMS Logo

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 
25 
26 namespace edm {
27  class EventID;
28 }
29 
30 /***************************************
31 ****************************************/
33 public:
38 
42  unsigned int alignableLabel(Alignable *alignable) const override;
47  unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
48  unsigned int param,
49  unsigned int instance) const override;
50  unsigned int lasBeamLabel(unsigned int lasBeamId) const override;
52  unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override;
55  unsigned int parameterLabel(Alignable *alignable,
56  unsigned int parNum,
58  const TrajectoryStateOnSurface &tsos) const override;
60  bool hasSplitParameters(Alignable *alignable) const override;
62  unsigned int numberOfParameterInstances(Alignable *alignable, int param = -1) const override;
63  unsigned int maxNumberOfParameterInstances() const override { return theMaxNumberOfParameterInstances; }
64 
66  unsigned int paramNumFromLabel(unsigned int paramLabel) const override;
68  unsigned int alignableLabelFromLabel(unsigned int label) const override;
71  Alignable *alignableFromLabel(unsigned int label) const override;
74  unsigned int lasBeamIdFromLabel(unsigned int label) const override;
75  const RunRange &runRangeFromLabel(unsigned int label) const override;
76 
77 private:
78  typedef std::map<Alignable *, unsigned int> AlignableToIdMap;
80  typedef std::vector<RunRange> RunRangeVector;
81  typedef std::map<unsigned int, RunRangeVector> RunRangeParamMap;
82  typedef std::map<Alignable *, RunRangeParamMap> AlignableToRunRangeRangeMap;
84  typedef std::map<unsigned int, Alignable *> IdToAlignableMap;
85  typedef std::map<unsigned int, unsigned int> UintUintMap;
86 
87  unsigned int runRangeIndexFromLabel(unsigned int label) const;
88 
89  std::vector<std::string> decompose(const std::string &s, std::string::value_type delimiter) const;
90  std::vector<unsigned int> convertParamSel(const std::string &selString) const;
91  unsigned int buildRunRangeDependencyMap(AlignableTracker *aliTracker,
92  AlignableMuon *aliMuon,
93  AlignableExtras *extras,
94  const edm::ParameterSet &config);
95 
97  unsigned int buildMap(const align::Alignables &);
99  unsigned int buildReverseMap();
100 
101  // data members
108 };
109 
110 #endif
std::map< Alignable *, unsigned int > AlignableToIdMap
AlignableToIdMap::value_type AlignableToIdPair
UintUintMap theLabelToLasBeamMap
labels for las beams
std::vector< std::string > decompose(const std::string &s, std::string::value_type delimiter) const
unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const override
std::map< unsigned int, unsigned int > UintUintMap
static PFTauRenderPlugin instance
Definition: config.py:1
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const override
returns the number of instances for a given parameter
unsigned int runRangeIndexFromLabel(unsigned int label) const
unsigned int theMaxNumberOfParameterInstances
reverse of the above
define event information passed to algorithms
char const * label
unsigned int buildReverseMap()
returns size of map
std::map< unsigned int, Alignable * > IdToAlignableMap
AlignableToRunRangeRangeMap::value_type AlignableToRunRangeRangePair
bool hasSplitParameters(Alignable *alignable) const override
returns true if the alignable has parameters that are split into various bins
unsigned int alignableLabelFromLabel(unsigned int label) const override
alignable label from parameter label (works also for alignable label...)
Alignable * alignableFromLabel(unsigned int label) const override
AlignableToRunRangeRangeMap theAlignableToRunRangeRangeMap
providing unique ID for alignable, space for param IDs
unsigned int alignableLabel(Alignable *alignable) const override
Return 32-bit unique label for alignable, 0 indicates failure.
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs
unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override
returns the label for a given alignable parameter number combination
unsigned int maxNumberOfParameterInstances() const override
returns the maximum number of instances for any parameter of an Alignable*
align::RunRange RunRange
std::map< Alignable *, RunRangeParamMap > AlignableToRunRangeRangeMap
UintUintMap theLasBeamToLabelMap
reverse map
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< unsigned int > convertParamSel(const std::string &selString) const
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 )
HLT enums.
std::map< unsigned int, RunRangeVector > RunRangeParamMap
unsigned int lasBeamLabel(unsigned int lasBeamId) const override
unsigned int lasBeamIdFromLabel(unsigned int label) const override
unsigned int paramNumFromLabel(unsigned int paramLabel) const override
parameter number, 0 <= .. < theMaxNumParam, belonging to unique parameter label
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
Definition: AlignableMuon.h:38
const RunRange & runRangeFromLabel(unsigned int label) const override
unsigned int buildMap(const align::Alignables &)
returns size of map