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 
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  unsigned int maxNumberOfParameterInstances() const { return theMaxNumberOfParameterInstances; }
65 
67  unsigned int paramNumFromLabel(unsigned int paramLabel) const;
69  unsigned int alignableLabelFromLabel(unsigned int label) const;
72  Alignable* alignableFromLabel(unsigned int label) const;
75  unsigned int lasBeamIdFromLabel(unsigned int label) const;
76  const RunRange& runRangeFromLabel(unsigned int label) const;
77 
78  private:
79 
80  typedef std::map<Alignable*, unsigned int> AlignableToIdMap;
82  typedef std::vector<RunRange> RunRangeVector;
83  typedef std::map<unsigned int, RunRangeVector> RunRangeParamMap;
84  typedef std::map<Alignable*, RunRangeParamMap> AlignableToRunRangeRangeMap;
86  typedef std::map<unsigned int, Alignable*> IdToAlignableMap;
87  typedef std::map<unsigned int, unsigned int> UintUintMap;
88 
89  unsigned int runRangeIndexFromLabel(unsigned int label) const;
90 
91  std::vector<std::string> decompose(const std::string &s, std::string::value_type delimiter) const;
92  std::vector<unsigned int> convertParamSel(const std::string &selString) const;
93  unsigned int buildRunRangeDependencyMap(AlignableTracker *aliTracker, AlignableMuon* aliMuon,
94  AlignableExtras *extras,
95  const edm::ParameterSet &config);
96 
98  unsigned int buildMap(const std::vector<Alignable*> &alis);
100  unsigned int buildReverseMap();
101 
102  // data members
103  AlignableToIdMap theAlignableToIdMap;
104  AlignableToRunRangeRangeMap theAlignableToRunRangeRangeMap;
105  IdToAlignableMap theIdToAlignableMap;
106  UintUintMap theLasBeamToLabelMap;
107  UintUintMap theLabelToLasBeamMap;
109 };
110 
111 #endif
AlignableToIdMap::value_type AlignableToIdPair
UintUintMap theLabelToLasBeamMap
labels for las beams
std::map< unsigned int, unsigned int > UintUintMap
static PFTauRenderPlugin instance
unsigned int maxNumberOfParameterInstances() const
returns the maximum number of instances for any parameter of an Alignable*
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
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