ID |
Date |
Author |
Topic |
Subject |
162
|
21 Oct 2015 |
SUDESHNA GANGULY | Info | Adding Trees and Branches in ROME |
Hi,
I need to add a tree, the tree will have n branches. Each branch will refer to
one event. Now Each branch will have 5 leaves. Each leaf will have data from one
WFD channel. There are data from total 5 WFD channels per event in our midas bank.
I have seen some examples of trees and branches in ROME, but I don't know how I
can loop over one channel to another channel and save those data into each leaf.
Any help will be appreciated greatly.
Sudeshna Ganguly |
174
|
03 Dec 2015 |
SUDESHNA GANGULY | Suggestion | Drawing multiple histograms on the same pad and dispalying them in the online mode in ROME |
I need some suggestions regarding drawing multiple histograms on the same pad in
ROME.
Here is what I have been doing. I am making a summary histogram online dispaly
with ARGUS. The displays is gonna show multiple different types of histograms.
So I made a module with four different types of histograms all on the same canvas,
so that I can look at them in real time in an online run.
Now in one of the histograms, I am looping over multiple banks, so in one of the
pads, I want to see two different lines of different colors (to indicate two
different histograms of the same type from two banks).
So I used histoGUI.xml (from examples/histoGUI) and used this way of histogram
and tab declarations:
<Tasks>
<Task>
<TaskName>FillHisto</TaskName>
<Histogram>
<HistName>h1_Esum</HistName>
<HistArraySize>2</HistArraySize>
<HistFolderName>myhistos</HistFolderName>
<HistType>TH1F</HistType>
<HistXLabel>ESum</HistXLabel>
<HistYLabel>Entries</HistYLabel>
<HistXNbins>300</HistXNbins>
<HistXmin>0</HistXmin>
<HistXmax>3.1</HistXmax>
</Histogram>
<Histogram>
<HistName>h1_amplitude</HistName>
<HistFolderName>myotherhistos</HistFolderName>
<HistArraySize>108</HistArraySize>
<HistType>TH1F</HistType>
<HistXLabel>Amplitude</HistXLabel>
<HistYLabel>Entries</HistYLabel>
<HistXNbins>4096</HistXNbins>
<HistXmin>-0.5</HistXmin>
<HistXmax>4095.5</HistXmax>
<Argus>
<Tab>
<TabName>GeneratedHisto</TabName>
<ObjectArrayIndex>0</ObjectArrayIndex>
<Index>1</Index>
</Tab>
</Argus>
</Histogram>
etc. and two other histograms have been defined in the same way.
And then in the src/task: HGUITFillHisto.cpp
I added this: (to draw two histograms on the same pad)
if(icalo==1)
{
Geth1_EsumAt(0)->Fill(0.00009118*sum);
Geth1_EsumAt(0)->SetLineColor(3);
}
Geth1_EsumAt(0)->Draw();
if(icalo==2)
{
Geth1_EsumAt(1)->Fill(0.00009118*sum);
}
Geth1_EsumAt(1)->Draw("same");
And attached is the screen shot from ARGUS.
Now the problem is: when I add the Draw() and Draw("same") codes in the src/task
code, it always creates two copies of the same pad. The 0th pad and the very last
pad. So what ever is on the last pad in the attachment is being replaced by the
same copy of the 0th pad. I kept chaning the Index number in histoGUI.xml, but what
ever I do, if I try to draw two histograms on the same pad and add those codes in
the srdc/task .cpp file, it always creates two copies.
I don't know where to look at to fix the problem.
Is there any other way I can add multiple histograms on a pad, while keeping the
other pads on the canvas intact?
Any help on this issue will be much appreciated. |
Attachment 1: Screenshot-11.png
|
|
176
|
10 Dec 2015 |
SUDESHNA GANGULY | Suggestion | writing data to mySQL via ROME |
I need some suggestions on how to write some data to a mySQL database via ROME.
I am calculating a quantity CTag and making a TGraph of CTag/event in ROME. Now
if I want to write it to a mySQL what shall I do?
From the manual I found that we can read from a database DAQ (SQL) system. That
it reads the main input data from a database. And I looked into the example
under'rome/examples/stepbystepdbdaq'.
But is there any way I can write the calculated CTags and Event Numbers to a SQL
database?
Thanks for any suggestion! |
178
|
22 Jan 2016 |
SUDESHNA GANGULY | Suggestion | Adding texts on a histigram while using <Argus> block for tabbing |
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. |
181
|
01 Mar 2016 |
SUDESHNA GANGULY | Info | Adding different tabs under a single parent tab |
Hi Everyone,
Is there any way I can put different tabs under a single click-able menu in ROME?
Suppose I have tabs A, B, C, D. Each one of these tabs contains histograms. Can
I now, put A, B, C, D under another click-able menu called "calorimeters" ?
So that when I click on "calorimeters", I will see A, B, C, D. And then when I
click on A/B/C/D I will see the histograms.
Can that be done?
Is there any example available?
Thanks for any help!
Sudeshna |
184
|
07 Mar 2016 |
SUDESHNA GANGULY | Suggestion | Problem in adding two TGraphs in the same pad using <Argus> block in tabbing |
I wanted to add two different TGraphs (Corresponding to two calorimeters) into
the same pad.
So in the xml file I did:
<Graph>
<GraphName>MyGraph</GraphName>
<GraphFolderName>mygraphs</GraphFolderName>
<GraphType>TGraph</GraphType>
<GraphArraySize>2</GraphArraySize>
<GraphXLabel>Event no.</GraphXLabel>
<GraphYLabel>Island no.</GraphYLabel>
<GraphXmin>0</GraphXmin>
<GraphXmax>10000</GraphXmax>
<GraphYmin>0</GraphYmin>
<GraphYmax>100000</GraphYmax>
<Argus>
<Tab>
<TabName>SummaryFCBank</TabName>
<ObjectArrayIndex>0-1</ObjectArrayIndex>
<Index>1</Index>
<DrawSamePad>true</DrawSamePad>
</Tab>
</Argus>
</Graph>
And in src/tasks:
in the HGUITFillHisto.cpp code I did:
for(int icalo=1; icalo<3; icalo++) [For each calorimeter there is one bank, and one n_islands value from that
bank per event.]
{
GetMyGraphAt(icalo-1)->SetPoint(gAnalyzer->GetCurrentEventNumber(),gAnalyzer->GetCurrentEventNumber(),n_islands);
GetMyGraphAt(0)->SetMarkerColor(2);
GetMyGraphAt(1)->SetMarkerColor(3);
ArgusHistoDisplay::SetLimits(GetMyGraphAt(icalo-1));
}
But then I get an empty pad in the tab.
It works when I create the TGraph for only one calorimeter, using GetMyGraph().
Any help would be much appreciated.
Thanks!
Sudeshna |
195
|
05 Apr 2016 |
SUDESHNA GANGULY | Bug Report | Running ROME remotely |
Hi Ryu,
After following your instructions to run ROME remotely, using run mode 3 on the
client machine, and mode 0 on the server machine, we can see ARGUS display
appearing on the client machine.
But that does not work if we have the <ARGUS> block for tabbing in the user xml
file. I see a bunch of error messages and then ROME crashes on the client machine.
There might be some conflict with using ARGUS and using run mode 3?
If I take off the <ARGUS> tab block and write my own src/tabs/tab codes, then on
my client machine, using run mode 3 works, the display appears with histograms
without a crash.
Any thought on this issue will be much appreciated.
Thanks,
Sudeshna |
197
|
11 Apr 2016 |
SUDESHNA GANGULY | Info | Getting an error while compiling a code with <ARGUS> tabs for 2-D histograms |
Hi Ryu,
I am trying to display a 2-D histogram with the <Argus> tab in the user xml file.
Here is what I have in the xml:
<Histogram>
<HistName>h2_Exy</HistName>
<HistFolderName>CT</HistFolderName>
<HistArraySize>2</HistArraySize>
<HistType>TH2F</HistType>
<HistXLabel>xseg</HistXLabel>
<HistYLabel>yseg</HistYLabel>
<HistXNbins>9</HistXNbins>
<HistXmin>0.5</HistXmin>
<HistXmax>9.5</HistXmax>
<HistYNbins>6</HistYNbins>
<HistYmin>0.5</HistYmin>
<HistYmax>6.5</HistYmax>
<Argus>
<Tab>
<TabName>Summary</TabName>
<ObjectArrayIndex>0</ObjectArrayIndex>
<Index>0</Index>
</Tab>
</Argus>
</Histogram>
But when I compile the code it throws the following error message:
src/generated/HGUITSummary_Base.cpp:87: error: cannot convert ‘TH1F*’ to ‘TH2F*’
in assignment
I am getting this error when ever I am trying to display 2-D histograms with
<Argus> tabs.
Any help will be much appreciated.
Sudeshna |
198
|
13 Apr 2016 |
SUDESHNA GANGULY | Bug Report | Error with maximum number of tabs in Argus section |
Hi Ryu,
I am trying to use <Argus> for tabbing like this:
<Argus>
<Tab>
<TabName>Tab1</TabName>
<ObjectArrayIndex>0</ObjectArrayIndex>
<Index>0</Index>
</Tab>
<Tab>
<TabName>Tab1</TabName>
<ObjectArrayIndex>1</ObjectArrayIndex>
<Index>1</Index>
</Tab>
<Tab>
<TabName>Tab1</TabName>
<ObjectArrayIndex>2</ObjectArrayIndex>
<Index>2</Index>
</Tab>
And I need to add 18 tabs with each tab having three pads.
Now I when ever I cross Tab6 with three pads on it, it gives me this error:
[sganguly@g2be1 rometest]$ /home/sganguly/dqm/rome/bin/romebuilder.exe -i
midas.xml -midas
Maximal number of Tabs in the Argus section of Histogram 'h1_wf' reached : 20 !
I have noticed that currently I can define 6 tabs and 5 pads on each tab maximum.
Could you please help me with this?
Thanks a lot!
Sudeshna |
199
|
14 Apr 2016 |
SUDESHNA GANGULY | Info | Error with maximum number of tabs in Argus section |
I've fixed the problem of not being able to define 18 tabs. I edited
/argus/include/ArgusHistoDisplay.h file:
I changed the parameter values to:
class ArgusHistoDisplay : public ArgusTab
{
protected:
enum {
kMaxNumberOfPads = 360,
kMaxNumberOfPadsX = 10,
kMaxNumberOfPadsY = 20,
kNumberOfDisplayViewSelections0 = 54,
kNumberOfDisplayViewSelections1 = 10,
kNumberOfDisplayViewSelections2 = 10,
kMaxNumberOfLines = 81
};
Now I can define 18 tabs with 3 pads in each.
> Hi Ryu,
>
> I am trying to use <Argus> for tabbing like this:
> <Argus>
> <Tab>
> <TabName>Tab1</TabName>
> <ObjectArrayIndex>0</ObjectArrayIndex>
>
> <Index>0</Index>
> </Tab>
> <Tab>
> <TabName>Tab1</TabName>
> <ObjectArrayIndex>1</ObjectArrayIndex>
> <Index>1</Index>
> </Tab>
> <Tab>
> <TabName>Tab1</TabName>
> <ObjectArrayIndex>2</ObjectArrayIndex>
>
> <Index>2</Index>
> </Tab>
>
>
>
>
> And I need to add 18 tabs with each tab having three pads.
> Now I when ever I cross Tab6 with three pads on it, it gives me this error:
>
> [sganguly@g2be1 rometest]$ /home/sganguly/dqm/rome/bin/romebuilder.exe -i
> midas.xml -midas
> Maximal number of Tabs in the Argus section of Histogram 'h1_wf' reached : 20 !
>
> I have noticed that currently I can define 6 tabs and 5 pads on each tab maximum.
>
> Could you please help me with this?
>
> Thanks a lot!
> Sudeshna |
200
|
14 Apr 2016 |
SUDESHNA GANGULY | Info | Is auto-update available for tabs with user-defined codes (not with <Argus>) ? |
Is it possible to have the pads automatically updated with the update frequency
(set at romeConfig.xml) while using user-defined src/tabs codes?
Suppose I write a tab code under src/tabs where I have created an "update" button.
Now on the Argus display monitor, if I click on the "update" button, the display
will be updated. But what I've noticed is that clicking on the update button
introduces a delay. By the time the display is actually updated I've missed some
events already.
Is there any way to sync the update button with the update frequency in the
romeConfig.xml? So that it keeps up with every event?
I would really appreciate if anyone have any suggestion for this situation.
Thanks a lot!
Sudeshna |
203
|
18 Apr 2016 |
SUDESHNA GANGULY | Info | Clear histogram/group of histograms at the beginning of run in ROME |
Hi All,
Is there any way in ROME that I can clear histograms at:
1)Run start.
2) Clear by group (tab) ?
Thanks a lot!
Sudeshna |
206
|
06 May 2016 |
SUDESHNA GANGULY | Info | Can we reset histograms at the middle of a run in ROME? |
Hi All,
Suppose I want to pause a run, at the middle, and change some run conditions. So
I want to clear histograms at the middle of a run. Is that possible to do in ROME?
That when I pause the run, I want to clear histograms. So with the new run
conditions, when we resume that run, we will get clear pads and histograms will
be filled in new.
Thanks a lot!
Sudeshna |
10
|
14 Oct 2004 |
Stefan Ritt | Suggestion | TBranch compression |
> Yes your right.
>
> I added that.
The compression level should not be "hard-wired" in the builder. Some people might consider not
using compression in favour of higher speed. So maybe an option in the XML File like
<Tree>
<TreeName>Test</TreeName>
<TreeTitle>Test Data</TreeTitle>
<CompressionLevel>1</CompressionLevel>
...
</Tree> |
45
|
27 Jan 2005 |
Stefan Ritt | Suggestion | messaging system |
> I implemented the cm_msg calls.
You should implement a central "message dispatcher". So all errors etc. should go to someting linke
rome_msg(). If compiled with midas online support, rome_msg() should call cm_msg(). If rome is compiled
without midas libraries, a printf() there would be enough. If someone uses rome in a different
environment, only can function needs to be changed to reroute all messages to somewhere else. |
117
|
22 Feb 2006 |
Stefan Ritt | Suggestion | Text database suggestion |
> This is maybe a bug report that happens reading long lines in a text database.
This does not only affect ROME, but also the MXML library which has to read the long lines. I haven't carefully
checked, but I presume that MXML can handle long lines. So it might maybe be better to keep the long lines in a
text database, and modify ROME such that there is no buffer overflow. This maybe makes it easier to read the
database and to import it in programs like a spreadsheet. |
137
|
09 Jun 2008 |
Stefan Ritt | Forum | Rome License |
> I was wondering what type of license, if any, applies to the Rome distribution.
> Midas is using GPL and Root is using LGPL.
Midas uses GPL because when I started that project, the LGPL was not yet in
existence. If anybody want Midas under the LGPL, I could consider switching that.
ROME is under the LGPL. |
107
|
06 Jan 2006 |
Steven Sheets | Forum | TNetFolder.h |
I just downloaded ROME v 2.0, I think. After running the make file I try and use romebuilder.exe
on the example stepbystep given in the download. When running romebuilder.exe
on stepbystep.xml I found it could not locate the file TNetFolder.h.
I googled this file and found a version of it which I copied to rome/include but still the builder will not build the analyzer. At this point I'm not sure how to get around this problem. If you have suggestions I'd appreciate it.
thanks,
Steven Sheets |
126
|
29 Jun 2006 |
Steven Sheets | Forum | ROME analyzer crashes on reading midas file. |
Hello,
So I'm stuck on this problem. The ROME based analyzer I use crashes everytime it attempts to open a midas file giving me this error:
Reading Midas-File /home/sheets4/run04750.mid.gz
*** Break *** segmentation violation
Generating stack trace...
0x00002b93efa9cd5c in gzread + 0xfc from /home/sheets4/root/lib/libCore.so
0x00000000004c47d9 in ROMEMidasDAQ::Event(long long) + 0x165 from ./danceanalyzer.exe
0x00000000004c452e in ROMEMidasDAQ::BeginOfRun() + 0x534 from ./danceanalyzer.exe
0x00000000004bf3da in ROMEDAQSystem::BeginOfRunDAQ() + 0x32 from ./danceanalyzer.exe
0x00000000004c1555 in ROMEEventLoop::DAQBeginOfRun(long long) + 0x15d from ./danceanalyzer.exe
0x00000000004c0721 in ROMEEventLoop::ExecuteTask(char const*) + 0x2d5 from ./danceanalyzer.exe
0x00000000004bb395 in ROMEAnalyzer::Start(int, char**) + 0x35d from ./danceanalyzer.exe
0x00000000005d121d in main + 0x2b1 from ./danceanalyzer.exe
0x000000363331c4bb in __libc_start_main + 0xdb from /lib64/tls/libc.so.6
0x00000000004b2e1a in TApplicationImp::ShowMembers(TMemberInspector&, char*) + 0x82 from ./danceanalyzer.exe
Aborted
I'd guess the problem is connected with ROOT but I'm not sure how to fix it.
I run ROOT v5.10.00
ROME v2.4
on a machine with Dual AMD opterons, 64 Bit with Red Hat Enterprise.
Any help would be appreciated.
thanks,
Steven |
121
|
08 Jun 2006 |
Todd Bredeweg | Bug Report | Unable to run rome analyzer from crontab |
I would like to use a bash script run from cron to analyze new midas event files automatically. Below is an abbreviated example script to test the way ROOT and ROME handle true batch mode
#! /bin/bash
BASEDIR=/data/0/PostRunQA # Base directory for output files
ROMEDIR=${BASEDIR}/dance-rome # Location of danceanalyzer
NRUN=7581
ROMECFG="romeConfig_Continuous.xml";
# Set PATH and LD_LIBRARY_PATH for correct versions of ...
# This also sets up the *SYS variables
source /opt/wnr/new/bin/newVersion --new root rome wnr
cd ${ROMEDIR};
# Check that ROOT works correctly
echo " Running ROOT batch mode test ";
root -b -q ../jmodScript.C
# Check that ROME works correctly
echo " Running danceanalyzer batch mode test ";
./danceanalyzer.exe -b -ns -q -i ${ROMECFG} -r ${NRUN}
The results for the ROOT section are the same when the script is run from the command line (full interactive environment) or when using at or crontab (non-interactive).
Running ROOT batch mode test
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.10/00 1 March 2006 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************
Compiled on 3 April 2006 for linux with thread support.
CINT/ROOT C/C++ Interpreter version 5.16.8, February 9, 2006
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
Executing rootlogon.C (31-MAY-2006)... Finished setup
Processing ../jmodScript.C...
hello world
This is the end of ROOT -- Goodbye
jmodScript.C is merely a classic "hello world" script. The ROME test, on the other hand, returns quite different results for the two cases. When run from the command line it works as expected
...
Running danceanalyzer batch mode test
Executing rootlogon.C (31-MAY-2006)... Finished setup
reading configuration from romeConfig_Continuous.xml
[bredeweg@enlil PostRunQA]$
but when run from at or crontab we get
Running danceanalyzer batch mode test
Executing rootlogon.C (31-MAY-2006)... Finished setup
*** Break *** segmentation violation
Generating stack trace...
0x081ec18b in main + 0x21b from ./danceanalyzer.exe
0x0734678a in __libc_start_main + 0xda from /lib/tls/libc.so.6
0x080dcd31 in TFile::TFile(char const*, char const*, char const*, int) + 0x51 from ./danceanalyzer.exe
/bin/bash: line 22: 28096 Aborted ./danceanalyzer.exe -b -ns -q -i ${ROMECFG} -r ${NRUN}
One question that we have been unable to answer as yet is whether rome is requiring a real TTY, which I do not believe is provided by cron.
We are using the following setup:
Redhat Enterprise Linux v3
ROOT v5.10.00
ROME RELEASE_2_4_R1004
I can provide additional information if needed.
Thanks in advance.
tab |