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(Alignable *alignable) const override;
41  unsigned int alignableLabelFromParamAndInstance(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> 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,
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
MomentumDependentPedeLabeler::decompose
std::vector< std::string > decompose(const std::string &s, std::string::value_type delimiter) const
Definition: MomentumDependentPedeLabeler.cc:264
MomentumDependentPedeLabeler::buildReverseMap
unsigned int buildReverseMap()
returns size of map
Definition: MomentumDependentPedeLabeler.cc:419
MomentumDependentPedeLabeler::alignableFromLabel
Alignable * alignableFromLabel(unsigned int label) const override
Definition: MomentumDependentPedeLabeler.cc:228
makeHLTPrescaleTable.delimiter
delimiter
Definition: makeHLTPrescaleTable.py:181
Alignable
Definition: Alignable.h:27
MomentumDependentPedeLabeler::numberOfParameterInstances
unsigned int numberOfParameterInstances(Alignable *alignable, int param=-1) const override
returns the number of instances for a given parameter
Definition: MomentumDependentPedeLabeler.cc:190
MomentumDependentPedeLabeler::theLasBeamToLabelMap
UintUintMap theLasBeamToLabelMap
reverse map
Definition: MomentumDependentPedeLabeler.h:96
MomentumDependentPedeLabeler::convertParamSel
std::vector< unsigned int > convertParamSel(const std::string &selString) const
Definition: MomentumDependentPedeLabeler.cc:283
MomentumDependentPedeLabeler::AlignableToIdMap
std::map< Alignable *, unsigned int > AlignableToIdMap
Definition: MomentumDependentPedeLabeler.h:70
PedeLabelerBase.h
MomentumDependentPedeLabeler::theAlignableToMomentumRangeMap
AlignableToMomentumRangeMap theAlignableToMomentumRangeMap
providing unique ID for alignable, space for param IDs
Definition: MomentumDependentPedeLabeler.h:94
MomentumDependentPedeLabeler::buildMomentumDependencyMap
unsigned int buildMomentumDependencyMap(AlignableTracker *aliTracker, AlignableMuon *aliMuon, AlignableExtras *extras, const edm::ParameterSet &config)
Definition: MomentumDependentPedeLabeler.cc:292
config
Definition: config.py:1
MomentumDependentPedeLabeler::paramNumFromLabel
unsigned int paramNumFromLabel(unsigned int paramLabel) const override
parameter number, 0 <= .. < theMaxNumParam, belonging to unique parameter label
Definition: MomentumDependentPedeLabeler.cc:213
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
alignCSCRings.s
s
Definition: alignCSCRings.py:92
MomentumDependentPedeLabeler::MomentumRangeParamMap
std::map< unsigned int, MomentumRangeVector > MomentumRangeParamMap
Definition: MomentumDependentPedeLabeler.h:74
MomentumDependentPedeLabeler::hasSplitParameters
bool hasSplitParameters(Alignable *alignable) const override
returns true if the alignable has parameters that are split into various bins
Definition: MomentumDependentPedeLabeler.cc:182
MomentumDependentPedeLabeler::MomentumRangeVector
std::vector< MomentumRange > MomentumRangeVector
Definition: MomentumDependentPedeLabeler.h:73
MomentumDependentPedeLabeler::theIdToAlignableMap
IdToAlignableMap theIdToAlignableMap
providing unique ID for alignable, space for param IDs
Definition: MomentumDependentPedeLabeler.h:95
AlignableTracker
Definition: AlignableTracker.h:17
PedeLabelerBase::TopLevelAlignables
Definition: PedeLabelerBase.h:39
AlignableExtras
Definition: AlignableExtras.h:19
MomentumDependentPedeLabeler::alignableLabelFromParamAndInstance
unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const override
Definition: MomentumDependentPedeLabeler.cc:73
MomentumDependentPedeLabeler::lasBeamIdFromLabel
unsigned int lasBeamIdFromLabel(unsigned int label) const override
Definition: MomentumDependentPedeLabeler.cc:248
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MomentumDependentPedeLabeler::theMaxNumberOfParameterInstances
unsigned int theMaxNumberOfParameterInstances
Definition: MomentumDependentPedeLabeler.h:99
MomentumDependentPedeLabeler::parameterLabel
unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const override
returns the label for a given alignable parameter number combination
Definition: MomentumDependentPedeLabeler.cc:121
ZMuMuAnalysisNtupler_cff.eventInfo
eventInfo
Definition: ZMuMuAnalysisNtupler_cff.py:15
MomentumDependentPedeLabeler::theOpenMomentumRange
const MomentumRange theOpenMomentumRange
reverse of the above
Definition: MomentumDependentPedeLabeler.h:98
MomentumDependentPedeLabeler::alignableLabel
unsigned int alignableLabel(Alignable *alignable) const override
Return 32-bit unique label for alignable, 0 indicates failure.
Definition: MomentumDependentPedeLabeler.cc:53
edm::ParameterSet
Definition: ParameterSet.h:47
MomentumDependentPedeLabeler::theAlignableToIdMap
AlignableToIdMap theAlignableToIdMap
Definition: MomentumDependentPedeLabeler.h:93
AlignableMuon
Constructor of the full muon geometry.
Definition: AlignableMuon.h:33
MomentumDependentPedeLabeler::alignableLabelFromLabel
unsigned int alignableLabelFromLabel(unsigned int label) const override
alignable label from parameter label (works also for alignable label...)
Definition: MomentumDependentPedeLabeler.cc:223
MomentumDependentPedeLabeler::theLabelToLasBeamMap
UintUintMap theLabelToLasBeamMap
labels for las beams
Definition: MomentumDependentPedeLabeler.h:97
PedeLabelerBase
Definition: PedeLabelerBase.h:33
MomentumDependentPedeLabeler::IdToAlignableMap
std::map< unsigned int, Alignable * > IdToAlignableMap
Definition: MomentumDependentPedeLabeler.h:77
Utilities.h
MomentumDependentPedeLabeler::AlignableToIdPair
AlignableToIdMap::value_type AlignableToIdPair
Definition: MomentumDependentPedeLabeler.h:71
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
MomentumDependentPedeLabeler::MomentumRange
std::pair< float, float > MomentumRange
Definition: MomentumDependentPedeLabeler.h:72
volumeBasedMagneticField_160812_cfi.paramLabel
paramLabel
Definition: volumeBasedMagneticField_160812_cfi.py:37
instance
static PFTauRenderPlugin instance
Definition: PFTauRenderPlugin.cc:70
align::Alignables
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
MomentumDependentPedeLabeler::AlignableToMomentumRangePair
AlignableToMomentumRangeMap::value_type AlignableToMomentumRangePair
Definition: MomentumDependentPedeLabeler.h:76
MomentumDependentPedeLabeler::~MomentumDependentPedeLabeler
~MomentumDependentPedeLabeler() override
Definition: MomentumDependentPedeLabeler.cc:49
MomentumDependentPedeLabeler
Definition: MomentumDependentPedeLabeler.h:25
MomentumDependentPedeLabeler::maxNumberOfParameterInstances
unsigned int maxNumberOfParameterInstances() const override
returns the maximum number of instances for any parameter of an Alignable*
Definition: MomentumDependentPedeLabeler.h:56
MomentumDependentPedeLabeler::AlignableToMomentumRangeMap
std::map< Alignable *, MomentumRangeParamMap > AlignableToMomentumRangeMap
Definition: MomentumDependentPedeLabeler.h:75
MomentumDependentPedeLabeler::UintUintMap
std::map< unsigned int, unsigned int > UintUintMap
Definition: MomentumDependentPedeLabeler.h:78
MomentumDependentPedeLabeler::buildMap
unsigned int buildMap(const align::Alignables &)
returns size of map
Definition: MomentumDependentPedeLabeler.cc:374
MomentumDependentPedeLabeler::MomentumDependentPedeLabeler
MomentumDependentPedeLabeler(const PedeLabelerBase::TopLevelAlignables &alignables, const edm::ParameterSet &config)
constructor from three Alignables (null pointers allowed )
Definition: MomentumDependentPedeLabeler.cc:27
ParameterSet.h
MomentumDependentPedeLabeler::lasBeamLabel
unsigned int lasBeamLabel(unsigned int lasBeamId) const override
Definition: MomentumDependentPedeLabeler.cc:108
label
const char * label
Definition: PFTauDecayModeTools.cc:11
AlignmentAlgorithmBase::EventInfo
define event information passed to algorithms
Definition: AlignmentAlgorithmBase.h:72