tvdemo.C

Go to the documentation of this file.
00001 void tvdemo() {
00002    printf("This demo show how to handle TTreeViewer sessions\n");
00003    printf("Compile class Event from test directory before running this\n");
00004    printf("- use arrow buttons from bottom to cycle records ...\n");
00005    printf("- make new expressions and drag them to X, Y, Z or Cut items ...\n");
00006    printf("- use the Draw button to check your current selection ...\n");
00007    printf("- click the record button once you are happy with this ...\n");
00008    printf("- open the TV context menu (right-click on the right panel)...\n");
00009    printf("  Use : RemoveLastRecord() - to remove last record :-)\n");
00010    printf("        SetRecordName()    - to name current record\n");
00011    printf("        UpdateRecord()     - if you want to change a record from the list\n");
00012    printf("                             with your new X, Y, Z, Cut configuration.\n");
00013    printf("  Best luck !\n");
00014    
00015    open_session();
00016 }
00017 
00018 open_session(void *p = 0) {
00019 //=========Macro generated by ROOT version3.00/00
00020 //=========for tree "T" (Wed Feb 21 14:16:23 2001)
00021 //===This macro can be opened from a TreeViewer session after loading
00022 //===the corresponding tree
00023    gSystem->Load("libTreeViewer");
00024    TTreeViewer *treeview = (TTreeViewer *) p;
00025    if (!treeview) treeview = new TTreeViewer();
00026    TTree *tv_tree = (TTree*)gROOT->FindObject("T");
00027    TFile *tv_file = (TFile*)gROOT->GetListOfFiles()->FindObject("Event.root");
00028    if (!tv_tree) {
00029       if (!tv_file) tv_file = new TFile("$ROOTSYS/test/Event.root");
00030       if (tv_file)  tv_tree = (TTree*)tv_file->Get("T");
00031       if(!tv_tree) {
00032          printf("Tree %s not found", fTree->GetName());
00033          return;
00034       }
00035    }
00036 
00037    treeview->SetTreeName("T");
00038    treeview->SetNexpressions(10);
00039 //         Set expressions on axis and cut
00040    TTVLVEntry *item;
00041 //   X expression
00042    item = treeview->ExpressionItem(0);
00043    item->SetExpression("fTemperature", "fTemperature");
00044 //   Y expression
00045    item = treeview->ExpressionItem(1);
00046    item->SetExpression("", "-empty-");
00047 //   Z expression
00048    item = treeview->ExpressionItem(2);
00049    item->SetExpression("", "-empty-");
00050 //   Cut expression
00051    item = treeview->ExpressionItem(3);
00052    item->SetExpression("", "-empty-");
00053 //         Scan list
00054    item = treeview->ExpressionItem(4);
00055    item->SetExpression("", "Scan box");
00056 //         User defined expressions
00057    item = treeview->ExpressionItem(5);
00058    item->SetExpression("sqrt(fTracks.fPx*fTracks.fPx+fTracks.fPy*fTracks.fPy)", "~Pt", kFALSE);
00059    item = treeview->ExpressionItem(6);
00060    item->SetExpression("fTracks.fPx>0", "~Cut1", kTRUE);
00061    item = treeview->ExpressionItem(7);
00062    item->SetExpression("", "-empty-", kFALSE);
00063    item = treeview->ExpressionItem(8);
00064    item->SetExpression("", "-empty-", kFALSE);
00065    item = treeview->ExpressionItem(9);
00066    item->SetExpression("", "-empty-", kFALSE);
00067    item = treeview->ExpressionItem(10);
00068    item->SetExpression("", "-empty-", kFALSE);
00069    item = treeview->ExpressionItem(11);
00070    item->SetExpression("", "-empty-", kFALSE);
00071    item = treeview->ExpressionItem(12);
00072    item->SetExpression("", "-empty-", kFALSE);
00073    item = treeview->ExpressionItem(13);
00074    item->SetExpression("", "-empty-", kFALSE);
00075    item = treeview->ExpressionItem(14);
00076    item->SetExpression("", "-empty-", kFALSE);
00077 //--- session object
00078    tv_session = new TTVSession(treeview);
00079    treeview->SetSession(tv_session);
00080 //--- tree viewer record
00081    tv_record = tv_session->AddRecord(kTRUE);
00082    tv_session->SetRecordName("Temperature");
00083    tv_record->fX        = "fTemperature";
00084    tv_record->fY        = "";
00085    tv_record->fZ        = "";
00086    tv_record->fCut      = "";
00087    tv_record->fXAlias   = "fTemperature";
00088    tv_record->fYAlias   = "-empty-";
00089    tv_record->fZAlias   = "-empty-";
00090    tv_record->fCutAlias = "-empty-";
00091    tv_record->fOption   = "lego1";
00092    tv_record->fScanRedirected = kFALSE;
00093    tv_record->fCutEnabled = kTRUE;
00094 //--- tree viewer record
00095    tv_record = tv_session->AddRecord(kTRUE);
00096    tv_session->SetRecordName("Py versus Px");
00097    tv_record->fX        = "fTracks.fPx";
00098    tv_record->fY        = "fTracks.fPy";
00099    tv_record->fZ        = "";
00100    tv_record->fCut      = "";
00101    tv_record->fXAlias   = "fTracks.fPx";
00102    tv_record->fYAlias   = "fTracks.fPy";
00103    tv_record->fZAlias   = "-empty-";
00104    tv_record->fCutAlias = "-empty-";
00105    tv_record->fOption   = "lego";
00106    tv_record->fScanRedirected = kFALSE;
00107    tv_record->fCutEnabled = kTRUE;
00108 //--- tree viewer record
00109    tv_record = tv_session->AddRecord(kTRUE);
00110    tv_session->SetRecordName("Transverse momentum");
00111    tv_record->fX        = "sqrt(fTracks.fPx*fTracks.fPx+fTracks.fPy*fTracks.fPy)";
00112    tv_record->fY        = "";
00113    tv_record->fZ        = "";
00114    tv_record->fCut      = "fTracks.fPx>0";
00115    tv_record->fXAlias   = "~Pt";
00116    tv_record->fYAlias   = "-empty-";
00117    tv_record->fZAlias   = "-empty-";
00118    tv_record->fCutAlias = "~Cut1";
00119    tv_record->fOption   = "";
00120    tv_record->fScanRedirected = kFALSE;
00121    tv_record->fCutEnabled = kTRUE;
00122 //--- tree viewer record
00123    tv_record = tv_session->AddRecord(kTRUE);
00124    tv_session->SetRecordName("Surface plot of Py vs. Px");
00125    tv_record->fX        = "fTracks.fPx";
00126    tv_record->fY        = "fTracks.fPy";
00127    tv_record->fZ        = "";
00128    tv_record->fCut      = "";
00129    tv_record->fXAlias   = "fTracks.fPx";
00130    tv_record->fYAlias   = "fTracks.fPy";
00131    tv_record->fZAlias   = "-empty-";
00132    tv_record->fCutAlias = "-empty-";
00133    tv_record->fOption   = "SURF";
00134    tv_record->fScanRedirected = kFALSE;
00135    tv_record->fCutEnabled = kTRUE;
00136 //--- Show first record
00137    tv_session->Show(tv_session->First());
00138 }

Generated on Tue Jul 5 15:45:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1