ROOT logo
// $Id: visscan_itsU.C 57800 2012-07-12 08:46:50Z quark $
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/
 
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <AliQAHistViewer.h>
#endif

class AliEveMacroExecutor;
class TEveProjectionManager;
class TEveGeoShape;
class TEveUtil;
class TSystem;
class TInterpreter;


Bool_t gShowMuonRPhi = kFALSE;
Bool_t gShowMuonRhoZ = kTRUE;

Bool_t gCenterProjectionsAtPrimaryVertex = kFALSE;


void visscan_itsU(const TString& cdburi = "local://$ALICE_ROOT/OCDB",
		  const TString& path   = ".",
		  Bool_t showMuon = kFALSE,
		  Bool_t showTrd = kFALSE)
{

  gSystem->Load("libITSUpgradeBase");
  gSystem->Load("libITSUpgradeSim");
  gSystem->Load("libITSUpgradeRec");
  
  if (showMuon)
  {
    if (gSystem->Getenv("ALICE_ROOT") != 0)
    {
      gInterpreter->AddIncludePath(Form("%s/MUON", gSystem->Getenv("ALICE_ROOT")));
      gInterpreter->AddIncludePath(Form("%s/MUON/mapping", gSystem->Getenv("ALICE_ROOT")));
    }
  }
  else
  {
    gShowMuonRPhi = gShowMuonRhoZ = kFALSE;
  }
  
  if (cdburi.IsNull() && ! AliCDBManager::Instance()->IsDefaultStorageSet())
  {
    gEnv->SetValue("Root.Stacktrace", "no");
    Fatal("visscan_itsU.C", "OCDB path MUST be specified as the first argument.");
  }

  AliEveEventManager::AddAODfriend("AliAOD.VertexingHF.root");

  TEveUtil::LoadMacro("alieve_init.C");
  alieve_init(cdburi, path, -1);

  // TEveLine::SetDefaultSmooth(1);

  TEveUtil::AssertMacro("VizDB_scan.C");

  AliEveMacroExecutor *exec    = AliEveEventManager::GetMaster()->GetExecutor();
  TEveBrowser         *browser = gEve->GetBrowser();
  browser->ShowCloseTab(kFALSE);


  //==============================================================================
  // Geometry, scenes, projections and viewers
  //==============================================================================

  AliEveMultiView *mv = new AliEveMultiView;

  mv->SetDepth(-10);

  TEveUtil::LoadMacro("geom_gentle_itsU.C");
  mv->InitGeomGentle(geom_gentle_itsU(), geom_gentle_itsU_rphi(), geom_gentle_itsU_rhoz(), 0);

  if (showTrd) {
    TEveUtil::LoadMacro("geom_gentle_itsU_trd.C+");
    mv->InitGeomGentleTrd(geom_gentle_trd());
  }

  if (gShowMuonRPhi || gShowMuonRhoZ) {
    TEveUtil::LoadMacro("geom_gentle_itsU_muon.C+");
    mv->InitGeomGentleMuon(geom_gentle_muon(kFALSE), gShowMuonRPhi, gShowMuonRhoZ, kFALSE);
  }

  mv->SetDepth(0);

  //==============================================================================
  // Registration of per-event macros
  //==============================================================================
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters ITS", "itsU_clusters.C+", "itsU_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks", "esd_tracks.C+", "esd_tracks"));

  /*
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Track",   "kine_tracks.C+", "kine_tracks", "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ITS", "its_hits.C+",    "its_hits",    "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TPC", "tpc_hits.C+",    "tpc_hits",    "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits T0",  "t0_hits.C+",     "t0_hits",     "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits FMD", "fmd_hits.C+",    "fmd_hits",    "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ACORDE", "acorde_hits.C+","acorde_hits","", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits EMCAL", "emcal_hits.C+","emcal_hits",  "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TOF",  "tof_hits.C+",   "tof_hits",    "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TRD", "trd_hits.C+",    "trd_hits",    "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits VZERO", "vzero_hits.C+","vzero_hits",  "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG ITSU",    "itsU_digits.C+","itsU_digits", "", kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TPC",     "tpc_digits.C+",  "tpc_digits",  "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TOF",     "tof_digits.C+",  "tof_digits",  "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG HMPID",   "hmpid_digits.C+","hmpid_digits","", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG FMD",     "fmd_digits.C+",  "fmd_digits",  "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters",     "clusters.C+",     "clusters", "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters ITS", "itsU_clusters.C+", "itsU_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "tpc_clusters.C+", "tpc_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TRD", "trd_clusters.C+", "trd_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TOF", "tof_clusters.C+", "tof_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters HMPID", "hmpid_clusters.C+", "hmpid_clusters"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters PHOS", "phos_clusters.C+", "phos_clusters"));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "vplot_tpc.C+",    "vplot_tpc", "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ITS",     "its_raw.C+",     "its_raw",     "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TPC",     "tpc_raw.C+",     "tpc_raw",     "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TOF",     "tof_raw.C+",     "tof_raw",     "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW HMPID",   "hmpid_raw.C+",   "hmpid_raw",   "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW T0",      "t0_raw.C+",      "t0_raw",      "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW FMD",     "fmd_raw.C+",     "fmd_raw",     "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW VZERO",   "vzero_raw.C+",   "vzero_raw",   "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ACORDE",  "acorde_raw.C+",  "acorde_raw",  "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",             "primary_vertex.C+", "primary_vertex",             "",                kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse",     "primary_vertex.C+", "primary_vertex_ellipse",     "",                kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",         "primary_vertex.C+", "primary_vertex_box",         "kFALSE, 3, 3, 3", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX SPD",         "primary_vertex.C+", "primary_vertex_spd",         "",                kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse SPD", "primary_vertex.C+", "primary_vertex_ellipse_spd", "",                kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box SPD",     "primary_vertex.C+", "primary_vertex_box_spd",     "kFALSE, 3, 3, 3", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX TPC",         "primary_vertex.C+", "primary_vertex_tpc",         "",                kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse TPC", "primary_vertex.C+", "primary_vertex_ellipse_tpc", "",                kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box TPC",     "primary_vertex.C+", "primary_vertex_box_tpc",     "kFALSE, 3, 3, 3", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C+",       "esd_V0_points_onfly"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C+",       "esd_V0_points_offline"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0.C+",              "esd_V0"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade_points.C+",  "esd_cascade_points"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade.C+",         "esd_cascade"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink_points.C+",     "esd_kink_points"));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink.C+",            "esd_kink"));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks",              "esd_tracks.C+", "esd_tracks",              "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS standalone",          "esd_tracks.C+", "esd_tracks_ITS_standalone",              "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS",          "esd_tracks.C+", "esd_tracks_ITS",              "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks TPC",           "esd_tracks.C+", "esd_tracks_TPC",              "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MI",           "esd_tracks.C+", "esd_tracks_MI",           "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by category",  "esd_tracks.C+", "esd_tracks_by_category",  "", kTRUE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by anal cuts", "esd_tracks.C+", "esd_tracks_by_anal_cuts", "", kFALSE));
  //  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Lego", "lego.C+", "lego", "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Beams Info", "beams_info.C+", "beams_info", "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracklets SPD", "esd_spd_tracklets.C+", "esd_spd_tracklets", "", kTRUE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC ZDC",      "esd_zdc.C+", "esd_zdc", "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA HF",   "aod_HF.C+",   "aod_HF",   "", kFALSE));
  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA Jets", "jetplane.C+", "jetplane", "", kFALSE));

  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "DUMP VZERO",   "vzero_dump.C+",   "vzero_dump",   "", kFALSE));
  
  if (showMuon)
  {
    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM TrackRef MUON", "muon_trackRefs.C+", "muon_trackRefs", "kTRUE", kFALSE));
    exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW MUON", "muon_raw.C+", "muon_raw", "", kFALSE));
    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG MUON", "muon_digits.C+", "muon_digits", "", kFALSE));
    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters MUON", "muon_clusters.C+", "muon_clusters", "", kTRUE));
    exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MUON", "esd_muon_tracks.C+", "esd_muon_tracks", "kTRUE,kFALSE", kTRUE));
  }
  */
  //==============================================================================
  // Additional GUI components
  //==============================================================================

  // Macro / data selection
  slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
  slot->StartEmbedding();
  AliEveMacroExecutorWindow* exewin = new AliEveMacroExecutorWindow(exec);
  slot->StopEmbedding("DataSelection");
  exewin->PopulateMacros();

  // Event selection tab
  slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
  slot->StartEmbedding();
  new AliEveEventSelectorWindow(gClient->GetRoot(), 600, 400, AliEveEventManager::GetMaster()->GetEventSelector());
  slot->StopEmbedding("Selections");

  // QA viewer
  slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
  slot->StartEmbedding();
  new AliQAHistViewer(gClient->GetRoot(), 600, 400, kTRUE);
  slot->StopEmbedding("QA histograms");

  browser->GetTabRight()->SetTab(1);

  browser->StartEmbedding(TRootBrowser::kBottom);
  new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
  browser->StopEmbedding("EventCtrl");

  slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
  TEveWindowTab *store_tab = slot->MakeTab();
  store_tab->SetElementNameTitle("WindowStore",
    "Undocked windows whose previous container is not known\n"
    "are placed here when the main-frame is closed.");
  gEve->GetWindowManager()->SetDefaultContainer(store_tab);


  //==============================================================================
  // AliEve objects - global tools
  //==============================================================================

  AliEveTrackFitter* fitter = new AliEveTrackFitter();
  gEve->AddToListTree(fitter, 1);
  gEve->AddElement(fitter, gEve->GetEventScene());

  AliEveTrackCounter* g_trkcnt = new AliEveTrackCounter("Primary Counter");
  gEve->AddToListTree(g_trkcnt, kFALSE);


  //==============================================================================
  // Final stuff
  //==============================================================================

  // A refresh to show proper window.
  gEve->GetViewers()->SwitchColorSet();
  gEve->Redraw3D(kTRUE);
  gSystem->ProcessEvents();

  // Register command to call on each event.
  AliEveEventManager::GetMaster()->AddNewEventCommand("on_new_event();");
  AliEveEventManager::GetMaster()->GotoEvent(0);

  gEve->EditElement(g_trkcnt);

  gEve->Redraw3D(kTRUE);
}

