#include "AliMillePedeRecord.h" #include #include "AliLog.h" /**********************************************************************************************/ /* AliMillePedeRecords: class to store the data of single track processing */ /* Format: for each measured point the data is stored consequtively */ /* INDEX VALUE */ /* -1 residual */ /* Local_param_id dResidual/dLocal_param */ /* ... ... */ /* -2 weight of the measurement */ /* Global_param_od dResidual/dGlobal_param */ /* ... ... */ /* */ /* The records for all processed tracks are stored in the temporary tree in orgder to be */ /* reused for multiple iterations of MillePede */ /* */ /* Author: ruben.shahoyan@cern.ch */ /* */ /**********************************************************************************************/ ClassImp(AliMillePedeRecord) //_____________________________________________________________________________________________ AliMillePedeRecord::AliMillePedeRecord() : fSize(0),fNGroups(0),fRunID(0),fGroupID(0),fIndex(0),fValue(0),fWeight(1) {SetUniqueID(0);} //_____________________________________________________________________________________________ AliMillePedeRecord::AliMillePedeRecord(const AliMillePedeRecord& src) : TObject(src),fSize(src.fSize),fNGroups(src.fNGroups),fRunID(src.fRunID),fGroupID(0),fIndex(0),fValue(0),fWeight(src.fWeight) { fIndex = new Int_t[GetDtBufferSize()]; memcpy(fIndex,src.fIndex,fSize*sizeof(Int_t)); fValue = new Double_t[GetDtBufferSize()]; memcpy(fValue,src.fValue,fSize*sizeof(Double_t)); fGroupID = new UShort_t[GetGrBufferSize()]; memcpy(fGroupID,src.fGroupID,GetGrBufferSize()*sizeof(UShort_t)); } //_____________________________________________________________________________________________ AliMillePedeRecord& AliMillePedeRecord::operator=(const AliMillePedeRecord& rhs) { if (this!=&rhs) { Reset(); for (int i=0;i0 && fGroupID[fNGroups-1]==id) return; // already there if (fNGroups>=GetGrBufferSize()) ExpandGrBuffer(2*(fNGroups+1)); fGroupID[fNGroups++] = id; }