// $Id: Fun4Muons_Display.C,v 1.6 2004/11/01 07:42:47 hpereira Exp $ /*! dst analysis loop for real data/MC dst read nodes from the DST opens either 2D or 3DDisplay */ class MuonDisplay; class Muon3DDisplay; class Fun4AllServer; MuonDisplay *muon_display_2D = 0; Muon3DDisplay *muon_display_3D = 0; Fun4AllServer *se = 0; //_________________________________________________________________________ void Fun4Muons_Display( char *inputfile = "dst.root" ) { bool use_3DDisplay = true; bool use_2DDisplay = false; if( !(use_3DDisplay||use_2DDisplay) ) { cerr << "at least one from 2D/3D display must be selected. Aborting." << endl; return; } // libraries gSystem->Load("libfun4all.so"); gSystem->Load("libfun4allfuncs.so"); gSystem->Load("librpc_subsysreco.so"); gSystem->Load("libfvtx_subsysreco.so"); gSystem->Load("libphdisplay.so"); gSystem->Load("libmutoo_display.so"); /////////////////////////////////////////// // recoConsts setup ////////////////////////////////////////// recoConsts *rc = recoConsts::instance(); rc->set_IntFlag("PRINT_MUTOO_PARAMETERS",1); mMfmMT::setMapFileFlag(4); mMfmMT::setMapFileScale(1.0); TMutExtVtx::get().set_vtx_source( TMutExtVtx::NONE ); TMutExtVtx::get().set_verbosity( MUTOO::NONE ); /////////////////////////////////////////// // Make the Server ////////////////////////////////////////// se = Fun4AllServer::instance(); se->Verbosity(0); /////////////////////////////////////////// // Subsystems ////////////////////////////////////////// MuonReadbackDST *readback_dst = new MuonReadbackDST(); readback_dst->Verbosity(1); readback_dst->set_do_dbinit( true ); se->registerSubsystem( readback_dst ); se->registerSubsystem( new RpcReadbackDST() ); se->registerSubsystem( new FvtxFastSim() ); // map dumper MuonDumpMap *dumper = new MuonDumpMap(); dumper->add_map("TMutMCTrkMap"); //dumper->add_map("TFvtxMCHitMap"); se->registerSubsystem( dumper ); if( use_3DDisplay ) { muon_display_3D = new Muon3DDisplay(); se->registerSubsystem( muon_display_3D ); } if( use_2DDisplay ) { muon_display_2D = new MuonDisplay(); se->registerSubsystem( muon_display_2D ); } /////////////////////////////////////////// // Input manager /////////////////////////////////////////// Fun4AllInputManager *signal = new Fun4AllNoSyncDstInputManager("IMDST","DST"); se->registerInputManager(signal); se->fileopen(signal->Name(),inputfile); /////////////////////////////////////////// // Analyze the Data. ////////////////////////////////////////// // run first event to make all initializations se->run(1); // dump help if( use_3DDisplay ) muon_display_3D->help("muon_display_3D"); if( use_2DDisplay ) muon_display_2D->help("muon_display_2D"); cout << "To get next event type: se->run(1)" << endl; }