CMS 3D CMS Logo

MomentumDependentPedeLabeler.h
Go to the documentation of this file.
1 #ifndef MomentumDEPENDENTPEDELABELER_H
2 #define MomentumDEPENDENTPEDELABELER_H
3 
16 #include <vector>
17 #include <map>
18 
20 
23 
24 /***************************************
25 ****************************************/
27 public:
32 
36  unsigned int alignableLabel(const Alignable *alignable) const override;
41  unsigned int alignableLabelFromParamAndInstance(const Alignable *alignable,
42  unsigned int param,
43  unsigned int instance) const override;
44  unsigned int lasBeamLabel(unsigned int lasBeamId) const override;
46  unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override;
49  unsigned int parameterLabel(Alignable *alignable,
50  unsigned int parNum,
52  const TrajectoryStateOnSurface &tsos) const override;
54  bool hasSplitParameters(Alignable *alignable) const override;
56  unsigned int numberOfParameterInstances(Alignable *alignable, int param = -1) const override;
57  unsigned int maxNumberOfParameterInstances() const override { return theMaxNumberOfParameterInstances; }
58 
60  unsigned int paramNumFromLabel(unsigned int paramLabel) const override;
62  unsigned int alignableLabelFromLabel(unsigned int label) const override;
65  Alignable *alignableFromLabel(unsigned int label) const override;
68  unsigned int lasBeamIdFromLabel(unsigned int label) const override;
69 
70 private:
71  typedef std::map<Alignable *, unsigned int, AlignableComparator> AlignableToIdMap;
73  typedef std::pair<float, float> MomentumRange;
74  typedef std::vector<MomentumRange> MomentumRangeVector;
75  typedef std::map<unsigned int, MomentumRangeVector> MomentumRangeParamMap;
76  typedef std::map<Alignable *, MomentumRangeParamMap, AlignableComparator> AlignableToMomentumRangeMap;
78  typedef std::map<unsigned int, Alignable *> IdToAlignableMap;
79  typedef std::map<unsigned int, unsigned int> UintUintMap;
80 
81  std::vector<std::string> decompose(const std::string &s, std::string::value_type delimiter) const;
82  std::vector<unsigned int> convertParamSel(const std::string &selString) const;
83  unsigned int buildMomentumDependencyMap(AlignableTracker *aliTracker,
84  AlignableMuon *aliMuon,
85  AlignableExtras *extras,
86  const edm::ParameterSet &config);
87 
89  unsigned int buildMap(const align::Alignables &);
91  unsigned int buildReverseMap();
92 
93  // data members
101 };
102 
103 #endif
unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override
returns the label for a given alignable parameter number combination
std::map< Alignable *, unsigned int, AlignableComparator > AlignableToIdMap
unsigned int lasBeamIdFromLabel(unsigned int label) const override
static PFTauRenderPlugin instance
std::map< unsigned int, Alignable * > IdToAlignableMap
unsigned int alignableLabelFromLabel(unsigned int label) const override
alignable label from parameter label (works also for alignable label...)
UintUintMap theLabelToLasBeamMap
labels for las beams
Definition: config.py:1
std::pair< float, float > MomentumRange
MomentumDependentPedeLabeler(const PedeLabelerBase::TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
define event information passed to algorithms
unsigned int lasBeamLabel(unsigned int lasBeamId) const override
char const * label
AlignableToMomentumRangeMap::value_type AlignableToMomentumRangePair
unsigned int alignableLabelFromParamAndInstance(const Alignable *alignable, unsigned int param, unsigned int instance) const override
unsigned int maxNumberOfParameterInstances() const override
returns the maximum number of instances for any parameter of an Alignable*
std::map< unsigned int, unsigned int > UintUintMap
unsigned int buildMap(const align::Alignables &)
returns size of map
std::vector< std::string > decompose(const std::string &s, std::string::value_type delimiter) const
UintUintMap theLasBeamToLabelMap
reverse map
unsigned int buildReverseMap()
returns size of map
unsigned int alignableLabel(const Alignable *alignable) const override
Return 32-bit unique label for alignable, 0 indicates failure.
std::vector< unsigned int > convertParamSel(const std::string &selString) const
std::map< unsigned int, MomentumRangeVector > MomentumRangeParamMap
Alignable * alignableFromLabel(unsigned int label) const override
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< MomentumRange > MomentumRangeVector
unsigned int paramNumFromLabel(unsigned int paramLabel) const override
parameter number, 0 <= .. < theMaxNumParam, belonging to unique parameter label
unsigned int buildMomentumDependencyMap(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras, const edm::ParameterSet &config)
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const override
returns the number of instances for a given parameter
bool hasSplitParameters(Alignable *alignable) const override
returns true if the alignable has parameters that are split into various bins
const MomentumRange theOpenMomentumRange
reverse of the above
std::map< Alignable *, MomentumRangeParamMap, AlignableComparator > AlignableToMomentumRangeMap
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
Definition: AlignableMuon.h:38
AlignableToMomentumRangeMap theAlignableToMomentumRangeMap
providing unique ID for alignable, space for param IDs
AlignableToIdMap::value_type AlignableToIdPair
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs