CMS 3D CMS Logo

SurveyOutput.cc
Go to the documentation of this file.
1 #include <sstream>
2 
3 #include "TNtuple.h"
4 
6 // #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
7 
9 
11  : theAlignables(alignables), theFile(fileName.c_str(), "RECREATE") {}
12 
13 void SurveyOutput::write(unsigned int iter) {
14  std::ostringstream o;
15 
16  o << 't' << iter;
17 
18  TNtuple* nt = new TNtuple(o.str().c_str(), "", "x:y:z:a:b:g");
19 
20  unsigned int N = theAlignables.size();
21 
22  for (unsigned int i = 0; i < N; ++i) {
23  const Alignable* ali = theAlignables[i];
24 
25  align::GlobalVector shifts = ali->displacement() * 1e4; // cm to um
26 
27  align::EulerAngles angles = align::toAngles(ali->rotation()) * 1e3; // to mrad
28 
29  nt->Fill(shifts.x(), shifts.y(), shifts.z(), angles(1), angles(2), angles(3));
30  // const AlgebraicVector& pars = ali->alignmentParameters()->parameters();
31 
32  // nt->Fill(pars[0], pars[1], pars[2], pars[3], pars[4], pars[5]);
33  }
34 
35  theFile.Write();
36 
37  delete nt;
38 }
const align::Alignables & theAlignables
Definition: SurveyOutput.h:30
T z() const
Definition: PV3DBase.h:61
void write(unsigned int iter)
write out variables
Definition: SurveyOutput.cc:13
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
EulerAngles toAngles(const RotationType &)
Convert rotation matrix to angles about x-, y-, z-axes (frame rotation).
Definition: Utilities.cc:8
int nt
Definition: AMPTWrapper.h:42
AlgebraicVector EulerAngles
Definition: Definitions.h:34
#define N
Definition: blowfish.cc:9
SurveyOutput(const align::Alignables &, const std::string &fileName)
Definition: SurveyOutput.cc:10
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
Definition: Alignable.h:141
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
const RotationType & rotation() const
Return change of orientation since the creation of the object.
Definition: Alignable.h:144