25 theAlignableTracker(alignable)
29 throw cms::Exception(
"TypeMismatch") <<
"Pointer to AlignableTracker is empty.\n";
71 if (root ==
"Tracker")
return true;
83 if (largeStr.find(
"Strip") != nPos) {
84 if (subStruct.find(
"Pixel") != nPos)
return false;
86 if (subStruct.find(
theSubdets[iPix]) != nPos)
return false;
91 if (largeStr.find(
"Pixel") != nPos) {
92 if (subStruct.find(
"Strip") != nPos)
return false;
94 if (subStruct.find(
theSubdets[iStrip]) != nPos)
return false;
99 for (
unsigned int iSub = 0; iSub <
theSubdets.size(); ++iSub) {
100 for (
unsigned int iLarge = 0; iLarge <
theSubdets.size(); ++iLarge) {
101 if (iLarge == iSub)
continue;
117 if (
start == std::string::npos) {
119 <<
"[TrackerScenarioBuilder] '" <<
name <<
"' is not a module type";
T getParameter(std::string const &) const
bool isTopLevel_(const std::string ¶meterSetName) const override
does this still make sense?
std::string stripOffModule(const align::StructureType &type) const
void setSeed(long seed)
Resets the generator seed according to the argument.
std::string typeToName(align::StructureType type) const
Convert type to name.
bool possiblyPartOf(const std::string &sub, const std::string &large) const override
True if hierarchy level 'sub' could be part of hierarchy level 'large'.
unsigned int theFirstStripIndex
index of first strip subdet in 'theSubdets' (pixel<strip)
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.
void decodeMovements_(const edm::ParameterSet &pSet, const std::vector< Alignable * > &alignables)
Decode movements defined in given parameter set for given set of alignables.
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)
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.
AlignableTracker * theAlignableTracker