5 #include "AliEveEventBufferHomer.h"
6 #include "AliEveHOMERManager.h"
13 ClassImp(AliEveEventBufferHomer);
15 ///_______________________________________________________________________
16 AliEveEventBufferHomer::AliEveEventBufferHomer() :
21 // see header file for class documentation
22 fHomer = new AliEveHOMERManager();
28 ///____________________________________________________________________
29 AliEveEventBufferHomer::~AliEveEventBufferHomer() {
39 ULong64_t AliEveEventBufferHomer::GetEventIdFromSource() {
41 return fHomer->GetEventID();
44 ///______________________________________________________________________
45 TObject * AliEveEventBufferHomer::GetEventFromSource() {
46 //see header file for documentation
48 cout << "calling nexthomerevent"<<endl;
49 TList * blockList = fHomer->NextHOMEREvent();
50 cout << "getting async block list"<<endl;
51 TList * aList = fHomer->GetAsyncBlockList();
53 if(blockList) return dynamic_cast<TObject*>(blockList);
57 cout << "AliEveEventBufferHomer::GetEventFromSource() : fHomer is null pointer!!"<<endl;
61 ///___________________________________________________________________________
62 void AliEveEventBufferHomer::AddToBuffer(TObject * event) {
63 cout << "AliEveEventBufferHomer::Add to buffer"<<endl;
65 cout << "event is NULL pointer, return" << endl;
70 TList * listIn = dynamic_cast<TList*>(event);
71 if(!(listIn->GetSize() > 0)) {
72 cout << "AliEveEventBufferHomer::AddToBuffer(): List Is empty, not added to buffer!"<<endl;
76 fBIndex[kTop] = CalculateNext(fBIndex[kTop]);
77 TList * list = dynamic_cast<TList*>(fEventBuffer->At(fBIndex[kTop]));
80 list->AddAll(dynamic_cast<TList*>(event));
86 ///______________________________________________________________________
87 void AliEveEventBufferHomer::Initialize() {
88 //Add TList pointers to the buffer array
90 //Create TLists in all of buffer
91 for(Int_t i = 0; i < fBufferSize; i++) {
92 TList * list = new TList();
93 list->SetOwner(kTRUE);
94 fEventBuffer->AddAt(list, i);
97 //Create the async list
98 fAsyncList = new TList();
99 fAsyncList->SetOwner(kTRUE);
101 Int_t iResult = fHomer->Initialize();
103 cout << "Error Initializing HOMER!!!"<<endl;
108 fHomer->SetRetryCount(1,15);
109 fHomer->SetBlockOwner(kFALSE);
110 fHomer->StartEveSourceListLoop();
114 ///______________________________________________________________________
115 void AliEveEventBufferHomer::ConnectToSource () {
117 fHomer->SetRetryCount(200, 15);
118 fHomer->ReConnectHOMER();
121 ///_____________________________________________________________________
122 void AliEveEventBufferHomer::WriteToFile(Int_t runnumber){
124 TFile * file = TFile::Open(Form("%d_0x%016X_ESD.root", runnumber, GetEventId()), "RECREATE");
125 fEventBuffer->At(fBIndex[kCurrent])->Write("blockList", TObject::kSingleKey);
129 TFile * afile = TFile::Open(Form("%d_0x%016X_Async.root", runnumber, GetEventId()), "RECREATE");
130 fAsyncList->Write("blockList", TObject::kSingleKey);