38 #include "CLHEP/Matrix/SymMatrix.h" 126 std::ifstream apeReadFile(
128 if (!apeReadFile.good()) {
130 <<
"Problem opening APE file: skipping" 134 std::set<int> apeList;
135 while (!apeReadFile.eof()) {
137 double x11, x21, x22, x31, x32, x33,
ignore;
143 apeReadFile >> apeId >> x11 >> x22 >> x33 >>
std::ws;
148 if (apeList.find(apeId) == apeList.end())
166 as[0][0] = x11 * x11;
167 as[1][1] = x22 * x22;
168 as[2][2] = x33 * x33;
185 GlobalErrorExtended(x11, x21, x31, 0, 0, 0, x22, x32, 0, 0, 0, x33, 0, 0, 0, 0, 0, 0, 0, 0, 0);
188 x11 * x11, 0, 0, 0, 0, 0, x22 * x22, 0, 0, 0, 0, x33 * x33, 0, 0, 0, 0, 0, 0, 0, 0, 0);
191 alidet->setAlignmentPositionError(globErr,
false);
192 apeList.insert(apeId);
195 <<
"Not Setting APE for Composite DetId " << apeId;
200 <<
"Skipping duplicate APE for DetId " << apeId;
206 <<
"Set " << apeList.size() <<
" APE values.";
216 std::ofstream apeSaveFile(
218 for (
int i = 0;
i < theSize; ++
i) {
236 sm = sm.similarity(am);
238 for (
int j = 0;
j < sm.num_row(); ++
j)
239 for (
int k = 0;
k <=
j; ++
k)
240 apeSaveFile <<
" " << sm[
j][
k];
242 apeSaveFile << std::endl;
T getParameter(std::string const &) const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33
AlignableTracker * theTracker
std::string fullPath() const
~ApeSettingAlgorithm() override
Destructor.
edm::ParameterSet theConfig
void run(const edm::EventSetup &setup, const EventInfo &eventInfo) override
Run the algorithm.
Interface/Base class for alignment algorithms, each alignment algorithm has to be derived from this c...
define event information passed to algorithms
T getUntrackedParameter(std::string const &, T const &) const
CLHEP::HepMatrix AlgebraicMatrix
AlignableNavigator * theAlignableNavigator
GlobalErrorBaseExtended< double, ErrorMatrixTag > GlobalErrorExtended
bool readFullLocalMatrix_
Log< level::Info, false > LogInfo
std::vector< AlignTransformErrorExtended > m_alignError
AlignmentErrorsExtended * alignmentErrors() const override
Return alignment errors, sorted by DetId.
virtual void terminate()
Called at end of job (must be implemented in derived class)
ApeSettingAlgorithm(const edm::ParameterSet &cfg, const edm::ConsumesCollector &iC)
Constructor.
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
#define DEFINE_EDM_PLUGIN(factory, type, name)
eventInfo
add run, event number and lumi section
Constructor of the full muon geometry.
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
void initialize(const edm::EventSetup &setup, AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras, AlignmentParameterStore *store) override
Call at beginning of job.