16 : ObjId(0), Id(0), Nhit(0), Nparj(0), Npare(0),
DataType(-1), AlignableChi2(0.), AlignableNdof(0) {
32 tree->Branch(
"Id", &
Id,
"Id/i");
35 tree->Branch(
"Nhit", &
Nhit,
"Nhit/I");
38 tree->Branch(
"Jtvj", &
Jtvj,
"Jtvj[Nparj]/D");
40 tree->Branch(
"Jtve", &
Jtve,
"Jtve[Npare]/D");
43 tree->Branch(
"Par", &
Par,
"Par[Npare]/D");
44 tree->Branch(
"ParError", &
ParError,
"ParError[Npare]/D");
50 tree->SetBranchAddress(
"Id", &
Id);
53 tree->SetBranchAddress(
"Nhit", &
Nhit);
56 tree->SetBranchAddress(
"Jtvj", &
Jtvj);
58 tree->SetBranchAddress(
"Jtve", &
Jtve);
61 tree->SetBranchAddress(
"Par", &
Par);
70 edm::LogInfo(
"Alignment") <<
"[HIPUserVariablesIORoot::findEntry] fill map ...";
72 for (
int ev = 0;
ev <
tree->GetEntries();
ev++) {
80 treemaptype::iterator imap =
treemap.find(std::make_pair(detId, comp));
83 result = (*imap).second;
110 int nhit = uvar->
nhit;
112 int np = jtve.num_row();
117 Nparj = np * (np + 1) / 2;
119 for (
int row = 0; row <
np; row++) {
120 Jtve[row] = jtve[row];
121 Par[row] = alipar[row];
146 tree->GetEntry(entry);
154 for (
int row = 0; row <
np; row++) {
155 jtve[row] =
Jtve[row];
156 alipar[row] =
Par[row];
185 const Alignables& alivec,
const char*
filename,
int iter,
bool validCheck,
int& ierr) {
188 iret =
open(filename, iter,
true);
193 iret =
write(alivec, validCheck);
211 std::vector<AlignmentUserVariables*>
result;
214 iret =
open(filename, iter,
false);
219 result =
read(alivec, iret);
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
AlignmentUserVariables * readOne(Alignable *ali, int &ierr) override
int findEntry(unsigned int detId, int comp)
void createBranches(void) override
create root branches
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
void writeHIPUserVariables(const Alignables &alivec, const char *filename, int iter, bool validCheck, int &ierr)
AlignmentUserVariables * userVariables(void) const
Get pointer to user variables.
unsigned int AlignableNdof
void setBranchAddresses(void) override
set root branches
int writeOne(Alignable *ali) override
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
std::vector< AlignmentUserVariables * > readHIPUserVariables(const Alignables &alivec, const char *filename, int iter, int &ierr)
double Jtvj[nparmax *(nparmax+1)/2]
align::Alignables Alignables
(Abstract) Base class for alignment algorithm user variables
CLHEP::HepVector AlgebraicVector
int write(const align::Alignables &alivec, bool validCheck)
std::vector< AlignmentUserVariables * > read(const align::Alignables &alivec, int &ierr)
CLHEP::HepSymMatrix AlgebraicSymMatrix
int open(const char *filename, int iteration, bool writemode) override