21 : myId(0), myObjId(0), myNumPar(0), myHitsX(0), myHitsY(0), myLabel(0), myName(
""), myNamePtr(&myName) {
23 treetxt =
"MillePede User Variables";
39 int iret = this->
open(filename, iter,
true);
43 iret = this->
write(alivec, validCheck);
44 tree->BuildIndex(
"Id",
"ObjId");
63 std::vector<AlignmentUserVariables *>
result;
65 int iret = this->
open(filename, iter,
false);
69 result = this->
read(alivec, iret);
87 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::writeOne"
88 <<
"No MillePedeVariables found!";
95 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::writeOne"
100 for (
unsigned int iPar = 0; iPar <
myNumPar; ++iPar) {
126 edm::LogError(
"Alignment") <<
"@SUB=MillePedeVariablesIORoot::readOne"
134 for (
unsigned int iPar = 0; iPar <
myNumPar; ++iPar) {
167 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).
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
Log< level::Error, false > LogError
void writeMillePedeVariables(const align::Alignables &alivec, const char *filename, int iter, bool validCheck, int &ierr)
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
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
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
std::vector< AlignmentUserVariables * > readMillePedeVariables(const align::Alignables &alivec, const char *filename, int iter, int &ierr)
(Abstract) Base class for alignment algorithm user variables
Float_t myParameter[kMaxNumPar]
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
std::vector< Alignable * > Alignables
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)