2 // Author: Matevz Tadel 2009
4 /**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 #include "AliEveConfigManager.h"
12 #include <AliEveMultiView.h>
13 #include <TEveManager.h>
14 #include <TEveBrowser.h>
15 #include <TEveWindow.h>
16 #include <TGFileDialog.h>
19 #include "AliEveEventManager.h"
20 #include "AliEveMacroExecutor.h"
21 #include "AliEveMacroExecutorWindow.h"
22 #include "AliEveMacro.h"
24 class AliEveMacroExecutor;
25 class TEveProjectionManager;
33 //______________________________________________________________________________
34 // Full description of AliEveConfigManager
37 ClassImp(AliEveConfigManager)
39 AliEveConfigManager* AliEveConfigManager::fgMaster = 0;
45 kAEMDefault, kAEMScreen, kAEMProjector, kAEMNotransparency, kAEMTransparentDark, kAEMTransparentLight, kAEMTransparentMonoDark, kAEMTransparentMonoLight, kAEMGreen, kAEMBright, kAEMYellow, kAEMTpc, kAEMAll, kAEM3d, kAEMRphi, kAEMRhoz, kAEMAllhr, kAEM3dhr, kAEMRphihr, kAEMRhozhr, kAEMSavemacros, kAEMLoadmacros, kAEMSave, kAEMOpen
49 //______________________________________________________________________________
50 AliEveConfigManager* AliEveConfigManager::InitializeMaster()
54 static const TEveException kEH("AliEveConfigManager::InitializeMaster ");
57 throw kEH + "Master already initialized.";
59 fgMaster = new AliEveConfigManager;
63 //______________________________________________________________________________
64 AliEveConfigManager* AliEveConfigManager::GetMaster()
68 static const TEveException kEH("AliEveConfigManager::GetMaster ");
71 throw kEH + "Master not initialized.";
76 //______________________________________________________________________________
77 AliEveConfigManager::AliEveConfigManager() :
82 // Expected TEveManager is already initialized.
84 fAliEvePopup = new TGPopupMenu(gClient->GetRoot());
86 fAliEvePopup->AddEntry("&Default", kAEMDefault);
87 fAliEvePopup->AddEntry("&Screen", kAEMScreen);
88 fAliEvePopup->AddEntry("&Projector", kAEMProjector);
90 fAliEvePopup->AddSeparator();
92 fAliEvePopup->AddEntry("&Low transparency", kAEMNotransparency);
94 fAliEvePopup->AddSeparator();
96 fAliEvePopup->AddEntry("&Transparent screen", kAEMTransparentDark);
97 fAliEvePopup->AddEntry("&Transparent projector", kAEMTransparentLight);
98 fAliEvePopup->AddEntry("&Transparent mono dark", kAEMTransparentMonoDark);
99 fAliEvePopup->AddEntry("&Transparent mono light", kAEMTransparentMonoLight);
101 fAliEvePopup->AddSeparator();
103 fAliEvePopup->AddEntry("&First collision setup", kAEMGreen);
104 fAliEvePopup->AddEntry("&Bright", kAEMBright);
106 fAliEvePopup->AddSeparator();
108 fAliEvePopup->AddEntry("&TPC Yellow", kAEMYellow);
109 fAliEvePopup->AddEntry("&TPC Blue", kAEMTpc);
111 fAliEvePopup->AddSeparator();
112 fAliEvePopup->AddSeparator();
113 fAliEvePopup->AddSeparator();
115 fAliEvePopup->AddEntry("&Save all views", kAEMAll);
116 fAliEvePopup->AddEntry("&Save 3D View", kAEM3d);
117 fAliEvePopup->AddEntry("&Save RPhi View", kAEMRphi);
118 fAliEvePopup->AddEntry("&Save RhoZ View", kAEMRhoz);
120 fAliEvePopup->AddSeparator();
122 fAliEvePopup->AddEntry("&Save all views HR", kAEMAllhr);
123 fAliEvePopup->AddEntry("&Save 3D View HR", kAEM3dhr);
124 fAliEvePopup->AddEntry("&Save RPhi View HR", kAEMRphihr);
125 fAliEvePopup->AddEntry("&Save RhoZ View HR", kAEMRhozhr);
127 fAliEvePopup->AddSeparator();
128 fAliEvePopup->AddSeparator();
129 fAliEvePopup->AddSeparator();
131 fAliEvePopup->AddEntry("&Save Data Selection macros", kAEMSavemacros);
132 fAliEvePopup->AddEntry("&Load Data Selection macros", kAEMLoadmacros);
134 fAliEvePopup->AddSeparator();
135 fAliEvePopup->AddSeparator();
136 fAliEvePopup->AddSeparator();
138 fAliEvePopup->AddEntry("&Save VizDB", kAEMSave);
139 fAliEvePopup->AddEntry("&Load VizDB", kAEMOpen);
141 fAliEvePopup->AddSeparator();
143 fAliEvePopup->Connect("Activated(Int_t)", "AliEveConfigManager",
144 this, "AliEvePopupHandler(Int_t)");
147 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,25,4)
148 TGMenuBar *mBar = gEve->GetBrowser()->GetMenuBar();
149 mBar->AddPopup("&AliEve", fAliEvePopup, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
150 gEve->GetBrowser()->GetTopMenuFrame()->Layout();
152 // Uber hack as TRootBrowser does not provede manu-bar getter.
153 TGFrameElement *xxFE = (TGFrameElement*) gEve->GetBrowser()->GetList()->First();
154 TGCompositeFrame *xxCF = (TGCompositeFrame*) xxFE->fFrame;
155 xxFE = (TGFrameElement*) xxCF->GetList()->First();
156 xxCF = (TGCompositeFrame*) xxFE->fFrame;
157 xxFE = (TGFrameElement*) xxCF->GetList()->First();
158 xxCF = (TGCompositeFrame*) xxFE->fFrame;
159 xxFE = (TGFrameElement*) xxCF->GetList()->First();
160 TGMenuBar *mBar = (TGMenuBar*) xxFE->fFrame;
161 mBar->AddPopup("&AliEve", fAliEvePopup, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
162 ((TGCompositeFrame*)mBar->GetParent()->GetParent())->Layout();
166 //==============================================================================
177 const char *gMacroSaveAsTypes[] = {"CINT Macro", "*.C",
178 0, 0}; //for saving/loading macros
180 const char *gPictureSaveAsTypes[] = {"PNG Image", "*.png",
181 0, 0}; //for saving pictures
185 void AliEveConfigManager::AliEvePopupHandler(Int_t id)
187 // Handle user selections from AliEve popup.
189 static const TEveException kEH("AliEveConfigManager::AliEvePopupHandler ");
194 case kAEMDefault: //default geometry and VizDB
196 AliEveMultiView *mv = AliEveMultiView::Instance();
198 mv->DestroyAllGeometries(); //destroy RPhi and Rhoz geometries before putting new
200 gEve->LoadVizDB("geom_gentle_default.C", kTRUE, kTRUE); //loading geometry
202 gEve->LoadVizDB("VizDB_scan.C", kTRUE, kTRUE); //loading VizDB
204 if(!gEve->GetViewers()->UseLightColorSet())
205 gEve->GetViewers()->SwitchColorSet(); //white background
207 gEve->FullRedraw3D();
212 case kAEMScreen: //default geometry with black background
214 AliEveMultiView *mv = AliEveMultiView::Instance();
216 mv->DestroyAllGeometries();
218 gEve->LoadVizDB("geom_gentle_default.C", kTRUE, kTRUE);
220 gEve->LoadVizDB("VizDB_scan_screen.C", kTRUE, kTRUE);
222 if(gEve->GetViewers()->UseLightColorSet())
223 gEve->GetViewers()->SwitchColorSet();
225 gEve->FullRedraw3D();
230 case kAEMProjector: //default geometry with white background
232 AliEveMultiView *mv = AliEveMultiView::Instance();
234 mv->DestroyAllGeometries();
236 gEve->LoadVizDB("geom_gentle_projector.C", kTRUE, kTRUE);
238 gEve->LoadVizDB("VizDB_scan_projector.C", kTRUE, kTRUE);
240 if(!gEve->GetViewers()->UseLightColorSet())
241 gEve->GetViewers()->SwitchColorSet();
243 gEve->FullRedraw3D();
248 case kAEMNotransparency: //default geometry with low transparency (5%)
250 AliEveMultiView *mv = AliEveMultiView::Instance();
252 mv->DestroyAllGeometries();
254 gEve->LoadVizDB("geom_gentle_notransparency.C", kTRUE, kTRUE);
256 gEve->LoadVizDB("VizDB_scan.C", kTRUE, kTRUE);
258 if(!gEve->GetViewers()->UseLightColorSet())
259 gEve->GetViewers()->SwitchColorSet();
261 gEve->FullRedraw3D();
267 case kAEMTransparentDark: //default geometry with black background, high transparency (80%)
269 AliEveMultiView *mv = AliEveMultiView::Instance();
271 mv->DestroyAllGeometries();
273 gEve->LoadVizDB("geom_gentle_transparent.C", kTRUE, kTRUE);
275 gEve->LoadVizDB("VizDB_scan_transparentdark.C", kTRUE, kTRUE);
277 if(gEve->GetViewers()->UseLightColorSet())
278 gEve->GetViewers()->SwitchColorSet();
280 gEve->FullRedraw3D();
285 case kAEMTransparentLight: //default geometry with white background, high transparency (80%)
287 AliEveMultiView *mv = AliEveMultiView::Instance();
289 mv->DestroyAllGeometries();
291 gEve->LoadVizDB("geom_gentle_transparent.C", kTRUE, kTRUE);
293 gEve->LoadVizDB("VizDB_scan_transparentlight.C", kTRUE, kTRUE);
295 if(!gEve->GetViewers()->UseLightColorSet())
296 gEve->GetViewers()->SwitchColorSet();
298 gEve->FullRedraw3D();
303 case kAEMTransparentMonoDark:
305 AliEveMultiView *mv = AliEveMultiView::Instance();
307 mv->DestroyAllGeometries();
309 gEve->LoadVizDB("geom_gentle_transparentdark.C", kTRUE, kTRUE);
311 gEve->LoadVizDB("VizDB_scan_transparentdark.C", kTRUE, kTRUE);
313 if(gEve->GetViewers()->UseLightColorSet())
314 gEve->GetViewers()->SwitchColorSet();
316 gEve->FullRedraw3D();
321 case kAEMTransparentMonoLight:
323 AliEveMultiView *mv = AliEveMultiView::Instance();
325 mv->DestroyAllGeometries();
327 gEve->LoadVizDB("geom_gentle_transparentlight.C", kTRUE, kTRUE);
329 gEve->LoadVizDB("VizDB_scan_transparentlight.C", kTRUE, kTRUE);
331 if(!gEve->GetViewers()->UseLightColorSet())
332 gEve->GetViewers()->SwitchColorSet();
334 gEve->FullRedraw3D();
341 AliEveMultiView *mv = AliEveMultiView::Instance();
343 mv->DestroyAllGeometries();
345 gEve->LoadVizDB("geom_gentle_green.C", kTRUE, kTRUE);
347 gEve->LoadVizDB("VizDB_scan.C", kTRUE, kTRUE);
349 if(!gEve->GetViewers()->UseLightColorSet())
350 gEve->GetViewers()->SwitchColorSet();
352 gEve->FullRedraw3D();
359 AliEveMultiView *mv = AliEveMultiView::Instance();
361 mv->DestroyAllGeometries();
363 gEve->LoadVizDB("geom_gentle_bright.C", kTRUE, kTRUE);
365 gEve->LoadVizDB("VizDB_scan.C", kTRUE, kTRUE);
367 if(gEve->GetViewers()->UseLightColorSet())
368 gEve->GetViewers()->SwitchColorSet();
370 gEve->FullRedraw3D();
377 AliEveMultiView *mv = AliEveMultiView::Instance();
379 mv->DestroyAllGeometries();
381 gEve->LoadVizDB("geom_gentle_yellow.C", kTRUE, kTRUE);
383 gEve->LoadVizDB("VizDB_scan_yellow.C", kTRUE, kTRUE);
385 if(!gEve->GetViewers()->UseLightColorSet())
386 gEve->GetViewers()->SwitchColorSet();
388 gEve->FullRedraw3D();
395 AliEveMultiView *mv = AliEveMultiView::Instance();
397 mv->DestroyAllGeometries();
399 gEve->LoadVizDB("geom_gentle_tpc.C", kTRUE, kTRUE);
401 gEve->LoadVizDB("VizDB_scan_tpc.C", kTRUE, kTRUE);
403 if(!gEve->GetViewers()->UseLightColorSet())
404 gEve->GetViewers()->SwitchColorSet();
406 gEve->FullRedraw3D();
411 case kAEMAll: //saving pictures from all three viewers
415 fi.fFileTypes = gPictureSaveAsTypes;
416 fi.fIniDir = StrDup(""); // current directory
418 fi.fOverwrite = kTRUE;
419 new TGFileDialog(gClient->GetDefaultRoot(),
420 gEve->GetMainWindow(), kFDSave, &fi); // dialog
421 if (!fi.fFilename) return;
423 TPMERegexp filere(".*/([^/]+$)");
424 if (filere.Match(fi.fFilename) != 2)
426 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
430 TString file1(filere[1]);
431 TString file2(filere[1]);
432 TString file3(filere[1]);
434 if (!file1.EndsWith(".png"))
435 file1 += "_3D.png"; // adding extensions
437 if (!file2.EndsWith(".png"))
438 file2 += "_RPhi.png"; // adding extensions
440 if (!file3.EndsWith(".png"))
441 file3 += "_RhoZ.png"; // adding extensions
443 gSystem->ChangeDirectory(fi.fIniDir);
445 printf("Saving...\n");
447 TEveViewerList *viewers = gEve->GetViewers();
448 TEveElement::List_i i = viewers->BeginChildren();
450 TEveViewer* view3d = ((TEveViewer*)*i);
451 view3d->GetGLViewer()->SavePicture(file1); // saving pictures
453 TEveViewer* viewrphi = ((TEveViewer*)*i);
454 viewrphi->GetGLViewer()->SavePicture(file2); // saving pictures
456 TEveViewer* viewrhoz = ((TEveViewer*)*i);
457 viewrhoz->GetGLViewer()->SavePicture(file3); // saving pictures
464 case kAEM3d: // saving only 3d view
468 fi.fFileTypes = gPictureSaveAsTypes;
469 fi.fIniDir = StrDup(""); // current directory
471 fi.fOverwrite = kTRUE;
472 new TGFileDialog(gClient->GetDefaultRoot(),
473 gEve->GetMainWindow(), kFDSave, &fi);
474 if (!fi.fFilename) return;
476 TPMERegexp filere(".*/([^/]+$)");
477 if (filere.Match(fi.fFilename) != 2)
479 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
483 TString file1(filere[1]);
485 if (!file1.EndsWith(".png"))
488 gSystem->ChangeDirectory(fi.fIniDir);
490 printf("Saving...\n");
492 TEveViewerList *viewers = gEve->GetViewers();
493 TEveElement::List_i i = viewers->BeginChildren();
495 TEveViewer* view3d = ((TEveViewer*)*i);
496 view3d->GetGLViewer()->SavePicture(file1);
503 case kAEMRphi: // saving only RPhi view
507 fi.fFileTypes = gPictureSaveAsTypes;
508 fi.fIniDir = StrDup(""); // current directory
510 fi.fOverwrite = kTRUE;
511 new TGFileDialog(gClient->GetDefaultRoot(),
512 gEve->GetMainWindow(), kFDSave, &fi);
513 if (!fi.fFilename) return;
515 TPMERegexp filere(".*/([^/]+$)");
516 if (filere.Match(fi.fFilename) != 2)
518 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
522 TString file1(filere[1]);
524 if (!file1.EndsWith(".png"))
527 gSystem->ChangeDirectory(fi.fIniDir);
529 printf("Saving...\n");
531 TEveViewerList *viewers = gEve->GetViewers();
532 TEveElement::List_i i = viewers->BeginChildren();
535 TEveViewer* viewrphi = ((TEveViewer*)*i);
536 viewrphi->GetGLViewer()->SavePicture(file1);
543 case kAEMRhoz: // saving only RhoZ view
547 fi.fFileTypes = gPictureSaveAsTypes;
548 fi.fIniDir = StrDup(""); // current directory
550 fi.fOverwrite = kTRUE;
551 new TGFileDialog(gClient->GetDefaultRoot(),
552 gEve->GetMainWindow(), kFDSave, &fi);
553 if (!fi.fFilename) return;
555 TPMERegexp filere(".*/([^/]+$)");
556 if (filere.Match(fi.fFilename) != 2)
558 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
562 TString file1(filere[1]);
564 if (!file1.EndsWith(".png"))
567 gSystem->ChangeDirectory(fi.fIniDir);
569 printf("Saving...\n");
571 TEveViewerList *viewers = gEve->GetViewers();
572 TEveElement::List_i i = viewers->BeginChildren();
576 TEveViewer* viewrhoz = ((TEveViewer*)*i);
577 viewrhoz->GetGLViewer()->SavePicture(file1);
584 case kAEMAllhr: // saving all three views in high resolution
588 fi.fFileTypes = gPictureSaveAsTypes;
589 fi.fIniDir = StrDup(""); // current directory
591 fi.fOverwrite = kTRUE;
592 new TGFileDialog(gClient->GetDefaultRoot(),
593 gEve->GetMainWindow(), kFDSave, &fi);
594 if (!fi.fFilename) return;
596 TPMERegexp filere(".*/([^/]+$)");
597 if (filere.Match(fi.fFilename) != 2)
599 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
603 TString file1(filere[1]);
604 TString file2(filere[1]);
605 TString file3(filere[1]);
607 if (!file1.EndsWith(".png"))
610 if (!file2.EndsWith(".png"))
611 file2 += "_RPhi.png";
613 if (!file3.EndsWith(".png"))
614 file3 += "_RhoZ.png";
616 gSystem->ChangeDirectory(fi.fIniDir);
618 printf("Saving...\n");
620 TEveViewerList *viewers = gEve->GetViewers();
621 TEveElement::List_i i = viewers->BeginChildren();
623 TEveViewer* view3d = ((TEveViewer*)*i);
624 view3d->GetGLViewer()->SavePictureScale(file1,4.0); // getting high resolution
626 TEveViewer* viewrphi = ((TEveViewer*)*i);
627 viewrphi->GetGLViewer()->SavePictureScale(file2,4.0);
629 TEveViewer* viewrhoz = ((TEveViewer*)*i);
630 viewrhoz->GetGLViewer()->SavePictureScale(file3,4.0);
637 case kAEM3dhr: // saving only 3d view in high resolution
641 fi.fFileTypes = gPictureSaveAsTypes;
642 fi.fIniDir = StrDup(""); // current directory
644 fi.fOverwrite = kTRUE;
645 new TGFileDialog(gClient->GetDefaultRoot(),
646 gEve->GetMainWindow(), kFDSave, &fi);
647 if (!fi.fFilename) return;
649 TPMERegexp filere(".*/([^/]+$)");
650 if (filere.Match(fi.fFilename) != 2)
652 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
656 TString file1(filere[1]);
658 if (!file1.EndsWith(".png"))
661 gSystem->ChangeDirectory(fi.fIniDir);
663 printf("Saving...\n");
665 TEveViewerList *viewers = gEve->GetViewers();
666 TEveElement::List_i i = viewers->BeginChildren();
668 TEveViewer* view3d = ((TEveViewer*)*i);
669 view3d->GetGLViewer()->SavePictureScale(file1,4.0);
676 case kAEMRphihr: // saving only RPhi view in high resolution
680 fi.fFileTypes = gPictureSaveAsTypes;
681 fi.fIniDir = StrDup(""); // current directory
683 fi.fOverwrite = kTRUE;
684 new TGFileDialog(gClient->GetDefaultRoot(),
685 gEve->GetMainWindow(), kFDSave, &fi);
686 if (!fi.fFilename) return;
688 TPMERegexp filere(".*/([^/]+$)");
689 if (filere.Match(fi.fFilename) != 2)
691 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
695 TString file1(filere[1]);
697 if (!file1.EndsWith(".png"))
700 gSystem->ChangeDirectory(fi.fIniDir);
702 printf("Saving...\n");
704 TEveViewerList *viewers = gEve->GetViewers();
705 TEveElement::List_i i = viewers->BeginChildren();
708 TEveViewer* viewrphi = ((TEveViewer*)*i);
709 viewrphi->GetGLViewer()->SavePictureScale(file1,4.0);
716 case kAEMRhozhr: // saving only RhoZ view in high resolution
720 fi.fFileTypes = gPictureSaveAsTypes;
721 fi.fIniDir = StrDup(""); // current directory
723 fi.fOverwrite = kTRUE;
724 new TGFileDialog(gClient->GetDefaultRoot(),
725 gEve->GetMainWindow(), kFDSave, &fi);
726 if (!fi.fFilename) return;
728 TPMERegexp filere(".*/([^/]+$)");
729 if (filere.Match(fi.fFilename) != 2)
731 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
735 TString file1(filere[1]);
737 if (!file1.EndsWith(".png"))
740 gSystem->ChangeDirectory(fi.fIniDir);
742 printf("Saving...\n");
744 TEveViewerList *viewers = gEve->GetViewers();
745 TEveElement::List_i i = viewers->BeginChildren();
749 TEveViewer* viewrhoz = ((TEveViewer*)*i);
750 viewrhoz->GetGLViewer()->SavePictureScale(file1,4.0);
757 case kAEMSavemacros:// Saving Data Selection macros
760 AliEveMacroExecutor *exec = AliEveEventManager::GetMaster()->GetExecutor();
762 exec->SaveAddedMacros();
767 case kAEMLoadmacros://Loading Data Selection macros
770 TEveBrowser *browser = gEve->GetBrowser();
771 browser->ShowCloseTab(kFALSE);
774 browser->RemoveTab(TRootBrowser::kRight, 5);//remove the tab with previous DataSelection window
776 browser->RemoveTab(TRootBrowser::kRight, 2);
780 fi.fFileTypes = gMacroSaveAsTypes;
781 fi.fIniDir = StrDup(""); // current directory
783 fi.fOverwrite = kTRUE;
784 new TGFileDialog(gClient->GetDefaultRoot(), gEve->GetMainWindow(), kFDOpen, &fi);//dialog
785 if (!fi.fFilename) return;
787 TPMERegexp filere(".*/([^/]+$)");
788 if (filere.Match(fi.fFilename) != 2)
790 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
793 printf("Loading...\n");
795 TString file(filere[1]);
796 gSystem->ChangeDirectory(fi.fIniDir);
798 TEveUtil::Macro(file);//run macro
800 AliEveEventManager *eman = AliEveEventManager::GetMaster();//reload event (gEve->Refresh() crashes)
801 Int_t ev = eman->GetEventId();
814 case kAEMSave://saving VizDB
817 fi.fFileTypes = gMacroSaveAsTypes;
818 fi.fIniDir = StrDup(""); // current directory
820 fi.fOverwrite = kTRUE;
821 new TGFileDialog(gClient->GetDefaultRoot(), gEve->GetMainWindow(), kFDSave, &fi);
822 if (!fi.fFilename) return;
824 TPMERegexp filere(".*/([^/]+$)");
825 if (filere.Match(fi.fFilename) != 2)
827 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
830 printf("Saving...\n");
832 TString file(filere[1]);
833 if (!file.EndsWith(".C"))
835 gSystem->ChangeDirectory(fi.fIniDir);
836 gEve->SaveVizDB(file);
838 //Last line "gEve->SaveVizDB(file);" gives macro with many unnecessary
839 //lines like "x038->SetMinPt(0);" tahat are not interpreted properly later
844 ifstream myfile1(file);
845 if(myfile1.is_open())
847 while(!myfile1.eof())
849 getline(myfile1,text);
851 if(!(check.EndsWith("MinPt(0);")||check.EndsWith("MaxPt(0);")
852 ||check.EndsWith("LimPt(0);")||check.EndsWith("MinP(0);")
853 ||check.EndsWith("MaxP(0);")||check.EndsWith("LimP(0);")))
855 all += text; //Cut off unnecessary lines and bring everything together
862 ofstream myfile2(file); //Replacing old file with the one without "bad" lines
871 case kAEMOpen://Opening VizDB
874 fi.fFileTypes = gMacroSaveAsTypes;
875 fi.fIniDir = StrDup(""); // current directory
877 fi.fOverwrite = kTRUE;
878 new TGFileDialog(gClient->GetDefaultRoot(), gEve->GetMainWindow(), kFDOpen, &fi);
879 if (!fi.fFilename) return;
881 TPMERegexp filere(".*/([^/]+$)");
882 if (filere.Match(fi.fFilename) != 2)
884 Warning("AliEvePopupHandler", "file '%s' bad.", fi.fFilename);
887 printf("Opening...\n");
889 TString file(filere[1]);
891 gSystem->ChangeDirectory(fi.fIniDir);
893 gEve->LoadVizDB(file, kTRUE, kTRUE);
895 gEve->Redraw3D(kTRUE);
904 Warning(kEH, "Unknown menu entry.");