25 throw cms::Exception(
"TypeMismatch") <<
"Pointer to AlignableTracker is empty.\n";
60 if (root ==
"Tracker")
72 if (largeStr.find(
"Strip") != nPos) {
73 if (subStruct.find(
"Pixel") != nPos)
82 if (largeStr.find(
"Pixel") != nPos) {
83 if (subStruct.find(
"Strip") != nPos)
86 if (subStruct.find(
theSubdets[iStrip]) != nPos)
92 for (
unsigned int iSub = 0; iSub <
theSubdets.size(); ++iSub) {
93 for (
unsigned int iLarge = 0; iLarge <
theSubdets.size(); ++iLarge) {
111 if (
start == std::string::npos) {
112 throw cms::Exception(
"LogicError") <<
"[TrackerScenarioBuilder] '" <<
name <<
"' is not a module type";
std::string stripOffModule(const align::StructureType &type) const
void decodeMovements_(const edm::ParameterSet &, const align::Alignables &)
Decode movements defined in given parameter set for given set of alignables.
void setSeed(long seed)
Resets the generator seed according to the argument.
std::string typeToName(align::StructureType type) const
Convert type to name.
unsigned int theFirstStripIndex
index of first strip subdet in 'theSubdets' (pixel<strip)
bool isTopLevel_(const std::string ¶meterSetName) const override
does this still make sense?
const std::string rootName_(const std::string ¶meterSetName) const
Get root name of a parameter set (e.g. 'Rod' in 'Rods' or 'Rod1')
std::vector< std::string > theSubdets
following things are needed in possiblyPartOf:
TrackerScenarioBuilder(AlignableTracker *alignable)
Constructor.
const AlignableObjectId & objectIdProvider() const
Return tracker alignable object ID provider derived from the tracker's geometry.
Log< level::Info, false > LogInfo
AlignableModifier theModifier
Helper class for random movements.
Base class to build a scenario from configuration and apply to either tracker or muon.
Alignables & subStructures(const std::string &subStructName)
T getParameter(std::string const &) const
void applyScenario(const edm::ParameterSet &scenario) override
Apply misalignment scenario to the tracker.
int theModifierCounter
Counter for applied modification.
bool hasParameter_(const std::string &name, const edm::ParameterSet &pSet) const
Check if given parameter exists in parameter set.
bool possiblyPartOf(const std::string &sub, const std::string &large) const override
True if hierarchy level 'sub' could be part of hierarchy level 'large'.
AlignableTracker * theAlignableTracker