/******************************************************************************/

void on_new_event()
{
  Double_t x[3] = { 0, 0, 0 };

  if (AliEveEventManager::HasESD())
  {
    AliESDEvent* esd = AliEveEventManager::AssertESD();
    esd->GetPrimaryVertex()->GetXYZ(x);

    TTimeStamp ts(esd->GetTimeStamp());
    TString win_title("Eve Main Window -- Timestamp: ");
    win_title += ts.AsString("s");
    win_title += "; Event # in ESD file: ";
    win_title += esd->GetEventNumberInFile();
    gEve->GetBrowser()->SetWindowName(win_title);
  }

  TEveElement* top = gEve->GetCurrentEvent();

  AliEveMultiView *mv = AliEveMultiView::Instance();

  //mv->DestroyEventRPhi();
  if (gCenterProjectionsAtPrimaryVertex)
    mv->SetCenterRPhi(x[0], x[1], x[2]);
  mv->ImportEventRPhi(top);

  //mv->DestroyEventRhoZ();
  if (gCenterProjectionsAtPrimaryVertex)
    mv->SetCenterRhoZ(x[0], x[1], x[2]);
  mv->ImportEventRhoZ(top);
}
 visscan_itsU.C:1
 visscan_itsU.C:2
 visscan_itsU.C:3
 visscan_itsU.C:4
 visscan_itsU.C:5
 visscan_itsU.C:6
 visscan_itsU.C:7
 visscan_itsU.C:8
 visscan_itsU.C:9
 visscan_itsU.C:10
 visscan_itsU.C:11
 visscan_itsU.C:12
 visscan_itsU.C:13
 visscan_itsU.C:14
 visscan_itsU.C:15
 visscan_itsU.C:16
 visscan_itsU.C:17
 visscan_itsU.C:18
 visscan_itsU.C:19
 visscan_itsU.C:20
 visscan_itsU.C:21
 visscan_itsU.C:22
 visscan_itsU.C:23
 visscan_itsU.C:24
 visscan_itsU.C:25
 visscan_itsU.C:26
 visscan_itsU.C:27
 visscan_itsU.C:28
 visscan_itsU.C:29
 visscan_itsU.C:30
 visscan_itsU.C:31
 visscan_itsU.C:32
 visscan_itsU.C:33
 visscan_itsU.C:34
 visscan_itsU.C:35
 visscan_itsU.C:36
 visscan_itsU.C:37
 visscan_itsU.C:38
 visscan_itsU.C:39
 visscan_itsU.C:40
 visscan_itsU.C:41
 visscan_itsU.C:42
 visscan_itsU.C:43
 visscan_itsU.C:44
 visscan_itsU.C:45
 visscan_itsU.C:46
 visscan_itsU.C:47
 visscan_itsU.C:48
 visscan_itsU.C:49
 visscan_itsU.C:50
 visscan_itsU.C:51
 visscan_itsU.C:52
 visscan_itsU.C:53
 visscan_itsU.C:54
 visscan_itsU.C:55
 visscan_itsU.C:56
 visscan_itsU.C:57
 visscan_itsU.C:58
 visscan_itsU.C:59
 visscan_itsU.C:60
 visscan_itsU.C:61
 visscan_itsU.C:62
 visscan_itsU.C:63
 visscan_itsU.C:64
 visscan_itsU.C:65
 visscan_itsU.C:66
 visscan_itsU.C:67
 visscan_itsU.C:68
 visscan_itsU.C:69
 visscan_itsU.C:70
 visscan_itsU.C:71
 visscan_itsU.C:72
 visscan_itsU.C:73
 visscan_itsU.C:74
 visscan_itsU.C:75
 visscan_itsU.C:76
 visscan_itsU.C:77
 visscan_itsU.C:78
 visscan_itsU.C:79
 visscan_itsU.C:80
 visscan_itsU.C:81
 visscan_itsU.C:82
 visscan_itsU.C:83
 visscan_itsU.C:84
 visscan_itsU.C:85
 visscan_itsU.C:86
 visscan_itsU.C:87
 visscan_itsU.C:88
 visscan_itsU.C:89
 visscan_itsU.C:90
 visscan_itsU.C:91
 visscan_itsU.C:92
 visscan_itsU.C:93
 visscan_itsU.C:94
 visscan_itsU.C:95
 visscan_itsU.C:96
 visscan_itsU.C:97
 visscan_itsU.C:98
 visscan_itsU.C:99
 visscan_itsU.C:100
 visscan_itsU.C:101
 visscan_itsU.C:102
 visscan_itsU.C:103
 visscan_itsU.C:104
 visscan_itsU.C:105
 visscan_itsU.C:106
 visscan_itsU.C:107
 visscan_itsU.C:108
 visscan_itsU.C:109
 visscan_itsU.C:110
 visscan_itsU.C:111
 visscan_itsU.C:112
 visscan_itsU.C:113
 visscan_itsU.C:114
 visscan_itsU.C:115
 visscan_itsU.C:116
 visscan_itsU.C:117
 visscan_itsU.C:118
 visscan_itsU.C:119
 visscan_itsU.C:120
 visscan_itsU.C:121
 visscan_itsU.C:122
 visscan_itsU.C:123
 visscan_itsU.C:124
 visscan_itsU.C:125
 visscan_itsU.C:126
 visscan_itsU.C:127
 visscan_itsU.C:128
 visscan_itsU.C:129
 visscan_itsU.C:130
 visscan_itsU.C:131
 visscan_itsU.C:132
 visscan_itsU.C:133
 visscan_itsU.C:134
 visscan_itsU.C:135
 visscan_itsU.C:136
 visscan_itsU.C:137
 visscan_itsU.C:138
 visscan_itsU.C:139
 visscan_itsU.C:140
 visscan_itsU.C:141
 visscan_itsU.C:142
 visscan_itsU.C:143
 visscan_itsU.C:144
 visscan_itsU.C:145
 visscan_itsU.C:146
 visscan_itsU.C:147
 visscan_itsU.C:148
 visscan_itsU.C:149
 visscan_itsU.C:150
 visscan_itsU.C:151
 visscan_itsU.C:152
 visscan_itsU.C:153
 visscan_itsU.C:154
 visscan_itsU.C:155
 visscan_itsU.C:156
 visscan_itsU.C:157
 visscan_itsU.C:158
 visscan_itsU.C:159
 visscan_itsU.C:160
 visscan_itsU.C:161
 visscan_itsU.C:162
 visscan_itsU.C:163
 visscan_itsU.C:164
 visscan_itsU.C:165
 visscan_itsU.C:166
 visscan_itsU.C:167
 visscan_itsU.C:168
 visscan_itsU.C:169
 visscan_itsU.C:170
 visscan_itsU.C:171
 visscan_itsU.C:172
 visscan_itsU.C:173
 visscan_itsU.C:174
 visscan_itsU.C:175
 visscan_itsU.C:176
 visscan_itsU.C:177
 visscan_itsU.C:178
 visscan_itsU.C:179
 visscan_itsU.C:180
 visscan_itsU.C:181
 visscan_itsU.C:182
 visscan_itsU.C:183
 visscan_itsU.C:184
 visscan_itsU.C:185
 visscan_itsU.C:186
 visscan_itsU.C:187
 visscan_itsU.C:188
 visscan_itsU.C:189
 visscan_itsU.C:190
 visscan_itsU.C:191
 visscan_itsU.C:192
 visscan_itsU.C:193
 visscan_itsU.C:194
 visscan_itsU.C:195
 visscan_itsU.C:196
 visscan_itsU.C:197
 visscan_itsU.C:198
 visscan_itsU.C:199
 visscan_itsU.C:200
 visscan_itsU.C:201
 visscan_itsU.C:202
 visscan_itsU.C:203
 visscan_itsU.C:204
 visscan_itsU.C:205
 visscan_itsU.C:206
 visscan_itsU.C:207
 visscan_itsU.C:208
 visscan_itsU.C:209
 visscan_itsU.C:210
 visscan_itsU.C:211
 visscan_itsU.C:212
 visscan_itsU.C:213
 visscan_itsU.C:214
 visscan_itsU.C:215
 visscan_itsU.C:216
 visscan_itsU.C:217
 visscan_itsU.C:218
 visscan_itsU.C:219
 visscan_itsU.C:220
 visscan_itsU.C:221
 visscan_itsU.C:222
 visscan_itsU.C:223
 visscan_itsU.C:224
 visscan_itsU.C:225
 visscan_itsU.C:226
 visscan_itsU.C:227
 visscan_itsU.C:228
 visscan_itsU.C:229
 visscan_itsU.C:230
 visscan_itsU.C:231
 visscan_itsU.C:232
 visscan_itsU.C:233
 visscan_itsU.C:234
 visscan_itsU.C:235
 visscan_itsU.C:236
 visscan_itsU.C:237
 visscan_itsU.C:238
 visscan_itsU.C:239
 visscan_itsU.C:240
 visscan_itsU.C:241
 visscan_itsU.C:242
 visscan_itsU.C:243
 visscan_itsU.C:244
 visscan_itsU.C:245
 visscan_itsU.C:246
 visscan_itsU.C:247
 visscan_itsU.C:248
 visscan_itsU.C:249
 visscan_itsU.C:250
 visscan_itsU.C:251
 visscan_itsU.C:252
 visscan_itsU.C:253
 visscan_itsU.C:254
 visscan_itsU.C:255
 visscan_itsU.C:256
 visscan_itsU.C:257
 visscan_itsU.C:258
 visscan_itsU.C:259
 visscan_itsU.C:260
 visscan_itsU.C:261
 visscan_itsU.C:262
 visscan_itsU.C:263
 visscan_itsU.C:264
 visscan_itsU.C:265
 visscan_itsU.C:266
 visscan_itsU.C:267
 visscan_itsU.C:268
 visscan_itsU.C:269
 visscan_itsU.C:270
 visscan_itsU.C:271
 visscan_itsU.C:272
 visscan_itsU.C:273
 visscan_itsU.C:274
 visscan_itsU.C:275
 visscan_itsU.C:276
 visscan_itsU.C:277
 visscan_itsU.C:278
 visscan_itsU.C:279
 visscan_itsU.C:280
 visscan_itsU.C:281
 visscan_itsU.C:282
 visscan_itsU.C:283