]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MONITOR/alistoragemanager/alistorageminimalexample.cxx
Adding Domenico Colella as responsible for SPD part in TRI pp
[u/mrichter/AliRoot.git] / MONITOR / alistoragemanager / alistorageminimalexample.cxx
1 #include "AliStorageEventManager.h"
2 #include <iostream>
3 #include <TFile.h>
4 #include <TThread.h>
5
6
7 using namespace std;
8
9 AliESDEvent *fCurrentEvent[2];
10 TTree *fCurrentTree[2];
11 TMutex fMutex;
12 int fEventInUse = 1;
13 int fWritingToEventIndex = 0;
14 bool fIsNewEventAvaliable = false;
15
16
17 int main()
18 {
19     AliStorageEventManager *eventManager = AliStorageEventManager::GetEventManagerInstance();
20     eventManager->CreateSocket(EVENTS_SERVER_SUB);
21     
22     fCurrentEvent[0]=0;
23     fCurrentEvent[1]=0;
24     fCurrentTree[0]=0;
25     fCurrentTree[1]=0;
26     AliESDEvent *tmpEvent = NULL;
27     
28     while(1)
29     {
30         tmpEvent = eventManager->GetEvent(EVENTS_SERVER_SUB);
31         
32         if(tmpEvent)
33         {
34             if(tmpEvent->GetRunNumber()>=0)
35             {
36                 fMutex.Lock();
37                 if(fEventInUse == 0){fWritingToEventIndex = 1;}
38                 else if(fEventInUse == 1){fWritingToEventIndex = 0;}
39                 cout<<"Received new event"<<endl;
40                 if(fCurrentEvent[fWritingToEventIndex])
41                 {
42                     delete fCurrentEvent[fWritingToEventIndex];
43                     fCurrentEvent[fWritingToEventIndex]=0;
44                 }
45                 fCurrentEvent[fWritingToEventIndex] = tmpEvent;
46                 fIsNewEventAvaliable = true;
47                 fMutex.UnLock();
48             }
49         }
50     }
51         return 0;
52 }