#include "AliMUONMchViewApplication.h"
-#include "AliMUONPainterHelper.h"
+
#include "AliCDBManager.h"
#include "AliCodeTimer.h"
#include "AliLog.h"
-#include <TROOT.h>
-#include <TStyle.h>
+#include "AliMUONPainterHelper.h"
+#include <Riostream.h>
#include <TObjArray.h>
#include <TObjString.h>
-#include <Riostream.h>
+#include <TROOT.h>
+#include <TStyle.h>
+
+#include "AliMpDataProcessor.h"
+#include "AliMpDataMap.h"
+#include "AliMpDataStreams.h"
+#include "AliMpDDLStore.h"
+#include "AliMpManuStore.h"
//______________________________________________________________________________
Int_t Usage()
/// Printout available options of the program
cout << "mchview " << endl;
cout << " --version : shows the current version of the program" << endl;
+ cout << " --use filename.root : reuse a previously saved (from this program) root file. Several --use can be used ;-)" << endl;
+ cout << " --geometry #x#+#+# : manually specify the geometry of the window, ala X11..., e.g. --geometry 1280x900+1600+0 will" << endl;
+ cout << " get a window of size 1280x900, located at (1600,0) from the top-left of the (multihead) display " << endl;
+ cout << " --asciimapping : load mapping from ASCII files instead of OCDB (for debug and experts only...)" << endl;
+ cout << " --de detElemId : start by displaying the given detection element instead of the default view (which is all the chambers)" << endl;
+ cout << " --chamber chamberId (from 1 to 10) : start by displaying the given chamber instead of the default view (which is all the chambers)" << endl;
+ cout << " --ocdb ocdbPath : read the mapping from the given OCDB" << endl;
return -1;
}
Int_t nok(0);
+ TObjArray filesToOpen;
+ Bool_t isGeometryFixed(kFALSE);
+ Int_t gix(0),giy(0);
+ Int_t gox(0),goy(0);
+ Bool_t ASCIImapping(kFALSE);
+ TString defaultOCDB("local://$ALICE_ROOT/OCDB");
+
for ( Int_t i = 0; i <= args.GetLast(); ++i )
{
TString a(static_cast<TObjString*>(args.At(i))->String());
++nok;
return 0;
}
+ if ( a == "--use" && i < args.GetLast() )
+ {
+ filesToOpen.Add(args.At(i+1));
+ ++i;
+ nok += 2;
+ }
+ else if ( a == "--geometry" )
+ {
+ isGeometryFixed = kTRUE;
+ TString g(static_cast<TObjString*>(args.At(i+1))->String());
+ sscanf(g.Data(),"%10dx%10d+%10d+%10d",&gix,&giy,&gox,&goy);
+ nok += 2;
+ ++i;
+ }
+ else if ( a == "--asciimapping" )
+ {
+ ++nok;
+ ASCIImapping = kTRUE;
+ }
+ else if ( a == "--de" || a == "--chamber" )
+ {
+ // do nothing. Let AliMUONMchViewApplication handle that one. (and the next one as well).
+ nok += 2;
+ ++i;
+ }
+ else if ( a == "--ocdb" )
+ {
+ defaultOCDB = static_cast<TObjString*>(args.At(i+1))->String();
+ cout << "Using default storage = " << defaultOCDB.Data() << endl;
+ nok += 2;
+ ++i;
+ }
+ else
+ {
+ return Usage();
+ }
}
if ( nok < args.GetLast() )
return Usage();
}
- AliWarningGeneral("main","Remove default storage and run number from here...");
-
- AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
+ AliCDBManager::Instance()->SetDefaultStorage(defaultOCDB.Data());
AliCDBManager::Instance()->SetRun(0);
+ if ( ASCIImapping )
+ {
+ AliMpDataProcessor mp;
+ {
+ AliMpDataMap* datamap = mp.CreateDataMap("data");
+ AliMpDataStreams dataStreams(datamap);
+ AliMpDDLStore::ReadData(dataStreams);
+ }
+ {
+ AliMpDataMap* datamap = mp.CreateDataMap("data_run");
+ AliMpDataStreams dataStreams(datamap);
+ AliMpManuStore::ReadData(dataStreams);
+ }
+
+ AliCDBManager::Instance()->SetSpecificStorage("MUON/Calib/Neighbours","local://$ALICE_ROOT/OCDB");
+
+ }
+
gROOT->SetStyle("Plain");
gStyle->SetPalette(1);
Int_t n = gStyle->GetNumberOfColors();
colors[n+1] = 1;
gStyle->SetPalette(n+2,colors);
delete[] colors;
-
- TRint* theApp = new AliMUONMchViewApplication("mchview", &argc, argv, 0.7, 0.9);
-
- AliCodeTimer::Instance()->Print();
+ AliMUONMchViewApplication* theApp(0x0);
+
+ if ( isGeometryFixed )
+ {
+ theApp = new AliMUONMchViewApplication("mchview", &argc, argv,gix,giy,gox,goy);
+ }
+ else
+ {
+ theApp = new AliMUONMchViewApplication("mchview",&argc,argv);
+ }
+
+ TIter next(&filesToOpen);
+ TObjString* s;
+ while ( ( s = static_cast<TObjString*>(next()) ) )
+ {
+ theApp->Open(s->String().Data());
+ }
+
// --- Start the event loop ---
theApp->Run(kTRUE);
- AliMUONPainterHelper::Instance()->Save();
+ delete AliMUONPainterHelper::Instance(); // important to trigger the saving of the env. file
}