2 #include "AliOnlineReconstructionUtil.h"
14 #include <TSQLServer.h>
15 #include <TSQLResult.h>
24 #define WINDOWS_WIDTH 400
25 #define WINDOWS_HEIGHT 500
50 TGMainFrame(gClient->GetRoot(),10,10,kMainFrame | kVerticalFrame),
56 fMultiplicityMinEntry(0),
57 fMultiplicityMaxEntry(0),
60 fTemporaryCheckbox(0),
61 fPermanentCheckbox(0),
67 fServerSocket(SERVER_COMMUNICATION_REQ),
76 SetLayoutBroken(kTRUE);
85 cout<<
"ADMIN PANEL -- List events descructor called";
86 cout<<
" --- OK"<<endl;
98 Emit(
"SelectedEvent()");
104 TGGroupFrame *fRunGroupFrame =
new TGGroupFrame(
this,
"Run");
105 fRunGroupFrame->SetLayoutBroken(kTRUE);
108 fRunGroupFrame->AddFrame(
fRunMinEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
111 TGLabel *fRunMinLabel =
new TGLabel(fRunGroupFrame,
"Min:");
112 fRunMinLabel->SetTextJustify(36);
113 fRunMinLabel->SetMargins(0,0,0,0);
114 fRunMinLabel->SetWrapLength(-1);
115 fRunGroupFrame->AddFrame(fRunMinLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
116 fRunMinLabel->MoveResize(8,22,30,18);
118 TGLabel *fRunMaxLabel =
new TGLabel(fRunGroupFrame,
"Max:");
119 fRunMaxLabel->SetTextJustify(36);
120 fRunMaxLabel->SetMargins(0,0,0,0);
121 fRunMaxLabel->SetWrapLength(-1);
122 fRunGroupFrame->AddFrame(fRunMaxLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
123 fRunMaxLabel->MoveResize(120,22,30,24);
126 fRunGroupFrame->AddFrame(
fRunMaxEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
129 fRunGroupFrame->SetLayoutManager(
new TGVerticalLayout(fRunGroupFrame));
130 AddFrame(fRunGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
131 fRunGroupFrame->MoveResize(8,8,230,60);
134 TGGroupFrame *fEventGroupFrame =
new TGGroupFrame(
this,
"Event");
135 fEventGroupFrame->SetLayoutBroken(kTRUE);
138 fEventGroupFrame->AddFrame(
fEventMinEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
141 TGLabel *fEventMinLabel =
new TGLabel(fEventGroupFrame,
"Min:");
142 fEventMinLabel->SetTextJustify(36);
143 fEventMinLabel->SetMargins(0,0,0,0);
144 fEventMinLabel->SetWrapLength(-1);
145 fEventGroupFrame->AddFrame(fEventMinLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
146 fEventMinLabel->MoveResize(8,22,30,18);
148 TGLabel *fEventMaxLabel =
new TGLabel(fEventGroupFrame,
"Max:");
149 fEventMaxLabel->SetTextJustify(36);
150 fEventMaxLabel->SetMargins(0,0,0,0);
151 fEventMaxLabel->SetWrapLength(-1);
152 fEventGroupFrame->AddFrame(fEventMaxLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
153 fEventMaxLabel->MoveResize(120,22,30,24);
156 fEventGroupFrame->AddFrame(
fEventMaxEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
159 fEventGroupFrame->SetLayoutManager(
new TGVerticalLayout(fEventGroupFrame));
160 AddFrame(fEventGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
161 fEventGroupFrame->MoveResize(8,68,230,60);
164 TGGroupFrame *fMultiplicityGroupFrame =
new TGGroupFrame(
this,
"Multiplicity");
165 fMultiplicityGroupFrame->SetLayoutBroken(kTRUE);
168 fMultiplicityGroupFrame->AddFrame(
fMultiplicityMinEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
171 TGLabel *fMultiplicityMinLabel =
new TGLabel(fMultiplicityGroupFrame,
"Min:");
172 fMultiplicityMinLabel->SetTextJustify(36);
173 fMultiplicityMinLabel->SetMargins(0,0,0,0);
174 fMultiplicityMinLabel->SetWrapLength(-1);
175 fMultiplicityGroupFrame->AddFrame(fMultiplicityMinLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
176 fMultiplicityMinLabel->MoveResize(8,22,30,18);
178 TGLabel *fMultiplicityMaxLabel =
new TGLabel(fMultiplicityGroupFrame,
"Max:");
179 fMultiplicityMaxLabel->SetTextJustify(36);
180 fMultiplicityMaxLabel->SetMargins(0,0,0,0);
181 fMultiplicityMaxLabel->SetWrapLength(-1);
182 fMultiplicityGroupFrame->AddFrame(fMultiplicityMaxLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
183 fMultiplicityMaxLabel->MoveResize(120,22,30,24);
186 fMultiplicityGroupFrame->AddFrame(
fMultiplicityMaxEntry,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
189 fMultiplicityGroupFrame->SetLayoutManager(
new TGVerticalLayout(fMultiplicityGroupFrame));
190 AddFrame(fMultiplicityGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
191 fMultiplicityGroupFrame->MoveResize(8,128,230,60);
194 TGGroupFrame *fBeamGroupFrame =
new TGGroupFrame(
this,
"Beam");
195 fBeamGroupFrame->SetLayoutBroken(kTRUE);
201 fBeamGroupFrame->AddFrame(
fPPcheckbox,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
208 fBeamGroupFrame->AddFrame(
fPbPbcheckbox,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
211 fBeamGroupFrame->SetLayoutManager(
new TGVerticalLayout(fBeamGroupFrame));
212 AddFrame(fBeamGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
213 fBeamGroupFrame->MoveResize(8,188,230,60);
216 TGGroupFrame *fStorageGroupFrame =
new TGGroupFrame(
this,
"Storage");
217 fStorageGroupFrame->SetLayoutBroken(kTRUE);
223 fStorageGroupFrame->AddFrame(
fPermanentCheckbox,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
230 fStorageGroupFrame->AddFrame(
fTemporaryCheckbox,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
233 fStorageGroupFrame->SetLayoutManager(
new TGVerticalLayout(fStorageGroupFrame));
234 AddFrame(fStorageGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
235 fStorageGroupFrame->MoveResize(8,248,230,60);
238 TGGroupFrame *fTriggerGroupFrame =
new TGGroupFrame(
this,
"Trigger");
239 fTriggerGroupFrame->SetLayoutBroken(kTRUE);
245 fTriggerGroupFrame->AddFrame(
fTriggerBox,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
248 fTriggerGroupFrame->SetLayoutManager(
new TGVerticalLayout(fStorageGroupFrame));
249 AddFrame(fTriggerGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
250 fTriggerGroupFrame->MoveResize(8,310,230,60);
254 TGGroupFrame *fStatusGroupFrame =
new TGGroupFrame(
this,
"Status");
255 fStatusGroupFrame->SetLayoutBroken(kTRUE);
257 fStatusLabel =
new TGLabel(fStatusGroupFrame,
"Status label");
261 fStatusGroupFrame->AddFrame(
fStatusLabel,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
264 fStatusGroupFrame->SetLayoutManager(
new TGVerticalLayout(fStatusGroupFrame));
265 AddFrame(fStatusGroupFrame,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
266 fStatusGroupFrame->MoveResize(8,372,230,60);
274 AddFrame(
fMarkButton,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
282 AddFrame(
fLoadButton,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
290 AddFrame(
fGetListButton,
new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
304 fListBox->AddEntry(
new TGString(
"Run Event System Mult Marked"),0);
305 AddFrame(
fListBox,
new TGLayoutHints(kLHintsLeft | kLHintsExpandY | kLHintsTop,2,2,2,2));
306 fListBox->MoveResize(8,510,230,436);
315 struct serverRequestStruct *requestMessage =
new struct serverRequestStruct;
316 requestMessage->messageType = REQUEST_GET_TRIGGER_LIST;
320 cout<<
"ADMIN PANEL -- couldn't send request for set of trigger classes"<<endl;
324 vector<string100> *tmpSet;
327 cout<<
"ADMIN PANEL -- problems getting server's response"<<endl;
331 vector<string100> &receivedSet = *tmpSet;
333 cout<<
"ADMIN PANEL -- received set of size:"<<receivedSet.size()<<endl;
335 vector<string100>::iterator it;
337 for (it = receivedSet.begin(); it != receivedSet.end(); ++it)
349 struct serverRequestStruct *requestMessage =
new struct serverRequestStruct;
352 requestMessage->runNumber[0]=
fRunMinEntry->GetIntNumber();
353 requestMessage->runNumber[1]=
fRunMaxEntry->GetIntNumber();
357 else{requestMessage->marked[0]=-1;}
359 else{requestMessage->marked[1]=-1;}
362 if(
fPPcheckbox->GetState()==1){strcpy(requestMessage->system[0],
"p-p");}
363 else{strcpy(requestMessage->system[0],
"");}
364 if(
fPbPbcheckbox->GetState()==1){strcpy(requestMessage->system[1],
"A-A");}
365 else{strcpy(requestMessage->system[1],
"");}
370 cout<<
"SELECTED TRIGGER CLASS:"<<triggerClassName<<endl;
371 strcpy(requestMessage->triggerClass,triggerClassName);
375 strcpy(requestMessage->triggerClass,
"No trigger selection");
377 requestMessage->messageType = REQUEST_LIST_EVENTS;
381 cout<<
"ADMIN PANEL -- couldn't send get list request"<<endl;
386 fListBox->AddEntry(
new TGString(
"Run Event System Mult Marked"),0);
388 vector<serverListStruct> *tmpVector;
391 cout<<
"ADMIN PANEL -- problems getting server's response"<<endl;
395 vector<serverListStruct> &receivedList = *tmpVector;
397 if(receivedList.size()==0){
402 for(
unsigned int i=0;i<receivedList.size();i++)
404 fListBox->AddEntry(
new TGString(Form(
"%d %d %s %d %d ",
405 receivedList[i].runNumber,
406 receivedList[i].eventNumber,
407 receivedList[i].system,
408 receivedList[i].multiplicity,
409 receivedList[i].marked)),i+1);
411 fListBox->MoveResize(8,510,230,436);
414 gClient->HandleInput();
415 gClient->NeedRedraw(
fListBox, kTRUE);
416 gClient->HandleInput();
430 int selectedEventNumber =
fListBox->GetSelected()-1;
432 if(selectedEventNumber<0)
return;
437 struct serverRequestStruct *requestMessage =
new struct serverRequestStruct;
438 requestMessage->eventsRunNumber = runNumber;
439 requestMessage->eventsEventNumber = eventNumber;
440 requestMessage->messageType = REQUEST_MARK_EVENT;
444 cout<<
"ADMIN PANEL -- couldn't send mark request"<<endl;
451 cout<<
"ADMIN PANEL -- problems getting server's response"<<endl;
459 cout<<
"ADMIN PANEL -- Event marked succesfully"<<endl;
464 cout<<
"ADMIN PANEL -- Could not matk event"<<endl;
470 int selectedEventNumber =
fListBox->GetSelected()-1;
471 if(selectedEventNumber<0)
return;
476 struct serverRequestStruct *requestMessage =
new struct serverRequestStruct;
477 requestMessage->eventsRunNumber = runNumber;
478 requestMessage->eventsEventNumber = eventNumber;
479 requestMessage->messageType = REQUEST_GET_EVENT;
483 cout<<
"ADMIN PANEL -- couldn't send get event request"<<endl;
487 AliESDEvent *resultEvent;
490 cout<<
"ADMIN PANEL -- problems getting server's response"<<endl;
497 cout<<
"ADMIN -- received event"<<endl;
502 cout<<
"ADMIN -- received no event"<<endl;
512 cout<<
"Quiting list events";
514 cout<<
" -- OK"<<endl;
519 switch (GET_MSG(msg))
522 switch (GET_SUBMSG(msg))
TGTextButton * fMarkButton
AliZMQManager * fEventManager
std::vector< TString > fTriggerClasses
void TriggerClassesFromCDB()
static AliStorageAdministratorPanelListEvents * fInstance
static AliZMQManager * GetInstance()
TGTextButton * fLoadButton
TGCheckButton * fPPcheckbox
TGNumberEntry * fEventMaxEntry
AliStorageAdministratorPanelListEvents()
std::vector< serverListStruct > fEventsListVector
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t)
TGNumberEntry * fRunMaxEntry
TGTextButton * fGetListButton
TGTextButton * fUpdateTriggersButton
TGNumberEntry * fRunMinEntry
void CreateSocket(storageSockets socket)
AliESDEvent * fCurrentEvent
bool Send(std::vector< serverListStruct > list, storageSockets socket)
TGNumberEntry * fEventMinEntry
ClassImp(AliStorageAdministratorPanelListEvents)
TGCheckButton * fPbPbcheckbox
TGCheckButton * fPermanentCheckbox
static AliStorageAdministratorPanelListEvents * GetInstance()
void SetOfflineMode(Bool_t)
storageSockets fServerSocket
void RecreateSocket(storageSockets socket)
TGCheckButton * fTemporaryCheckbox
TGNumberEntry * fMultiplicityMinEntry
virtual ~AliStorageAdministratorPanelListEvents()
bool Get(std::vector< serverListStruct > *&result, storageSockets socket)
TGNumberEntry * fMultiplicityMaxEntry