Back Midas Rome Roody Rootana
  Rome Analyzer Framework  Not logged in ELOG logo
Entry  22 Jan 2016, SUDESHNA GANGULY, Suggestion, Adding texts on a histigram while using <Argus> block for tabbing 
    Reply  28 Jan 2016, Ryu Sawada, Suggestion, Adding texts on a histigram while using <Argus> block for tabbing 
Message ID: 179     Entry time: 28 Jan 2016     In reply to: 178
Author: Ryu Sawada 
Topic: Suggestion 
Subject: Adding texts on a histigram while using <Argus> block for tabbing 
Dear Sudeshna

Unfortunately, with the current ROME, it is not possible to insert own code when you use <Argus> blocks for 
which the source code is supposed to be generated automatically (and not editable).

If you want to do more than the automatically generated code, you can use the normal type tabs although you 
need to program it by yourself (as you program tasks).

An example is $ROMESYS/examples/midas.
In midas.xml, you can find <Tabs> section where several normal tabs are defined.
Corresponding source files will be generated in src/tabs when you run romebuilder after modifying the 
definition 
XML.

As for source files of tasks, you can edit the source files of tabs as you want.
ROMEbuilder will not overwrite the files.
You can draw any ROOT GUI objects in the tabs including text.

You can get the pointer of histograms associated to a task.
For example, in the midas example, src/tabs/MIDTADCTab.cpp, a pointer of a histogram 'ADC' of 
'FillHistogram' 
task is obtained by
  gAnalyzer->GetFillHistogramTask()->GetADCAt(i)

Please let me know if you have any problems to write code for your tabs.

Best regards,

Ryu



> Hi,
> 
> I am defining a histogram in the xml file like this:
> 
> <Histogram>
>   <HistName>h2_dt_tcpgotheader</HistName>
>   <HistFolderName>BC</HistFolderName>
>   <HistType>TH2D</HistType>
> <HistXLabel>time(us)</HistXLabel>
>   <HistYLabel>Entries</HistYLabel>
>   <HistXNbins>300000</HistXNbins>
>   <HistXmin>-20000</HistXmin>
>   <HistXmax>100000</HistXmax>
>   <HistYNbins>10</HistYNbins>
>   <HistYmin>0.0</HistYmin>
>   <HistYmax>10</HistYmax>-->
>   <Argus>
>     <Tab>
>       <TabName>SummaryBCBank</TabName>
>       <Index>0</Index>
>     </Tab>
>   </Argus>
> <Histogram>
>   <HistName>h2_dt_tcpgotheader</HistName>
>   <HistFolderName>BC</HistFolderName>
>   <HistType>TH2D</HistType>
> <HistXLabel>time(us)</HistXLabel>
>   <HistYLabel>Entries</HistYLabel>
>   <HistXNbins>300000</HistXNbins>
>   <HistXmin>-20000</HistXmin>
>   <HistXmax>100000</HistXmax>
>   <HistYNbins>10</HistYNbins>
>   <HistYmin>0.0</HistYmin>
>   <HistYmax>10</HistYmax>-->
>   <Argus>
>     <Tab>
>       <TabName>SummaryBCBank</TabName>
>       <Index>0</Index>
>     </Tab>
>   </Argus>
> </Histogram>
> 
> Now I want to add few texts and arrows on the same pad where the histogram is
> being written.
> 
> I want to add this piece of code:
> 
>   TLatex title;
>   title.SetTextFont(12);
>   title.SetTextSize(0.03);
>   title.SetNDC();
> 
> 
>       title.SetTextColor(2);
>       title.DrawLatex(0.01,0.32,"tcp header #rightarrow");
>       title.SetTextColor(3);
>       title.DrawLatex(0.01,0.4,"tcp data  #rightarrow");
>       title.SetTextColor(4);
>       title.DrawLatex(0.01,0.48,"copy to GPU #rightarrow");
>       title.SetTextColor(5);
>       title.DrawLatex(0.01,0.56,"GPU processing #rightarrow");
>       title.SetTextColor(6);
>       title.DrawLatex(0.01,0.64,"MFE start #rightarrow");
>       title.SetTextColor(7);
>       title.DrawLatex(0.01,0.72,"MFE stop #rightarrow");
> 
> The problem is that if I add this piece of code in the src/tasks, where I fill
> in the histogram, then the problem is that this histogram replaces whatever is
> on the last tab on the canvas.
> 
> As I recall that I am not supposed to add extra tabbing codes in the src codes
> when I am using the <Argus> block for tabbing.
> 
> So where can I add these texts while still using <Argus> block for tabbing?
> 
> Any help might be very much appreciated.
ELOG V3.1.4-2e1708b5