void MaSession() {
//=========Macro generated by ROOT version4.04/02
//=========for tree "t" (Thu Jun  9 15:13:19 2005)
//===This macro can be opened from a TreeViewer session after loading
//===the corresponding tree, or by running root with the macro name argument

   open_session();
}

open_session(void *p = 0) {
   gSystem->Load("libTreeViewer");
   TTreeViewer *treeview = (TTreeViewer *) p;
   if (!treeview) treeview = new TTreeViewer();
   TTree *tv_tree = (TTree*)gROOT->FindObject("t");
   TFile *tv_file = (TFile*)gROOT->GetListOfFiles()->FindObject("tree_struc.root");
   if (!tv_tree) {
      if (!tv_file) tv_file = new TFile("tree_struc.root");
      if (tv_file)  tv_tree = (TTree*)tv_file->Get("t");
      if(!tv_tree) {
         printf("Tree %s not found", fTree->GetName());
         return;
      }
   }

   treeview->SetTreeName("t");
   treeview->SetNexpressions(10);
//         Set expressions on axis and cut
   TTVLVEntry *item;
//   X expression
   item = treeview->ExpressionItem(0);
   item->SetExpression("Z_part", "~Z_part");
//   Y expression
   item = treeview->ExpressionItem(1);
   item->SetExpression("E_part", "~E_part");
//   Z expression
   item = treeview->ExpressionItem(2);
   item->SetExpression("", "-empty-");
//   Cut expression
   item = treeview->ExpressionItem(3);
   item->SetExpression("", "-empty-");
//         Scan list
   item = treeview->ExpressionItem(4);
   item->SetExpression("", "Scan box");
//         User defined expressions
   item = treeview->ExpressionItem(5);
   item->SetExpression("M_part > 25", "~HiMult", kTRUE);
   item = treeview->ExpressionItem(6);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(7);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(8);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(9);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(10);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(11);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(12);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(13);
   item->SetExpression("", "-empty-", kFALSE);
   item = treeview->ExpressionItem(14);
   item->SetExpression("", "-empty-", kFALSE);
//--- session object
   tv_session = new TTVSession(treeview);
   treeview->SetSession(tv_session);
//--- tree viewer record
   tv_record = tv_session->AddRecord(kTRUE);
   tv_session->SetRecordName("E vs Z");
   tv_record->fX        = "Z_part";
   tv_record->fY        = "E_part";
   tv_record->fZ        = "";
   tv_record->fCut      = "";
   tv_record->fXAlias   = "~Z_part";
   tv_record->fYAlias   = "~E_part";
   tv_record->fZAlias   = "-empty-";
   tv_record->fCutAlias = "-empty-";
   tv_record->fOption   = "COL";
   tv_record->fScanRedirected = kFALSE;
   tv_record->fCutEnabled = kTRUE;
//--- tree viewer record
   tv_record = tv_session->AddRecord(kTRUE);
   tv_session->SetRecordName("Th_part");
   tv_record->fX        = "Th_part";
   tv_record->fY        = "";
   tv_record->fZ        = "";
   tv_record->fCut      = "M_part > 25";
   tv_record->fXAlias   = "~Th_part";
   tv_record->fYAlias   = "-empty-";
   tv_record->fZAlias   = "-empty-";
   tv_record->fCutAlias = "~HiMult";
   tv_record->fOption   = "";
   tv_record->fScanRedirected = kFALSE;
   tv_record->fCutEnabled = kTRUE;
//--- Connect first record
   tv_session->First();
}
