GeneralBrokenLines V03-01-03
using EIGEN
|
Millepede-II (binary) record. More...
#include <MilleBinary.h>
Public Member Functions | |
MilleBinary (const std::string &fileName="milleBinaryISN.dat", bool doublePrec=false, bool keepZeros=false, unsigned int aSize=2000) | |
Create binary file. More... | |
virtual | ~MilleBinary () |
void | addData (double aMeas, double aErr, unsigned int numLocal, unsigned int *indLocal, double *derLocal, const std::vector< int > &labGlobal, const std::vector< double > &derGlobal) |
Add data block to (end of) record. More... | |
void | writeRecord () |
Write record to file. More... | |
Private Attributes | |
std::ofstream | binaryFile |
Binary File. More... | |
std::vector< int > | intBuffer |
Integer buffer. More... | |
std::vector< float > | floatBuffer |
Float buffer. More... | |
std::vector< double > | doubleBuffer |
Double buffer. More... | |
bool | doublePrecision |
Flag for storage in as double values. More... | |
bool | globalDerKeepZeros |
Flag for keeping global derivatives with value zero. More... | |
Millepede-II (binary) record.
Containing information for local (track) and global fit.
The data blocks are collected in two arrays, a real array (containing float or double values) and integer array, of same length. A positive record length indicate float and a negative one double values. The content of the record is:
* real array integer array * 0 0.0 error count (this record) * 1 RMEAS, measured value 0 -+ * 2 local derivative index of local derivative | * 3 local derivative index of local derivative | * 4 ... | block * SIGMA, error (>0) 0 | * global derivative label of global derivative | * global derivative label of global derivative | * ... -+ * RMEAS, measured value 0 * local derivative index of local derivative * local derivative index of local derivative * ... * SIGMA, error 0 * global derivative label of global derivative * global derivative label of global derivative * ... * global derivative label of global derivative *
Special data block (other/debug information). Contains no local derivatives and (error) SIGMA is negative (-Number of SPecial data words).
* real array integer array * 0.0 0 -+ * -float(NSP) 0 | * special data special data | special block (2+NSP words) * special data special data | * ... -+ *
Definition at line 81 of file MilleBinary.h.
gbl::MilleBinary::MilleBinary | ( | const std::string & | fileName = "milleBinaryISN.dat" , |
bool | doublePrec = false , |
||
bool | keepZeros = false , |
||
unsigned int | aSize = 2000 |
||
) |
Create binary file.
[in] | fileName | File name |
[in] | doublePrec | Flag for storage as double values |
[in] | keepZeros | Flag for keeping global derivatives with value zero |
[in] | aSize | Buffer size |
Definition at line 42 of file MilleBinary.cpp.
References doubleBuffer, doublePrecision, floatBuffer, and intBuffer.
|
virtual |
Definition at line 59 of file MilleBinary.cpp.
References binaryFile.
void gbl::MilleBinary::addData | ( | double | aMeas, |
double | aErr, | ||
unsigned int | numLocal, | ||
unsigned int * | indLocal, | ||
double * | derLocal, | ||
const std::vector< int > & | labGlobal, | ||
const std::vector< double > & | derGlobal | ||
) |
Add data block to (end of) record.
[in] | aMeas | Value |
[in] | aErr | Error |
[in] | numLocal | Number of local labels/derivatives |
[in] | indLocal | Array of labels of local parameters |
[in] | derLocal | Array of derivatives for local parameters |
[in] | labGlobal | List of labels of global parameters |
[in] | derGlobal | List of derivatives for global parameters |
Definition at line 73 of file MilleBinary.cpp.
References doubleBuffer, doublePrecision, floatBuffer, globalDerKeepZeros, and intBuffer.
Referenced by gbl::GblTrajectory::milleOut().
void gbl::MilleBinary::writeRecord | ( | ) |
Write record to file.
Definition at line 114 of file MilleBinary.cpp.
References binaryFile, doubleBuffer, doublePrecision, floatBuffer, and intBuffer.
Referenced by gbl::GblTrajectory::milleOut().
|
private |
Binary File.
Definition at line 94 of file MilleBinary.h.
Referenced by writeRecord(), and ~MilleBinary().
|
private |
Double buffer.
Definition at line 97 of file MilleBinary.h.
Referenced by addData(), MilleBinary(), and writeRecord().
|
private |
Flag for storage in as double values.
Definition at line 98 of file MilleBinary.h.
Referenced by addData(), MilleBinary(), and writeRecord().
|
private |
Float buffer.
Definition at line 96 of file MilleBinary.h.
Referenced by addData(), MilleBinary(), and writeRecord().
|
private |
Flag for keeping global derivatives with value zero.
Definition at line 99 of file MilleBinary.h.
Referenced by addData().
|
private |
Integer buffer.
Definition at line 95 of file MilleBinary.h.
Referenced by addData(), MilleBinary(), and writeRecord().