1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
20 /// \brief Tracker visualization program
22 /// \author Laurent Aphecetche, Subatech
25 #include "AliMUONMchViewApplication.h"
27 #include "AliCDBManager.h"
28 #include "AliCodeTimer.h"
30 #include "AliMUONPainterHelper.h"
31 #include <Riostream.h>
32 #include <TObjArray.h>
33 #include <TObjString.h>
37 #include "AliMpDataProcessor.h"
38 #include "AliMpDataMap.h"
39 #include "AliMpDataStreams.h"
40 #include "AliMpDDLStore.h"
41 #include "AliMpManuStore.h"
45 //______________________________________________________________________________
48 /// Printout available options of the program
49 cout << "mchview " << endl;
50 cout << " --version : shows the current version of the program" << endl;
51 cout << " --use filename.root : reuse a previously saved (from this program) root file. Several --use can be used ;-)" << endl;
52 cout << " --geometry #x#+#+# : manually specify the geometry of the window, ala X11..., e.g. --geometry 1280x900+1600+0 will" << endl;
53 cout << " get a window of size 1280x900, located at (1600,0) from the top-left of the (multihead) display " << endl;
54 cout << " --asciimapping : load mapping from ASCII files instead of OCDB (for debug and experts only...)" << endl;
55 cout << " --de detElemId : start by displaying the given detection element instead of the default view (which is all the chambers)" << endl;
56 cout << " --chamber chamberId (from 1 to 10) : start by displaying the given chamber instead of the default view (which is all the chambers)" << endl;
57 cout << " --ocdb ocdbPath : read the mapping from the given OCDB" << endl;
61 //______________________________________________________________________________
62 int main(int argc, char** argv)
64 /// Main function for the program
66 gEnv->SetValue("Cocoa.EnableAntiAliasing","auto");
70 for ( int i = 1; i < argc; ++i )
72 args.Add(new TObjString(argv[i]));
77 TObjArray filesToOpen;
78 Bool_t isGeometryFixed(kFALSE);
81 Bool_t ASCIImapping(kFALSE);
82 TString defaultOCDB("raw://");
86 TGrid::Connect("alien://");
89 for ( Int_t i = 0; i <= args.GetLast(); ++i )
91 TString a(static_cast<TObjString*>(args.At(i))->String());
92 if ( a == "--version" )
94 cout << "mchview Version " << AliMUONMchViewApplication::Version() << " ($Id$)" << endl;
98 if ( a == "--use" && i < args.GetLast() )
100 filesToOpen.Add(args.At(i+1));
104 else if ( a == "--geometry" )
106 isGeometryFixed = kTRUE;
107 TString g(static_cast<TObjString*>(args.At(i+1))->String());
108 sscanf(g.Data(),"%10dx%10d+%10d+%10d",&gix,&giy,&gox,&goy);
112 else if ( a == "--asciimapping" )
115 ASCIImapping = kTRUE;
117 else if ( a == "--de" || a == "--chamber" )
119 // do nothing. Let AliMUONMchViewApplication handle that one. (and the next one as well).
123 else if ( a == "--ocdb" )
125 defaultOCDB = static_cast<TObjString*>(args.At(i+1))->String();
126 cout << "Using default storage = " << defaultOCDB.Data() << endl;
136 if ( nok < args.GetLast() )
141 std::cout << "Using defaultOCDB=" << defaultOCDB.Data() << std::endl;
143 AliCDBManager::Instance()->SetDefaultStorage(defaultOCDB.Data());
144 AliCDBManager::Instance()->SetRun(196792);
148 AliMpDataProcessor mp;
150 AliMpDataMap* datamap = mp.CreateDataMap("data");
151 AliMpDataStreams dataStreams(datamap);
152 AliMpDDLStore::ReadData(dataStreams);
155 AliMpDataMap* datamap = mp.CreateDataMap("data_run");
156 AliMpDataStreams dataStreams(datamap);
157 AliMpManuStore::ReadData(dataStreams);
160 // AliCDBManager::Instance()->SetSpecificStorage("MUON/Calib/Neighbours","local://$ALICE_ROOT/OCDB");
164 gROOT->SetStyle("Plain");
165 gStyle->SetPalette(1);
166 Int_t n = gStyle->GetNumberOfColors();
167 Int_t* colors = new Int_t[n+2];
168 for ( Int_t i = 1; i <= n; ++i )
170 colors[i] = gStyle->GetColorPalette(i-1);
174 gStyle->SetPalette(n+2,colors);
177 AliMUONMchViewApplication* theApp(0x0);
179 if ( isGeometryFixed )
181 theApp = new AliMUONMchViewApplication("mchview", &argc, argv,gix,giy,gox,goy);
185 theApp = new AliMUONMchViewApplication("mchview",&argc,argv);
188 TIter next(&filesToOpen);
190 while ( ( s = static_cast<TObjString*>(next()) ) )
192 theApp->Open(s->String().Data());
195 // --- Start the event loop ---
198 delete AliMUONPainterHelper::Instance(); // important to trigger the saving of the env. file