]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mchview.cxx
Coverity fix for uninitialized variables and check for returned null value
[u/mrichter/AliRoot.git] / MUON / mchview.cxx
index d28fce6fe95f04e932249d7b0d20c1b4198ce547..918cc1c0e9c58c4ff506596a059412d80c9f4c92 100644 (file)
 #include <TROOT.h>
 #include <TStyle.h>
 
+#include "AliMpDataProcessor.h"
+#include "AliMpDataMap.h"
+#include "AliMpDataStreams.h"
+#include "AliMpDDLStore.h"
+#include "AliMpManuStore.h"
+
 //______________________________________________________________________________
 Int_t Usage()
 {
@@ -43,6 +49,10 @@ Int_t Usage()
   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;
 }
 
@@ -61,9 +71,11 @@ int main(int argc, char** argv)
   
   TObjArray filesToOpen;
   Bool_t isGeometryFixed(kFALSE);
-  Int_t gix, giy;
-  Int_t gox,goy;
-
+  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());
@@ -83,11 +95,28 @@ int main(int argc, char** argv)
     {
       isGeometryFixed = kTRUE;
       TString g(static_cast<TObjString*>(args.At(i+1))->String());
-      sscanf(g.Data(),"%dx%d+%d+%d",&gix,&giy,&gox,&goy);
+      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();
@@ -99,11 +128,27 @@ int main(int argc, char** argv)
     return Usage();
   }
   
-  AliWarningGeneral("main","FIXME ? Remove default storage and run number from here...");
-  
-  AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  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();
@@ -117,23 +162,17 @@ int main(int argc, char** argv)
   gStyle->SetPalette(n+2,colors);
   delete[] colors;
 
-  UInt_t w(0);
-  UInt_t h(0);
-  UInt_t ox(0);
-  UInt_t oy(0);
+  AliMUONMchViewApplication* theApp(0x0);
 
   if ( isGeometryFixed )
   {
-    w = gix;
-    h = giy;
-    ox = gox;
-    oy = goy;
+    theApp = new AliMUONMchViewApplication("mchview", &argc, argv,gix,giy,gox,goy);
+  }
+  else
+  {
+    theApp = new AliMUONMchViewApplication("mchview",&argc,argv);
   }
-  
-  AliMUONMchViewApplication* theApp = new AliMUONMchViewApplication("mchview", &argc, argv, w,h,gox,goy);
    
-  AliCodeTimer::Instance()->Print();
-
   TIter next(&filesToOpen);
   TObjString* s;
   while ( ( s = static_cast<TObjString*>(next()) ) )
@@ -144,5 +183,5 @@ int main(int argc, char** argv)
   // --- Start the event loop ---
   theApp->Run(kTRUE);
 
-  AliMUONPainterHelper::Instance()->Save();
+  delete AliMUONPainterHelper::Instance(); // important to trigger the saving of the env. file
 }