|
|
#include <PedeSteererWeakModeConstraints.h>
|
bool | checkMother (const Alignable *const lowleveldet, const Alignable *const HLS) const |
|
bool | checkSelectionShiftParameter (const Alignable *ali, unsigned int iParameter) const |
|
void | closeOutputfiles () |
|
unsigned int | createAlignablesDataStructure () |
|
double | getCoefficient (const int sysdeformation, const align::GlobalPoint &pos, const GlobalPoint gUDirection, const GlobalPoint gVDirection, const GlobalPoint gWDirection, const int iParameter, const double &x0, const std::vector< double > &constraintparameters) const |
|
std::pair< align::GlobalPoint, align::GlobalPoint > | getDoubleSensorPosition (const Alignable *ali) const |
|
std::ofstream * | getFile (const GeometryConstraintConfigData &it, const Alignable *iHLS) const |
|
double | getPhase (const std::vector< double > &coefficients) const |
|
double | getX (const int sysdeformation, const align::GlobalPoint &pos, const double phase) const |
|
double | getX0 (const std::pair< Alignable *, std::list< Alignable * > > &iHLS, const GeometryConstraintConfigData &it) const |
|
const std::vector< std::pair< Alignable *, std::string > > | makeLevelsFilenames (std::set< std::string > &steerFilePrefixContainer, const align::Alignables &alis, const std::string &steerFilePrefix) const |
|
int | verifyDeformationName (const std::string &name, const std::vector< double > &coefficients) const |
|
void | verifyParameterNames (const edm::ParameterSet &pset, unsigned int psetnr) const |
|
void | writeOutput (const std::list< std::pair< unsigned int, double > > &output, const GeometryConstraintConfigData &it, const Alignable *iHLS, double sum_xi_x0) |
|
Provides steering of weak mode constraints for Pede according to configuration
- Author
- : Joerg Behr date : February 2013
Definition at line 55 of file PedeSteererWeakModeConstraints.h.
◆ SystematicDeformations
◆ ~PedeSteererWeakModeConstraints()
PedeSteererWeakModeConstraints::~PedeSteererWeakModeConstraints |
( |
| ) |
|
|
default |
◆ PedeSteererWeakModeConstraints()
Definition at line 68 of file PedeSteererWeakModeConstraints.cc.
76 unsigned int psetnr = 0;
77 std::set<std::string> steerFilePrefixContainer;
82 const auto coefficients =
pset.getParameter<std::vector<double> >(
"coefficients");
83 const auto dm =
pset.exists(
"deadmodules") ?
pset.getParameter<std::vector<unsigned int> >(
"deadmodules")
84 : std::vector<unsigned int>();
87 const auto ignoredInstances =
pset.exists(
"ignoredInstances")
88 ?
pset.getUntrackedParameter<std::vector<unsigned int> >(
"ignoredInstances")
89 : std::vector<unsigned int>();
91 const auto downToLowestLevel =
92 pset.exists(
"downToLowestLevel") ?
pset.getUntrackedParameter<
bool>(
"downToLowestLevel") :
false;
98 const auto& alis = selector.selectedAlignables();
101 selector_excludedalignables.clear();
102 if (
pset.exists(
"excludedAlignables")) {
103 selector_excludedalignables.addSelections(
pset.getParameter<
edm::ParameterSet>(
"excludedAlignables"));
105 const auto& excluded_alis = selector_excludedalignables.selectedAlignables();
112 edm::LogInfo(
"Alignment") <<
"@SUB=PedeSteererWeakModeConstraints"
113 <<
"Load list of dead modules (size = " <<
dm.size() <<
").";
114 for (
const auto& it :
dm)
121 if (
std::find(ignoredInstances.begin(), ignoredInstances.end(),
instance) != ignoredInstances.end()) {
124 std::stringstream defaultsteerfileprefix;
125 defaultsteerfileprefix <<
"autosteerFilePrefix_" <<
name <<
"_" << psetnr <<
"_" <<
instance;
127 const auto steerFilePrefix =
pset.exists(
"steerFilePrefix") ?
pset.getParameter<
std::string>(
"steerFilePrefix") +
129 : defaultsteerfileprefix.
str();
131 const auto levelsFilenames = this->
makeLevelsFilenames(steerFilePrefixContainer, alis, steerFilePrefix);
135 coefficients,
name, levelsFilenames, sysdeformation, excluded_alis,
instance, downToLowestLevel));
References AlignableObjectId::commonObjectIdProvider().
◆ checkMother()
bool PedeSteererWeakModeConstraints::checkMother |
( |
const Alignable *const |
lowleveldet, |
|
|
const Alignable *const |
HLS |
|
) |
| const |
|
private |
◆ checkSelectionShiftParameter()
bool PedeSteererWeakModeConstraints::checkSelectionShiftParameter |
( |
const Alignable * |
ali, |
|
|
unsigned int |
iParameter |
|
) |
| const |
|
private |
Definition at line 373 of file PedeSteererWeakModeConstraints.cc.
374 bool isselected =
false;
377 if ((iParameter <= 2) || (iParameter >= 9 && iParameter <= 11)) {
378 if (!aliSel.at(iParameter)) {
382 auto selVar = dynamic_cast<SelectionUserVariables*>(
params->userVariables());
384 if (selVar->fullSelection().size() <= (iParameter + 1)) {
386 <<
"[PedeSteererWeakModeConstraints::checkSelectionShiftParameter]"
387 <<
" Can not access selected alignment variables of alignable "
390 <<
"for parameter number " << (iParameter + 1) <<
".";
393 const char selChar = (selVar ? selVar->fullSelection().at(iParameter) :
'1');
395 if (selChar ==
'1' || selChar ==
'r') {
References Alignable::alignableObjectId(), alignableObjectId_, Alignable::alignmentParameters(), Exception, Alignable::globalPosition(), AlignableObjectId::idToString(), CalibrationSummaryClient_cfi::params, AlignmentParameters::selector(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by constructConstraints(), and getX0().
◆ closeOutputfiles()
void PedeSteererWeakModeConstraints::closeOutputfiles |
( |
| ) |
|
|
private |
◆ constructConstraints()
unsigned int PedeSteererWeakModeConstraints::constructConstraints |
( |
const align::Alignables & |
alis | ) |
|
Definition at line 513 of file PedeSteererWeakModeConstraints.cc.
521 std::vector<std::list<std::pair<unsigned int, double> > > createdConstraints;
527 for (
const auto& iHLS : it.HLSsubdets_) {
528 double sum_xi_x0 = 0.0;
529 std::list<std::pair<unsigned int, double> >
output;
531 const double x0 = this->
getX0(iHLS, it);
533 for (std::list<Alignable*>::const_iterator iAlignables = iHLS.second.begin(); iAlignables != iHLS.second.end();
536 const auto aliLabel =
540 const LocalPoint lUDirection(1., 0., 0.), lVDirection(0., 1., 0.), lWDirection(0., 0., 1.);
543 gWDirection = surface.
toGlobal(lWDirection);
550 const auto& pos_sensor0 = sensorpositions.first;
551 const auto& pos_sensor1 = sensorpositions.second;
553 const auto x_sensor0 = this->
getX(it.sysdeformation_, pos_sensor0,
phase);
554 const auto x_sensor1 = isDoubleSensor ? this->
getX(it.sysdeformation_, pos_sensor1,
phase) : 0.0;
556 sum_xi_x0 += (x_sensor0 - x0) * (x_sensor0 - x0);
557 if (isDoubleSensor) {
558 sum_xi_x0 += (x_sensor1 - x0) * (x_sensor1 - x0);
562 for (
int iParameter = 0; iParameter < numparameterlimit; iParameter++) {
564 if (iParameter == 0 || iParameter == 9)
566 if (iParameter == 1 || iParameter == 10)
568 if (iParameter == 2 || iParameter == 11)
571 if ((iParameter >= 0 && iParameter <= 2) || (iParameter >= 9 && iParameter <= 11)) {
581 const auto&
pos = (iParameter <= 2) ? pos_sensor0 : pos_sensor1;
583 if (iParameter == 0 || iParameter == 1 || iParameter == 2 || iParameter == 9 || iParameter == 10 ||
586 it.sysdeformation_,
pos, gUDirection, gVDirection, gWDirection, localindex, x0, it.coefficients_);
591 <<
"@SUB=PedeSteererWeakModeConstraints::getCoefficient"
596 <<
" for parameter " << localindex <<
" equal to zero. This alignable is used in the constraint"
597 <<
" '" << it.constraintName_
598 <<
"'. The id is: alignable->geomDetId().rawId() = " << ali->
geomDetId().
rawId() <<
".";
605 if (
std::find(createdConstraints.begin(), createdConstraints.end(),
output) != createdConstraints.end()) {
609 throw cms::Exception(
"FileFindError") <<
"[PedeSteererWeakModeConstraints] Cannot find output file.";
611 *
outFile <<
"! The constraint for this IOV/momentum range" << std::endl
612 <<
"! has been removed because the used parameters" << std::endl
613 <<
"! are not IOV or momentum-range dependent." << std::endl;
617 this->
writeOutput(output, it, iHLS.first, sum_xi_x0);
618 createdConstraints.push_back(
output);
References Abs(), PedeLabelerBase::alignableLabelFromParamAndInstance(), Alignable::alignableObjectId(), alignableObjectId_, Alignable::alignmentParameters(), checkSelectionShiftParameter(), closeOutputfiles(), ConstraintsConfigContainer_, createAlignablesDataStructure(), Exception, spr::find(), Alignable::geomDetId(), getCoefficient(), getDoubleSensorPosition(), getFile(), getPhase(), getX(), getX0(), Alignable::globalPosition(), AlignableObjectId::idToString(), AlignmentParametersFactory::kTwoBowedSurfaces, myLabels_, L1TdeCSCTF_cfi::outFile, convertSQLitetoXML_cfg::output, PedeLabelerBase::parameterLabel(), volumeBasedMagneticField_160812_cfi::paramLabel, HLT_2018_cff::phase, DetId::rawId(), AlignmentParameters::size(), Alignable::surface(), AlignableSurface::toGlobal(), AlignmentParameters::type(), writeOutput(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by PedeSteerer::buildSubSteer().
◆ createAlignablesDataStructure()
unsigned int PedeSteererWeakModeConstraints::createAlignablesDataStructure |
( |
| ) |
|
|
private |
Definition at line 160 of file PedeSteererWeakModeConstraints.cc.
161 unsigned int nConstraints = 0;
164 for (
const auto& iHLS : iC.levelsFilenames_) {
167 if (iC.downToLowestLevel_) {
168 if (!iHLS.first->lastCompsWithParams(aliDaughts)) {
169 edm::LogWarning(
"Alignment") <<
"@SUB=PedeSteererWeakModeConstraints::createAlignablesDataStructure"
170 <<
"Some but not all component branches "
175 if (!iHLS.first->firstCompsWithParams(aliDaughts)) {
176 edm::LogWarning(
"Alignment") <<
"@SUB=PedeSteererWeakModeConstraints::createAlignablesDataStructure"
177 <<
"Some but not all daughters of "
184 std::list<Alignable*> usedinconstraint;
185 for (
const auto& iD : aliDaughts) {
186 bool isNOTdead =
true;
189 iD->geomDetId().rawId() == iDeadmodules) {
195 for (
const auto& iEx : iC.excludedAlignables_) {
196 if (iD->id() == iEx->id() && iD->alignableObjectId() == iEx->alignableObjectId()) {
202 const bool issubcomponent = this->
checkMother(iD, iHLS.first);
203 if (issubcomponent) {
205 usedinconstraint.push_back(iD);
209 throw cms::Exception(
"Alignment") <<
"[PedeSteererWeakModeConstraints::createAlignablesDataStructure]"
210 <<
" Sanity check failed. Alignable defined as active sub-component, "
211 <<
" but in fact its not a daugther of "
216 if (!usedinconstraint.empty()) {
217 iC.HLSsubdets_.push_back(std::make_pair(iHLS.first, usedinconstraint));
219 edm::LogInfo(
"Alignment") <<
"@SUB=PedeSteererWeakModeConstraints"
220 <<
"No sub-components for "
222 << iHLS.first->globalPosition().x() <<
"," << iHLS.first->globalPosition().y() <<
","
223 << iHLS.first->globalPosition().z() <<
") selected. Skip constraint";
225 if (aliDaughts.empty()) {
226 edm::LogWarning(
"Alignment") <<
"@SUB=PedeSteererWeakModeConstraints::createAlignablesDataStructure"
227 <<
"No active sub-alignables found for "
229 << iHLS.first->globalPosition().x() <<
"," << iHLS.first->globalPosition().y()
230 <<
"," << iHLS.first->globalPosition().z() <<
").";
References align::AlignableDet, align::AlignableDetUnit, alignableObjectId_, checkMother(), ConstraintsConfigContainer_, deadmodules_, Exception, and AlignableObjectId::idToString().
Referenced by constructConstraints().
◆ getCoefficient()
double PedeSteererWeakModeConstraints::getCoefficient |
( |
const int |
sysdeformation, |
|
|
const align::GlobalPoint & |
pos, |
|
|
const GlobalPoint |
gUDirection, |
|
|
const GlobalPoint |
gVDirection, |
|
|
const GlobalPoint |
gWDirection, |
|
|
const int |
iParameter, |
|
|
const double & |
x0, |
|
|
const std::vector< double > & |
constraintparameters |
|
) |
| const |
|
private |
Definition at line 271 of file PedeSteererWeakModeConstraints.cc.
279 if (iParameter < 0 || iParameter > 2) {
280 throw cms::Exception(
"Alignment") <<
"[PedeSteererWeakModeConstraints::getCoefficient]"
281 <<
" iParameter has to be in the range [0,2] but"
282 <<
" it is equal to " << iParameter <<
".";
286 const std::vector<double> vec_u = {
pos.x() - gUDirection.
x(),
pos.y() - gUDirection.
y(),
pos.z() - gUDirection.
z()};
287 const std::vector<double> vec_v = {
pos.x() - gVDirection.
x(),
pos.y() - gVDirection.
y(),
pos.z() - gVDirection.
z()};
288 const std::vector<double> vec_w = {
pos.x() - gWDirection.
x(),
pos.y() - gWDirection.
y(),
pos.z() - gWDirection.
z()};
291 const std::vector<std::vector<double> > global_vecs = {vec_u, vec_v, vec_w};
293 const double n = TMath::Sqrt(global_vecs.at(iParameter).at(0) * global_vecs.at(iParameter).at(0) +
294 global_vecs.at(iParameter).at(1) * global_vecs.at(iParameter).at(1) +
295 global_vecs.at(iParameter).at(2) * global_vecs.at(iParameter).at(2));
296 const double r = TMath::Sqrt(
pos.x() *
pos.x() +
pos.y() *
pos.y());
300 const std::vector<double> radial_direction = {TMath::Sin(
phase), TMath::Cos(
phase), 0.0};
302 const double norm_radial_direction =
303 TMath::Sqrt(radial_direction.at(0) * radial_direction.at(0) + radial_direction.at(1) * radial_direction.at(1) +
304 radial_direction.at(2) * radial_direction.at(2));
307 const std::vector<double> phi_direction = {-1.0 *
pos.y(),
pos.x(), 0.0};
308 const double norm_phi_direction =
309 TMath::Sqrt(phi_direction.at(0) * phi_direction.at(0) + phi_direction.at(1) * phi_direction.at(1) +
310 phi_direction.at(2) * phi_direction.at(2));
313 static const std::vector<double> z_direction = {0.0, 0.0, 1.0};
314 const double norm_z_direction =
315 TMath::Sqrt(z_direction.at(0) * z_direction.at(0) + z_direction.at(1) * z_direction.at(1) +
316 z_direction.at(2) * z_direction.at(2));
319 const std::vector<double> rDirection = {
pos.x(),
pos.y(), 0.0};
320 const double norm_rDirection = TMath::Sqrt(rDirection.at(0) * rDirection.at(0) + rDirection.at(1) * rDirection.at(1) +
321 rDirection.at(2) * rDirection.at(2));
324 double dot_product = 0.0;
325 double normalisation_factor = 1.0;
328 switch (sysdeformation) {
329 case SystematicDeformations::kTwist:
330 case SystematicDeformations::kLayerRotation:
331 dot_product = phi_direction.at(0) * global_vecs.at(iParameter).at(0) +
332 phi_direction.at(1) * global_vecs.at(iParameter).at(1) +
333 phi_direction.at(2) * global_vecs.at(iParameter).at(2);
334 normalisation_factor =
r *
n * norm_phi_direction;
336 case SystematicDeformations::kZexpansion:
337 case SystematicDeformations::kTelescope:
338 case SystematicDeformations::kSkew:
339 dot_product = global_vecs.at(iParameter).at(0) * z_direction.at(0) +
340 global_vecs.at(iParameter).at(1) * z_direction.at(1) +
341 global_vecs.at(iParameter).at(2) * z_direction.at(2);
342 normalisation_factor = (
n * norm_z_direction);
344 case SystematicDeformations::kRadial:
345 case SystematicDeformations::kBowing:
346 case SystematicDeformations::kElliptical:
347 dot_product = global_vecs.at(iParameter).at(0) * rDirection.at(0) +
348 global_vecs.at(iParameter).at(1) * rDirection.at(1) +
349 global_vecs.at(iParameter).at(2) * rDirection.at(2);
350 normalisation_factor = (
n * norm_rDirection);
352 case SystematicDeformations::kSagitta:
353 dot_product = global_vecs.at(iParameter).at(0) * radial_direction.at(0) +
354 global_vecs.at(iParameter).at(1) * radial_direction.at(1) +
355 global_vecs.at(iParameter).at(2) * radial_direction.at(2);
356 normalisation_factor = (
n * norm_radial_direction);
363 coeff = dot_product * (this->
getX(sysdeformation,
pos,
phase) - x0) / normalisation_factor;
365 throw cms::Exception(
"Alignment") <<
"[PedeSteererWeakModeConstraints::getCoefficient]"
366 <<
" Normalisation factor"
367 <<
"for coefficient calculation equal to zero! Misconfiguration?";
References Abs(), Exception, getPhase(), getX(), dqmiodumpmetadata::n, HLT_2018_cff::phase, alignCSCRings::r, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by constructConstraints().
◆ getConfigData()
◆ getDoubleSensorPosition()
◆ getFile()
◆ getPhase()
double PedeSteererWeakModeConstraints::getPhase |
( |
const std::vector< double > & |
coefficients | ) |
const |
|
private |
◆ getX()
double PedeSteererWeakModeConstraints::getX |
( |
const int |
sysdeformation, |
|
|
const align::GlobalPoint & |
pos, |
|
|
const double |
phase |
|
) |
| const |
|
private |
Definition at line 238 of file PedeSteererWeakModeConstraints.cc.
243 const double r = TMath::Sqrt(
pos.x() *
pos.x() +
pos.y() *
pos.y());
245 switch (sysdeformation) {
246 case SystematicDeformations::kTwist:
247 case SystematicDeformations::kZexpansion:
250 case SystematicDeformations::kSagitta:
251 case SystematicDeformations::kRadial:
252 case SystematicDeformations::kTelescope:
253 case SystematicDeformations::kLayerRotation:
256 case SystematicDeformations::kBowing:
259 case SystematicDeformations::kElliptical:
262 case SystematicDeformations::kSkew:
References HLT_2018_cff::phase, alignCSCRings::r, and x.
Referenced by constructConstraints(), getCoefficient(), and getX0().
◆ getX0()
◆ makeLevelsFilenames()
const std::vector< std::pair< Alignable *, std::string > > PedeSteererWeakModeConstraints::makeLevelsFilenames |
( |
std::set< std::string > & |
steerFilePrefixContainer, |
|
|
const align::Alignables & |
alis, |
|
|
const std::string & |
steerFilePrefix |
|
) |
| const |
|
private |
Definition at line 652 of file PedeSteererWeakModeConstraints.cc.
657 if (steerFilePrefixContainer.find(steerFilePrefix) != steerFilePrefixContainer.end()) {
658 throw cms::Exception(
"BadConfig") <<
"[PedeSteererWeakModeConstraints] Steering file"
659 <<
" prefix '" << steerFilePrefix <<
"' already exists. Specify unique names!";
661 steerFilePrefixContainer.insert(steerFilePrefix);
664 std::vector<std::pair<Alignable*, std::string> > levelsFilenames;
665 for (
const auto& ali : alis) {
669 << ali->alignableObjectId() <<
".txt";
671 levelsFilenames.push_back(std::make_pair(ali,
n.str()));
673 return levelsFilenames;
References alignableObjectId_, Exception, AlignableObjectId::idToString(), dqmiodumpmetadata::n, and steerFile_.
◆ verifyDeformationName()
int PedeSteererWeakModeConstraints::verifyDeformationName |
( |
const std::string & |
name, |
|
|
const std::vector< double > & |
coefficients |
|
) |
| const |
|
private |
Definition at line 677 of file PedeSteererWeakModeConstraints.cc.
681 if (
name ==
"twist") {
682 sysdeformation = SystematicDeformations::kTwist;
683 }
else if (
name ==
"zexpansion") {
684 sysdeformation = SystematicDeformations::kZexpansion;
685 }
else if (
name ==
"sagitta") {
686 sysdeformation = SystematicDeformations::kSagitta;
687 }
else if (
name ==
"radial") {
688 sysdeformation = SystematicDeformations::kRadial;
689 }
else if (
name ==
"telescope") {
690 sysdeformation = SystematicDeformations::kTelescope;
691 }
else if (
name ==
"layerrotation") {
692 sysdeformation = SystematicDeformations::kLayerRotation;
693 }
else if (
name ==
"bowing") {
694 sysdeformation = SystematicDeformations::kBowing;
695 }
else if (
name ==
"skew") {
696 sysdeformation = SystematicDeformations::kSkew;
697 }
else if (
name ==
"elliptical") {
698 sysdeformation = SystematicDeformations::kElliptical;
702 throw cms::Exception(
"BadConfig") <<
"[PedeSteererWeakModeConstraints]"
703 <<
" specified configuration option '" <<
name <<
"' not known.";
705 if ((sysdeformation == SystematicDeformations::kSagitta || sysdeformation == SystematicDeformations::kElliptical ||
706 sysdeformation == SystematicDeformations::kSkew) &&
707 coefficients.size() != 2) {
708 throw cms::Exception(
"BadConfig") <<
"[PedeSteererWeakModeConstraints]"
709 <<
" Excactly two parameters using the coefficient"
710 <<
" variable have to be provided for the " <<
name <<
" constraint.";
712 if ((sysdeformation == SystematicDeformations::kTwist || sysdeformation == SystematicDeformations::kZexpansion ||
713 sysdeformation == SystematicDeformations::kTelescope ||
714 sysdeformation == SystematicDeformations::kLayerRotation || sysdeformation == SystematicDeformations::kRadial ||
715 sysdeformation == SystematicDeformations::kBowing) &&
716 coefficients.size() != 1) {
717 throw cms::Exception(
"BadConfig") <<
"[PedeSteererWeakModeConstraints]"
718 <<
" Excactly ONE parameter using the coefficient"
719 <<
" variable have to be provided for the " <<
name <<
" constraint.";
722 if (coefficients.empty()) {
723 throw cms::Exception(
"BadConfig") <<
"[PedeSteererWeakModeConstraints]"
724 <<
" At least one coefficient has to be specified.";
726 return sysdeformation;
References Exception, ecaldqm::kUnknown, and Skims_PA_cff::name.
◆ verifyParameterNames()
void PedeSteererWeakModeConstraints::verifyParameterNames |
( |
const edm::ParameterSet & |
pset, |
|
|
unsigned int |
psetnr |
|
) |
| const |
|
private |
◆ writeOutput()
◆ alignableObjectId_
◆ ConstraintsConfigContainer_
◆ deadmodules_
◆ myConfig_
◆ myLabels_
◆ steerFile_
const std::string PedeSteererWeakModeConstraints::steerFile_ |
|
private |
int verifyDeformationName(const std::string &name, const std::vector< double > &coefficients) const
const std::vector< double > coefficients_
const std::vector< edm::ParameterSet > myConfig_
const int sysdeformation_
bool checkSelectionShiftParameter(const Alignable *ali, unsigned int iParameter) const
static AlignableObjectId commonObjectIdProvider(const AlignableObjectId &, const AlignableObjectId &)
Point3DBase< Scalar, GlobalTag > PositionType
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
align::Scalar length() const
virtual int type() const =0
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency)
std::pair< align::GlobalPoint, align::GlobalPoint > getDoubleSensorPosition(const Alignable *ali) const
void verifyParameterNames(const edm::ParameterSet &pset, unsigned int psetnr) const
virtual unsigned int maxNumberOfParameterInstances() const =0
returns the maximum number of instances for any parameter of an Alignable*
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
virtual unsigned int alignableLabelFromParamAndInstance(Alignable *alignable, unsigned int param, unsigned int instance) const =0
double getPhase(const std::vector< double > &coefficients) const
const PedeLabelerBase * myLabels_
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
std::list< GeometryConstraintConfigData > ConstraintsConfigContainer_
double getX0(const std::pair< Alignable *, std::list< Alignable * > > &iHLS, const GeometryConstraintConfigData &it) const
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
unsigned int createAlignablesDataStructure()
const std::vector< std::pair< Alignable *, std::string > > levelsFilenames_
const DetId & geomDetId() const
std::list< align::ID > deadmodules_
const AlignableObjectId alignableObjectId_
static PFTauRenderPlugin instance
void writeOutput(const std::list< std::pair< unsigned int, double > > &output, const GeometryConstraintConfigData &it, const Alignable *iHLS, double sum_xi_x0)
std::vector< Alignable * > Alignables
constexpr uint32_t rawId() const
get the raw id
std::ofstream * getFile(const GeometryConstraintConfigData &it, const Alignable *iHLS) const
virtual unsigned int parameterLabel(unsigned int aliLabel, unsigned int parNum) const =0
returns the label for a given alignable parameter number combination
int size(void) const
Get number of parameters.
const std::vector< bool > & selector(void) const
Get alignment parameter selector vector.
const char * idToString(align::StructureType type) const
const std::string steerFile_
const std::vector< std::pair< Alignable *, std::string > > makeLevelsFilenames(std::set< std::string > &steerFilePrefixContainer, const align::Alignables &alis, const std::string &steerFilePrefix) const
const PositionType & globalPosition() const
Return the global position of the object.
bool checkMother(const Alignable *const lowleveldet, const Alignable *const HLS) const
double getX(const int sysdeformation, const align::GlobalPoint &pos, const double phase) const
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
double getCoefficient(const int sysdeformation, const align::GlobalPoint &pos, const GlobalPoint gUDirection, const GlobalPoint gVDirection, const GlobalPoint gWDirection, const int iParameter, const double &x0, const std::vector< double > &constraintparameters) const
std::map< std::string, std::ofstream * > mapFileName_
Alignable * mother() const
Return pointer to container alignable (if any)