CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
22 
23 /***************************************
24 ****************************************/
26 {
27  public:
28 
31  const edm::ParameterSet& config);
34 
38  unsigned int alignableLabel(Alignable *alignable) const;
43  unsigned int alignableLabelFromParamAndInstance(Alignable *alignable,
44  unsigned int param,
45  unsigned int instance) const;
46  unsigned int lasBeamLabel(unsigned int lasBeamId) const;
48  unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const;
51  unsigned int parameterLabel(Alignable *alignable, unsigned int parNum,
53  const TrajectoryStateOnSurface &tsos) const;
55  bool hasSplitParameters(Alignable *alignable) const;
57  unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const;
58 
60  unsigned int paramNumFromLabel(unsigned int paramLabel) const;
62  unsigned int alignableLabelFromLabel(unsigned int label) const;
65  Alignable* alignableFromLabel(unsigned int label) const;
68  unsigned int lasBeamIdFromLabel(unsigned int label) const;
69 
70  private:
71  typedef std::map <Alignable*, unsigned int> 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> 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, AlignableMuon* aliMuon,
84  AlignableExtras *extras,
85  const edm::ParameterSet &config);
86 
88  unsigned int buildMap(const std::vector<Alignable*> &alis);
90  unsigned int buildReverseMap();
91 
92  // data members
99 };
100 
101 #endif
std::map< Alignable *, MomentumRangeParamMap > AlignableToMomentumRangeMap
Alignable * alignableFromLabel(unsigned int label) const
std::map< Alignable *, unsigned int > AlignableToIdMap
unsigned int lasBeamLabel(unsigned int lasBeamId) const
static PFTauRenderPlugin instance
std::vector< std::string > decompose(const std::string &s, std::string::value_type delimiter) const
UintUintMap theLabelToLasBeamMap
labels for las beams
std::pair< float, float > MomentumRange
unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const
unsigned int buildMap(const std::vector< Alignable * > &alis)
returns size of map
MomentumDependentPedeLabeler(const PedeLabelerBase::TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
unsigned int paramNumFromLabel(unsigned int paramLabel) const
parameter number, 0 &lt;= .. &lt; theMaxNumParam, belonging to unique parameter label
AlignableToMomentumRangeMap::value_type AlignableToMomentumRangePair
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const
returns the number of instances for a given parameter
std::map< unsigned int, unsigned int > UintUintMap
std::map< unsigned int, Alignable * > IdToAlignableMap
bool hasSplitParameters(Alignable *alignable) const
returns true if the alignable has parameters that are split into various bins
Container::value_type value_type
UintUintMap theLasBeamToLabelMap
reverse map
unsigned int buildReverseMap()
returns size of map
unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const
returns the label for a given alignable parameter number combination
unsigned int lasBeamIdFromLabel(unsigned int label) const
std::map< unsigned int, MomentumRangeVector > MomentumRangeParamMap
std::vector< MomentumRange > MomentumRangeVector
unsigned int buildMomentumDependencyMap(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras, const edm::ParameterSet &config)
unsigned int alignableLabel(Alignable *alignable) const
Return 32-bit unique label for alignable, 0 indicates failure.
const MomentumRange theOpenMomentumRange
reverse of the above
std::vector< unsigned int > convertParamSel(const std::string &selString) const
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
AlignableToMomentumRangeMap theAlignableToMomentumRangeMap
providing unique ID for alignable, space for param IDs
define event information passed to algorithms
AlignableToIdMap::value_type AlignableToIdPair
unsigned int alignableLabelFromLabel(unsigned int label) const
alignable label from parameter label (works also for alignable label...)
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs