21 myId(0), myObjId(0), myNumPar(0),
22 myHitsX(0), myHitsY(0), myLabel(0), myName(
""), myNamePtr(&myName)
25 treetxt =
"MillePede User Variables";
38 (
const std::vector<Alignable*> &alivec,
const char *
filename,
int iter,
bool validCheck,
int &ierr)
42 int iret = this->
open(filename, iter,
true);
46 iret = this->
write(alivec, validCheck);
47 tree->BuildIndex(
"Id",
"ObjId");
63 (
const std::vector<Alignable*> &alivec,
const char *filename,
int iter,
int &ierr)
65 std::vector<AlignmentUserVariables*>
result;
67 int iret = this->
open(filename, iter,
false);
71 result = this->
read(alivec, iret);
90 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::writeOne" 91 <<
"No MillePedeVariables found!";
99 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::writeOne" 104 for (
unsigned int iPar = 0; iPar <
myNumPar; ++iPar) {
131 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::readOne" 132 <<
"No index for id/type = (" << ali->
id() <<
"/" 139 for (
unsigned int iPar = 0; iPar <
myNumPar; ++iPar) {
174 tree->SetBranchAddress(
"Id", &
myId);
unsigned int hitsX() const
get number of hits for x-measurement
unsigned int label() const
get alignable label as used by pede
const std::vector< float > & globalCor() const
get global correlation array
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
std::vector< AlignmentUserVariables * > readMillePedeVariables(const std::vector< Alignable * > &alivec, const char *filename, int iter, int &ierr)
unsigned int size() const
number of parameters
Byte_t myIsValid[kMaxNumPar]
void setBranchAddresses() override
set root branche addresses
Float_t myGlobalCor[kMaxNumPar]
const std::vector< float > & parameter() const
get array of parameters
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
const std::string & name() const
get alignable name
AlignmentUserVariables * userVariables(void) const
Get pointer to user variables.
AlignmentUserVariables * readOne(Alignable *ali, int &ierr) override
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
Float_t mySigma[kMaxNumPar]
void setHitsY(unsigned int hitsY)
MillePedeVariablesIORoot()
const std::vector< float > & preSigma() const
get array of presigmas (<= 0: means fixed)
unsigned int hitsY() const
get number of hits for y-measurement
const std::vector< float > & sigma() const
get array of sigmas
(Abstract) Base class for alignment algorithm user variables
Float_t myParameter[kMaxNumPar]
void writeMillePedeVariables(const std::vector< Alignable * > &alivec, const char *filename, int iter, bool validCheck, int &ierr)
const std::vector< float > & diffBefore() const
get array of differences to start value
Float_t myPreSigma[kMaxNumPar]
const std::vector< bool > & isValid() const
get valid flag array
int write(const align::Alignables &alivec, bool validCheck)
std::vector< AlignmentUserVariables * > read(const align::Alignables &alivec, int &ierr)
int open(const char *filename, int iteration, bool writemode) override
void createBranches() override
create root branches
Float_t myDiffBefore[kMaxNumPar]
int writeOne(Alignable *ali) override
void setHitsX(unsigned int hitsX)