39    fNGroups(
src.fNGroups),
 
 
   59    for (
int i = 0; 
i < rhs.GetSize(); 
i++) {
 
   62      rhs.GetIndexValue(
i, ind, 
val);
 
   67    for (
int i = 0; 
i < rhs.GetNGroups(); 
i++) {
 
 
   98    LOG(info) << 
"No data";
 
  101  int cnt = 0, point = 0;
 
  110  while (cnt < 
fSize) {
 
  111    Double_t resid = 
fValue[cnt++];
 
  112    Double_t* derLoc = 
GetValue() + cnt;
 
  120    Double_t* derGlo = 
GetValue() + cnt;
 
  128    printf(
"\n*** Point#%2d | Residual = %+.4e | Weight = %+.4e\n", point++, resid, 
weight);
 
  130    for (
int i = 0; 
i < nLoc; 
i++) {
 
  131      printf(
"[%5d] %+.4e|", indLoc[
i], derLoc[
i]);
 
  135    for (
int i = 0; 
i < nGlo; 
i++) {
 
  136      printf(
"[%5d] %+.4e|", indGlo[
i], derGlo[
i]);
 
 
  146    LOG(info) << 
"No data";
 
  150  double prodsum = 0.0;
 
  152  while (cnt < 
fSize) {
 
  153    Double_t resid = 
fValue[cnt++];
 
  158    Double_t* derGlo = 
GetValue() + cnt;
 
  165    for (
int i = nGlo; 
i--;) {
 
  166      if (indGlo[
i] == indx) {
 
  167        prodsum += resid * 
weight * derGlo[
i];
 
 
  178    LOG(error) << 
"No data";
 
  181  int cnt = 0, point = 0;
 
  182  while (cnt < 
fSize) {
 
  188    Double_t* derGlo = 
GetValue() + cnt;
 
  195    if (pnt != point++) {
 
  198    for (
int i = nGlo; 
i--;) {
 
  199      if (indGlo[
i] == indx) {
 
 
  212    LOG(error) << 
"No data";
 
  215  int cnt = 0, point = 0;
 
  216  while (cnt < 
fSize) {
 
  218    Double_t* derLoc = 
GetValue() + cnt;
 
  229    if (pnt != point++) {
 
  232    for (
int i = nLoc; 
i--;) {
 
  233      if (indLoc[
i] == indx) {
 
 
  246    LOG(error) << 
"No data";
 
  249  int cnt = 0, point = 0;
 
  250  while (cnt < 
fSize) {
 
  251    Double_t resid = 
fValue[cnt++];
 
  259    if (pnt != point++) {
 
 
  271    LOG(error) << 
"No data";
 
  274  int cnt = 0, point = 0;
 
  275  while (cnt < 
fSize) {
 
 
  296  Int_t* tmpI = 
new Int_t[bfsize];
 
  301  Double_t* tmpD = 
new Double_t[bfsize];
 
 
  313  UShort_t* tmpI = 
new UShort_t[bfsize];
 
 
ClassImp(MillePedeRecord)
 
Class to store the data of single track processing.
 
Store residuals and local/global deriavtives from a single track processing.
 
MillePedeRecord & operator=(const MillePedeRecord &rhs)
assignment op-r
 
void SetDtBufferSize(Int_t sz)
 
Int_t fSize
size of the record
 
Double_t GetWeight() const
 
void SetGrBufferSize(Int_t sz)
 
void ExpandDtBuffer(Int_t bfsize)
add extra space for derivatives data
 
Int_t * fIndex
[fSize] index of variables
 
void AddIndexValue(Int_t ind, Double_t val)
add new pair of index/value
 
void Print(const Option_t *opt="") const override
print itself
 
Double_t GetGlobalDeriv(Int_t pnt, Int_t indx) const
get derivative over global variable indx at point pnt
 
UShort_t * fGroupID
[fNGroups] groups id's+1 (in increasing order)
 
Int_t fNGroups
number of groups (e.g. detectors) contributing
 
Int_t GetGrBufferSize() const
 
void MarkGroup(Int_t id)
mark the presence of the detector group
 
MillePedeRecord()
default c-tor
 
Int_t GetGroupID(Int_t i) const
 
Double_t GetGloResWProd(Int_t indx) const
get sum of derivative over global variable indx * res. at point * weight
 
Double32_t fWeight
global weight for the record
 
void ExpandGrBuffer(Int_t bfsize)
add extra space for groupID data
 
Double_t GetResidual(Int_t pnt) const
get residual at point pnt
 
Double_t * GetValue() const
 
~MillePedeRecord() override
destuctor
 
Bool_t IsResidual(Int_t i) const
 
Double_t GetLocalDeriv(Int_t pnt, Int_t indx) const
get derivative over local variable indx at point pnt
 
Double32_t * fValue
[fSize] array of values: derivs,residuals
 
Int_t GetDtBufferSize() const
 
Bool_t IsWeight(Int_t i) const
 
GLuint GLuint GLfloat weight
 
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"