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 {
34  public:
35 
38  const edm::ParameterSet& config);
40  ~RunRangeDependentPedeLabeler() override;
41 
45  unsigned int alignableLabel(Alignable *alignable) const override;
50  unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
51  unsigned int param,
52  unsigned int instance) const override;
53  unsigned int lasBeamLabel(unsigned int lasBeamId) const override;
55  unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override;
58  unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
60  const TrajectoryStateOnSurface &tsos) const override;
62  bool hasSplitParameters(Alignable *alignable) const override;
64  unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const override;
65  unsigned int maxNumberOfParameterInstances() const override { return theMaxNumberOfParameterInstances; }
66 
68  unsigned int paramNumFromLabel(unsigned int paramLabel) const override;
70  unsigned int alignableLabelFromLabel(unsigned int label) const override;
73  Alignable* alignableFromLabel(unsigned int label) const override;
76  unsigned int lasBeamIdFromLabel(unsigned int label) const override;
77  const RunRange& runRangeFromLabel(unsigned int label) const override;
78 
79  private:
80 
81  typedef std::map<Alignable*, unsigned int> AlignableToIdMap;
83  typedef std::vector<RunRange> RunRangeVector;
84  typedef std::map<unsigned int, RunRangeVector> RunRangeParamMap;
85  typedef std::map<Alignable*, RunRangeParamMap> AlignableToRunRangeRangeMap;
87  typedef std::map<unsigned int, Alignable*> IdToAlignableMap;
88  typedef std::map<unsigned int, unsigned int> UintUintMap;
89 
90  unsigned int runRangeIndexFromLabel(unsigned int label) const;
91 
92  std::vector<std::string> decompose(const std::string &s, std::string::value_type delimiter) const;
93  std::vector<unsigned int> convertParamSel(const std::string &selString) const;
94  unsigned int buildRunRangeDependencyMap(AlignableTracker *aliTracker, AlignableMuon* aliMuon,
95  AlignableExtras *extras,
96  const edm::ParameterSet &config);
97 
99  unsigned int buildMap(const align::Alignables&);
101  unsigned int buildReverseMap();
102 
103  // data members
104  AlignableToIdMap theAlignableToIdMap;
105  AlignableToRunRangeRangeMap theAlignableToRunRangeRangeMap;
106  IdToAlignableMap theIdToAlignableMap;
107  UintUintMap theLasBeamToLabelMap;
108  UintUintMap theLabelToLasBeamMap;
110 };
111 
112 #endif
AlignableToIdMap::value_type AlignableToIdPair
UintUintMap theLabelToLasBeamMap
labels for las beams
std::map< unsigned int, unsigned int > UintUintMap
static PFTauRenderPlugin instance
Definition: config.py:1
unsigned int theMaxNumberOfParameterInstances
reverse of the above
define event information passed to algorithms
std::map< Alignable *, RunRangeParamMap > AlignableToRunRangeRangeMap
std::map< unsigned int, Alignable * > IdToAlignableMap
AlignableToRunRangeRangeMap::value_type AlignableToRunRangeRangePair
std::map< Alignable *, unsigned int > AlignableToIdMap
AlignableToRunRangeRangeMap theAlignableToRunRangeRangeMap
providing unique ID for alignable, space for param IDs
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs
align::RunRange RunRange
UintUintMap theLasBeamToLabelMap
reverse map
std::vector< Alignable * > Alignables
Definition: Utilities.h:32
HLT enums.
std::map< unsigned int, RunRangeVector > RunRangeParamMap
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37
unsigned int maxNumberOfParameterInstances() const override
returns the maximum number of instances for any parameter of an Alignable*