File indexing completed on 2024-04-06 11:57:24
0001 #include <sstream>
0002
0003 #include "TNtuple.h"
0004
0005 #include "Alignment/CommonAlignment/interface/Alignable.h"
0006
0007
0008 #include "Alignment/SurveyAnalysis/interface/SurveyOutput.h"
0009
0010 SurveyOutput::SurveyOutput(const align::Alignables& alignables, const std::string& fileName)
0011 : theAlignables(alignables), theFile(fileName.c_str(), "RECREATE") {}
0012
0013 void SurveyOutput::write(unsigned int iter) {
0014 std::ostringstream o;
0015
0016 o << 't' << iter;
0017
0018 TNtuple* nt = new TNtuple(o.str().c_str(), "", "x:y:z:a:b:g");
0019
0020 unsigned int N = theAlignables.size();
0021
0022 for (unsigned int i = 0; i < N; ++i) {
0023 const Alignable* ali = theAlignables[i];
0024
0025 align::GlobalVector shifts = ali->displacement() * 1e4;
0026
0027 align::EulerAngles angles = align::toAngles(ali->rotation()) * 1e3;
0028
0029 nt->Fill(shifts.x(), shifts.y(), shifts.z(), angles(1), angles(2), angles(3));
0030
0031
0032
0033 }
0034
0035 theFile.Write();
0036
0037 delete nt;
0038 }