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 TList * aList = fHomer->GetAsyncBlockList();
52 if(blockList) return dynamic_cast<TObject*>(blockList);
56 cout << "AliEveEventBufferHomer::GetEventFromSource() : fHomer is null pointer!!"<<endl;
60 ///___________________________________________________________________________
61 void AliEveEventBufferHomer::AddToBuffer(TObject * event) {
62 cout << "Add to buffer"<<endl;
64 fBIndex[kTop] = CalculateNext(fBIndex[kTop]);
65 TList * list = dynamic_cast<TList*>(fEventBuffer->At(fBIndex[kTop]));
68 list->AddAll(dynamic_cast<TList*>(event));
74 ///______________________________________________________________________
75 void AliEveEventBufferHomer::Initialize() {
76 //Add TList pointers to the buffer array
78 //Create TLists in all of buffer
79 for(Int_t i = 0; i < fBufferSize; i++) {
80 TList * list = new TList();
81 list->SetOwner(kTRUE);
82 fEventBuffer->AddAt(list, i);
85 //Create the async list
86 fAsyncList = new TList();
87 fAsyncList->SetOwner(kTRUE);
89 Int_t iResult = fHomer->Initialize();
91 cout << "Error Initializing HOMER!!!"<<endl;
96 fHomer->SetRetryCount(1,15);
97 fHomer->SetBlockOwner(kFALSE);
98 fHomer->StartEveSourceListLoop();
102 ///______________________________________________________________________
103 void AliEveEventBufferHomer::ConnectToSource () {
105 fHomer->SetRetryCount(200, 15);
106 fHomer->ReConnectHOMER();
109 ///_____________________________________________________________________
110 void AliEveEventBufferHomer::WriteToFile(Int_t runnumber){
112 TFile * file = TFile::Open(Form("%d_0x%016X_ESD.root", runnumber, GetEventId()), "RECREATE");
113 fEventBuffer->At(fBIndex[kCurrent])->Write("blockList", TObject::kSingleKey);
117 TFile * afile = TFile::Open(Form("%d_0x%016X_Async.root", runnumber, GetEventId()), "RECREATE");
118 fAsyncList->Write("blockList", TObject::kSingleKey);