26 tree->Branch(
"Id", &
Id,
"Id/i");
29 tree->Branch(
"Nhit", &
Nhit,
"Nhit/I");
31 tree->Branch(
"Jtvj", &
Jtvj,
"Jtvj[Nparj]/D");
33 tree->Branch(
"Jtve", &
Jtve,
"Jtve[Npare]/D");
42 tree->SetBranchAddress(
"Id", &
Id);
45 tree->SetBranchAddress(
"Nhit", &
Nhit);
47 tree->SetBranchAddress(
"Jtvj", &
Jtvj);
49 tree->SetBranchAddress(
"Jtve", &
Jtve);
61 edm::LogInfo(
"Alignment") <<
"[HIPUserVariablesIORoot::findEntry] fill map ...";
63 for (
int ev = 0;ev<
tree->GetEntries();ev++) {
71 treemaptype::iterator imap =
treemap.find(std::make_pair(detId,comp));
73 if (imap !=
treemap.end()) result=(*imap).second;
102 int np=jtve.num_row();
108 for(
int row=0;row<
np;row++){
110 for(
int col=0;col<
np;col++){
111 if(row-1<col){
Jtvj[
count]=jtvj[row][col];count++;}
135 tree->GetEntry(entry);
141 for(
int row=0;row<
np;row++) {
143 for(
int col=0; col <
np;col++) {
144 if(row-1<col) {jtvj[row][col]=
Jtvj[
count];count++;}
168 const char*
filename,
int iter,
bool validCheck,
int& ierr)
172 iret =
open(filename,iter,
true);
173 if (iret!=0) { ierr=-1;
return;}
174 iret =
write(alivec,validCheck);
175 if (iret!=0) { ierr=-2;
return;}
177 if (iret!=0) { ierr=-3;
return;}
182 std::vector<AlignmentUserVariables*>
184 const char*
filename,
int iter,
int& ierr)
186 std::vector<AlignmentUserVariables*>
result;
189 iret =
open(filename,iter,
false);
190 if (iret!=0) { ierr=-1;
return result;}
191 result =
read(alivec,iret);
192 if (iret!=0) { ierr=-2;
return result;}
194 if (iret!=0) { ierr=-3;
return result;}
int writeOne(Alignable *ali)
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
int findEntry(unsigned int detId, int comp)
int open(const char *filename, int iteration, bool writemode)
std::vector< Alignable * > Alignables
AlignmentUserVariables * readOne(Alignable *ali, int &ierr)
void setBranchAddresses(void)
set root branches
void createBranches(void)
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
std::vector< AlignmentUserVariables * > readHIPUserVariables(const Alignables &alivec, const char *filename, int iter, int &ierr)
std::pair< std::string, MonitorElement * > entry
double Jtvj[nparmax *(nparmax+1)/2]
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
(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