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
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