9 #include "FairRootManager.h" 
   12 #include "TClonesArray.h" 
   16         fBranchName(branchName), fClassName(className), fActivateBuffering(kTRUE), 
fVerbose(3)
 
   18         FairRootManager::Instance()->Register(branchName, className, folderName, persistance);
 
   27         FairRootManager* ioman = FairRootManager::Instance();
 
   28         std::vector<FairTimeStamp*> data;
 
   30                 if (
fVerbose > 0) std::cout << 
"-I- PndWriteoutBuffer::WriteOutData for time: " << time << std::endl;
 
   33                         TClonesArray* myArray = ioman->GetTClonesArray(
fBranchName);
 
   35                                 std::cout << 
"-E- PndWriteoutBuffer::WriteOutData " << 
fBranchName << 
" array is not available!" << std::endl;
 
   36                         if (
fVerbose > 0) std::cout << 
"-I- PndWriteoutBuffer::WriteOutData size: " << data.size() << std::endl;
 
   37                         for (
int i = 0; 
i < data.size(); 
i++){
 
   40                                         std::cout << i << 
" : ";
 
   42                                         std::cout << std::endl;
 
   61         typedef std::multimap<double, FairTimeStamp*>::iterator DTMapIter;
 
   62         std::vector<FairTimeStamp*> result;
 
   64                 if (
fVerbose > 1) std::cout << 
"-I- GetRemoveOldData: DeadTime: " << it->first << 
" Data: " << it->second << std::endl;
 
   65                 result.push_back(it->second);
 
   82                 typedef  std::multimap<double, FairTimeStamp*>::iterator DTMapIter;
 
   83                 typedef  std::map<FairTimeStamp, double>::iterator DataMapIter;
 
   86                 if(timeOfOldData > -1){                                 
 
   87                         if (
fVerbose > 1) std::cout << 
" OldData found! " << std::endl;
 
   88                         if (
fVerbose > 1) std::cout << 
"New Data: " << activeTime << 
" : " << data << std::endl;
 
   89                         double currentdeadtime = timeOfOldData;
 
   90                         FairTimeStamp* oldData;
 
   93                                 if (
fVerbose > 1) std::cout << 
"Check Data: " << it->first << 
" : " << oldData << std::endl;
 
   94                                 if (oldData->equal(data)){
 
   95                                         if (
fVerbose > 1) std::cout << 
" oldData == data " << std::endl;
 
   96                                         if (
fVerbose > 1) std::cout << it->first << 
" : " << it->second << std::endl;
 
  102                         std::vector<std::pair<double, FairTimeStamp*> > modifiedData = 
Modify(std::pair<double, FairTimeStamp*>(currentdeadtime, oldData), std::pair<double, FairTimeStamp*>(-1, data));
 
  103                         for (
int i = 0; 
i < modifiedData.size(); 
i++){
 
  105                                 if (
fVerbose > 1) std::cout << 
i << 
" :Modified Data: " << modifiedData[
i].first << 
" : " << modifiedData[
i].second << std::endl;
 
  110                                 std::cout << 
"-I- PndWriteoutBuffer::FillNewData Data Inserted: " << activeTime << 
" : ";
 
  112                                 std::cout << std::endl;
 
  114                         fDeadTime_map.insert(std::pair<double, FairTimeStamp*>(activeTime, data));
 
virtual void FillDataMap(FairTimeStamp *data, double activeTime)=0
add a new element in the search buffer 
std::multimap< double, FairTimeStamp * > fDeadTime_map
virtual std::vector< FairTimeStamp * > GetRemoveOldData(double time)
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp * > oldData, std::pair< double, FairTimeStamp * > newData)
virtual void EraseDataFromDataMap(FairTimeStamp *data)=0
delete the element from the search buffer (see PndSdsDigiPixelWriteoutBuffer) 
virtual void FillNewData(FairTimeStamp *data, double activeTime)
virtual void WriteOutData(double time)
virtual void AddNewDataToTClonesArray(FairTimeStamp *data)=0
store the data from the FairTimeStamp pointer in a TClonesArray (you have to cast it to your type of ...
Bool_t fActivateBuffering
ClassImp(PndWriteoutBuffer)
virtual double FindTimeForData(FairTimeStamp *data)=0
if the same data object (like a pad or a pixel) is already present in the buffer, the time of this ob...
virtual void WriteOutAllData()
A container class to store digi data during events. 
virtual std::vector< FairTimeStamp * > GetAllData()