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;
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
109 };
110 
111 #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
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 maxNumberOfParameterInstances() const
returns the maximum number of instances for any parameter of an Alignable*
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const
returns the number of instances for a given parameter
unsigned int theMaxNumberOfParameterInstances
reverse of the above
define event information passed to algorithms
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::pair< RunNumber, RunNumber > RunRange
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