57 : FairWriteoutBuffer()
65 if (FairRootManager::Instance()) {
66 Data* data =
new Data();
67 const char* className = data->ClassName();
69 LOG(info) <<
"Class name is " << className;
70 fArray = FairRootManager::Instance()->Register(branchName, className, folderName, persistence);
160 void Fill(UInt_t address, Data* data)
163 LOG(debug4) <<
"RO: Filling data at t = " << data->GetTimeStart() <<
" in address " << address;
167 LOG(fatal) << GetName() <<
": inconsistent data input to Fill(). "
168 <<
"Start time is " << data->GetTimeStart() <<
" stop time is " << data->GetTimeStop();
173 Bool_t dataFound = kFALSE;
189 std::vector<Data*> newDataList;
197 Int_t nData = newDataList.size();
198 for (Int_t iData1 = 0; iData1 < nData; iData1++) {
199 for (Int_t iData2 = iData1 + 1; iData2 < nData; iData2++) {
201 LOG(fatal) << GetName() <<
": Interfering data in return from Modify! "
202 <<
"Data 1: t(start) = " << newDataList[iData1]->GetTimeStart()
203 <<
" ns, t(stop) = " << newDataList[iData1]->GetTimeStop()
204 <<
", Data 2: t(start) = " << newDataList[iData2]->GetTimeStart()
205 <<
" ns, t(stop) = " << newDataList[iData2]->GetTimeStop();
215 for (UInt_t iData = 0; iData < newDataList.size(); iData++) {
216 LOG(debug4) <<
"RO: Filling modified data at address " << address
217 <<
", t = " << newDataList[iData]->GetTimeStart() <<
" to " << newDataList[iData]->GetTimeStop();
218 Fill(address, newDataList[iData]);
226 fBuffer.insert(std::pair<UInt_t, Data*>(address, data));
227 LOG(debug4) <<
"RO: Insert data at address " << address <<
", t = " << data->GetTimeStart() <<
" to "
228 << data->GetTimeStop();
262 virtual Int_t
Merge(Data* oldData1, Data* oldData2, std::vector<Data*>& newDataList)
268 Data* firstData = (oldData1->GetTimeStart() < oldData2->GetTimeStart() ? oldData1 : oldData2);
269 Double_t stopTime = std::max(oldData1->GetTimeStop(), oldData2->GetTimeStop());
272 Data* newData =
new Data(*firstData);
273 newData->SetTimeStop(stopTime);
276 newDataList.push_back(newData);