Go to the documentation of this file.
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);
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);
void setHitsY(unsigned int hitsY)
Byte_t myIsValid[kMaxNumPar]
(Abstract) Base class for alignment algorithm user variables
void setHitsX(unsigned int hitsX)
Float_t myGlobalCor[kMaxNumPar]
Float_t myParameter[kMaxNumPar]
AlignmentUserVariables * userVariables(void) const
Get pointer to user variables.
void createBranches() override
create root branches
unsigned int hitsY() const
get number of hits for y-measurement
unsigned int size() const
number of parameters
unsigned int label() const
get alignable label as used by pede
const std::vector< bool > & isValid() const
get valid flag array
Float_t myDiffBefore[kMaxNumPar]
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
unsigned int hitsX() const
get number of hits for x-measurement
int write(const align::Alignables &alivec, bool validCheck)
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
const std::vector< float > & preSigma() const
get array of presigmas (<= 0: means fixed)
Log< level::Error, false > LogError
const std::vector< float > & diffBefore() const
get array of differences to start value
std::vector< AlignmentUserVariables * > readMillePedeVariables(const align::Alignables &alivec, const char *filename, int iter, int &ierr)
void setBranchAddresses() override
set root branche addresses
int open(const char *filename, int iteration, bool writemode) override
std::vector< Alignable * > Alignables
Float_t myPreSigma[kMaxNumPar]
const std::vector< float > & parameter() const
get array of parameters
void writeMillePedeVariables(const align::Alignables &alivec, const char *filename, int iter, bool validCheck, int &ierr)
const std::vector< float > & sigma() const
get array of sigmas
int writeOne(Alignable *ali) override
const std::vector< float > & globalCor() const
get global correlation array
AlignmentUserVariables * readOne(Alignable *ali, int &ierr) override
Float_t mySigma[kMaxNumPar]
MillePedeVariablesIORoot()
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
const std::string & name() const
get alignable name
std::vector< AlignmentUserVariables * > read(const align::Alignables &alivec, int &ierr)