Back Midas Rome Roody Rootana
  Rome Analyzer Framework, Page 8 of 11  Not logged in ELOG logo
ID Date Author Topicup Subject
  194   05 Apr 2016 Ryu SawadaInfo ROME in online mode using an intermediary machine
Dear Wes,

-R is used for starting an interactive session connected to a server.

If you want to see Argus windows, please change <ProgramMode> to 3 (or use "-p 3" comman-line option).

Ryu



Wes Gohn wrote:

Hi Ryu, here is the method we've followed. I tried to simplify things by connecting to the server directly, so we can skip the port tunnelling. On the server side, in the romeConfig.xml, I set

<SocketServer>
<Active>true</Active>
<PortNumber>9091</PortNumber>
</SocketServer>

I then started rome in batch mode

./midanalyzer.exe -i romeConfig.xml -b

It connects to a running experiment as expected, and is processing data.
On the client machine, I set in romeConfig.xml:


<SocketClient>
<Host>myhost</Host>
<Port>9091</Port>
</SocketClient>

I then start rome using the -R option:

./midanalyzer.exe -R myhost:9091
*****************************************
* *
* MIDAnalyzer *
* *
* generated by the ROME Environment *
* Version 3.2.6 *
* *
*****************************************


Remote session to myhost:9091
midanalyzer [0]


At which point it does establish the socket connection to the server side, but it just sits there (I can establish this because if I run commands at the prompt, I see some errors pop up on my server terminal). How do I open my Argus browser on the client side to see the plots?

Or is there something we're doing that is fundamentally wrong?

Thanks,
Wes
  197   11 Apr 2016 SUDESHNA GANGULYInfoGetting 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
  199   14 Apr 2016 SUDESHNA GANGULYInfoError 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 GANGULYInfoIs 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
  201   15 Apr 2016 Ryu SawadaInfoIs auto-update available for tabs with user-defined codes (not with <Argus>) ?
Dear Sudeshna

The easiest way would be to call your "Update" function from EventHandler function of your tabs.

You may or may not have a function named "Update", but I believe you must have a function to update your graphics 
when your "Update" button is clicked.
You can call the same thing from EventHandler function, then it will keep the display updated.

If you want to control the frequency of the update of each tab, you can see two examples,
  $ROMESYS/examples/argus/thread/
  $ROMESYS/examples/argus/timer/
The examples update the display with using different tools (making other update thread or by using TTimer of ROOT).

Ryu

> 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
  202   15 Apr 2016 Ryu SawadaInfoError with maximum number of tabs in Argus section
Dear Sudeshna

I commit the change to the 'develop' branch.

Ryu

> 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
  203   18 Apr 2016 SUDESHNA GANGULYInfoClear 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
  204   21 Apr 2016 Ryu SawadaInfoClear histogram/group of histograms at the beginning of run in ROME
Dear Sudeshna,

In ROME, histograms are associated with a task (not with a tab).

Histograms are reset at the beginning of runs when "HistAccumulate" is false.
You can set it in your configuration XML like,
          <Histogram>
            <HistName>MyHisto</HistName>
            <HistAccumulate>false</HistAccumulate>
          </Histogram>

If you want to clear by hand, you can use ResetHisto() function of your tasks; the function is automatically implemented by ROMEbuilder.

Ryu

> 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 GANGULYInfoCan 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
  207   11 May 2016 Ryu SawadaInfoCan we reset histograms at the middle of a run in ROME?
Dear Sudeshna,

I added a new button to clear histograms.


Please update your ROME and use the 'develop' branch.

Best regards,

Ryu

> 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
  208   29 Nov 2017 Yusuke UchiyamaInfoCompiler warning
Dear all,

Under the environment with GCC4.8.5 and ROOT6.08.04,
we get the following warning messages when compiling XXXAnalyzer3, XXXAnalyzer4, 
XXXConfig, XXXConfig2,3,4, XXXDBAccess, and XXXConfigToForm.


In file included from /usr/include/stdlib.h:24:0,
                 from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
gcc485/include/ROMEAnalyzer.h:10,
                 from include/generated/MEGPrecompile.h:23,
                 from <command-line>:0:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
with optimization (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
[345/369] compiling obj/MEGAnalyzer4.o
In file included from /usr/include/stdlib.h:24:0,
                 from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
gcc485/include/ROMEAnalyzer.h:10,
                 from include/generated/MEGPrecompile.h:23,
                 from <command-line>:0:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
with optimization (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^

It seems due to 'NOOPT' flag added to those objects in the Makefile.
Is the 'NOOPT' flag necessary? If not, how can we remove it?

Regards,
Yusuke
  209   29 Nov 2017 Ryu SawadaInfoCompiler warning
Hi Yusuke

NOOPT is added for potentially large source files to reduce the compile time and memory usage.

I guess -D_FORTIFY_SOURCE option is added in your project Makefile or in your environment variable, instead of by 
ROME.
However, we could modify ROME to explicitly disable it by adding -D_FORTIFY_SOURCE=0 to NOOPT.
That can be done by modifying builder/src/ROMEBuildMakeFile.cpp line 1348.

Could you try to do it ?

Ryu


> Dear all,
> 
> Under the environment with GCC4.8.5 and ROOT6.08.04,
> we get the following warning messages when compiling XXXAnalyzer3, XXXAnalyzer4, 
> XXXConfig, XXXConfig2,3,4, XXXDBAccess, and XXXConfigToForm.
> 
> 
> In file included from /usr/include/stdlib.h:24:0,
>                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> gcc485/include/ROMEAnalyzer.h:10,
>                  from include/generated/MEGPrecompile.h:23,
>                  from <command-line>:0:
> /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> with optimization (-O) [-Wcpp]
>  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
>     ^
> [345/369] compiling obj/MEGAnalyzer4.o
> In file included from /usr/include/stdlib.h:24:0,
>                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> gcc485/include/ROMEAnalyzer.h:10,
>                  from include/generated/MEGPrecompile.h:23,
>                  from <command-line>:0:
> /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> with optimization (-O) [-Wcpp]
>  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
>     ^
> 
> It seems due to 'NOOPT' flag added to those objects in the Makefile.
> Is the 'NOOPT' flag necessary? If not, how can we remove it?
> 
> Regards,
> Yusuke
  210   29 Nov 2017 Yusuke UchiyamaInfoCompiler warning
Hi Ryu,

Thank you.
You are right. We add -D_FORTIFY_SOURCE=2 in CFLAGS and CXXFLAGS in our project Makefile.
If we remove it, the warnings go away.

I tried your suggestion but I got the following warning: 

[346/369] compiling obj/MEGAnalyzer3.o
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
<command-line>:0:0: note: this is the location of the previous definition

However, if I add 
'-U_FORTIFY_SOURCE' instead the warning above disappears.

Do you think it is OK for all?

Regards,
Yusuke

> Hi Yusuke
> 
> NOOPT is added for potentially large source files to reduce the compile time and memory usage.
> 
> I guess -D_FORTIFY_SOURCE option is added in your project Makefile or in your environment variable, instead of by 
> ROME.
> However, we could modify ROME to explicitly disable it by adding -D_FORTIFY_SOURCE=0 to NOOPT.
> That can be done by modifying builder/src/ROMEBuildMakeFile.cpp line 1348.
> 
> Could you try to do it ?
> 
> Ryu
> 
> 
> > Dear all,
> > 
> > Under the environment with GCC4.8.5 and ROOT6.08.04,
> > we get the following warning messages when compiling XXXAnalyzer3, XXXAnalyzer4, 
> > XXXConfig, XXXConfig2,3,4, XXXDBAccess, and XXXConfigToForm.
> > 
> > 
> > In file included from /usr/include/stdlib.h:24:0,
> >                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> > gcc485/include/ROMEAnalyzer.h:10,
> >                  from include/generated/MEGPrecompile.h:23,
> >                  from <command-line>:0:
> > /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> > with optimization (-O) [-Wcpp]
> >  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
> >     ^
> > [345/369] compiling obj/MEGAnalyzer4.o
> > In file included from /usr/include/stdlib.h:24:0,
> >                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> > gcc485/include/ROMEAnalyzer.h:10,
> >                  from include/generated/MEGPrecompile.h:23,
> >                  from <command-line>:0:
> > /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> > with optimization (-O) [-Wcpp]
> >  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
> >     ^
> > 
> > It seems due to 'NOOPT' flag added to those objects in the Makefile.
> > Is the 'NOOPT' flag necessary? If not, how can we remove it?
> > 
> > Regards,
> > Yusuke
  211   29 Nov 2017 Ryu SawadaInfoCompiler warning
Hi.

Thank you for testing.

-U_FORTIFY_SOURCE is fine, and can be implemented in ROME.

Ryu

> Hi Ryu,
> 
> Thank you.
> You are right. We add -D_FORTIFY_SOURCE=2 in CFLAGS and CXXFLAGS in our project Makefile.
> If we remove it, the warnings go away.
> 
> I tried your suggestion but I got the following warning: 
> 
> [346/369] compiling obj/MEGAnalyzer3.o
> <command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
> <command-line>:0:0: note: this is the location of the previous definition
> 
> However, if I add 
> '-U_FORTIFY_SOURCE' instead the warning above disappears.
> 
> Do you think it is OK for all?
> 
> Regards,
> Yusuke
> 
> > Hi Yusuke
> > 
> > NOOPT is added for potentially large source files to reduce the compile time and memory usage.
> > 
> > I guess -D_FORTIFY_SOURCE option is added in your project Makefile or in your environment variable, instead of by 
> > ROME.
> > However, we could modify ROME to explicitly disable it by adding -D_FORTIFY_SOURCE=0 to NOOPT.
> > That can be done by modifying builder/src/ROMEBuildMakeFile.cpp line 1348.
> > 
> > Could you try to do it ?
> > 
> > Ryu
> > 
> > 
> > > Dear all,
> > > 
> > > Under the environment with GCC4.8.5 and ROOT6.08.04,
> > > we get the following warning messages when compiling XXXAnalyzer3, XXXAnalyzer4, 
> > > XXXConfig, XXXConfig2,3,4, XXXDBAccess, and XXXConfigToForm.
> > > 
> > > 
> > > In file included from /usr/include/stdlib.h:24:0,
> > >                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> > > gcc485/include/ROMEAnalyzer.h:10,
> > >                  from include/generated/MEGPrecompile.h:23,
> > >                  from <command-line>:0:
> > > /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> > > with optimization (-O) [-Wcpp]
> > >  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
> > >     ^
> > > [345/369] compiling obj/MEGAnalyzer4.o
> > > In file included from /usr/include/stdlib.h:24:0,
> > >                  from /meg/data1/shared/mc/benchmark_test/rome3-root6.08.04-
> > > gcc485/include/ROMEAnalyzer.h:10,
> > >                  from include/generated/MEGPrecompile.h:23,
> > >                  from <command-line>:0:
> > > /usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling 
> > > with optimization (-O) [-Wcpp]
> > >  #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
> > >     ^
> > > 
> > > It seems due to 'NOOPT' flag added to those objects in the Makefile.
> > > Is the 'NOOPT' flag necessary? If not, how can we remove it?
> > > 
> > > Regards,
> > > Yusuke
  1   05 Oct 2004 Jan WoutersSuggestionxml and ROME
After looking at the example xml document for the MEG detector I would like to make the following suggestion.  
Only a small portion of the power of XML is used with the MEG example i.e., the ability to express the data as a  
hierarchical tree.  Missing is the powerful feature of XML to establish a schema for the XML document specific 
to ROME that enforces a valid structure.

XML uses the XML Schema language, which is in turn based on XML, to define a schema for a document.  I 
propose that a ROME schema be developed that defines an XML document that the ROME builder can read 
and process.  By having such a schema, general purpose XML editors can validate the XML document prior to 
invoking the ROME builder.  Thus the schema greatly simplifies a user's task of developing a ROME xml 
document describing their experiment.  In addition, a good XML editor uses the schema to indicate to the user 
the elements available at any particular point in the document so that the user doesn't have to remember all the 
entries, which are required or optional to describe an experiment.

With this e-mail I include two documents.  The first is an example schema for ROME.  This schema is 
incomplete, but  illustrates the major concepts of using a schema to specify the acceptable  format of the XML 
document and providing help to the user for building the document.  The second is an example XML document 
built using the ROME sample schema.  It is for an experiment currently in production at the Los Alamos 
National Laboratory.

To get this example to work you will have to change the second line of DANCESchema.xml so that it properly 
points to the ROME.xsd document.  For this example I used the Java based XML editor Oxygen.

Notes on Schema:
1) Every element in the schema has a fixed name.  All experimental data is included as either xml data or an 
xml attribute.
2) Based on the suggestion by http://www.xmlfiles.com/xml/xml_attributes.asp attributes are used sparingly or 
not at all.  Instead data is specified as XML data e.g. <data>the actual data</data>.

If you have any questions concerning this example please e-mail jwouters@lanl.gov.
Attachment 1: DANCESchema.xml
<?xml version="1.0" encoding="UTF-8"?>
<Experiment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:/Users/jwouters/Dev/DANCE/ROME/DANCE.xsd">
    <ExperimentName>DANCE</ExperimentName>
    <Author>
        <AuthorName>Jan M. Wouters</AuthorName>
        <AuthorInstitute>LANL</AuthorInstitute>
        <AuthorCollaboration>DANCE</AuthorCollaboration>
        <AuthorEmail>jwouters@lanl.gov</AuthorEmail>
    </Author>
    <Folder>
        <SubFolder>
            <SubFolderName>OEDDanceEvent</SubFolderName>
            <SubFolderTitle>Dance Event</SubFolderTitle>
            <ArraySize>2</ArraySize>
            <Field>
                <FieldName>OEDgGammaEnergy</FieldName>
                <FieldType>Float_t</FieldType>
                <FieldComment>Total Gamma Energy</FieldComment>
            </Field>
            <Field>
                <FieldName>OEDgNeutronEnergy</FieldName>
                <FieldType>Float_t</FieldType>
            </Field>
        </SubFolder>
        <SubFolder>
            <SubFolderName>OCDOneDanceCrystal</SubFolderName>
            <SubFolderTitle>Crystal</SubFolderTitle>
            <ArraySize>1</ArraySize>
            <Field>
                <FieldName>OCDgHiGainRaw</FieldName>
                <FieldType>ULong_t</FieldType>
                <FieldComment>Hi gain raw value"</FieldComment>
            </Field>
            <Field>
                <FieldName>OCDgLoGainRaw</FieldName>
                <FieldType>ULong_t</FieldType>
                <FieldComment>Lo gain raw value</FieldComment>
            </Field>
            <Field>
                <FieldName>OCDgHiGainCalib</FieldName>
                <FieldType>Float_t</FieldType>
                <FieldComment>Hi gain calib value</FieldComment>
            </Field>
        </SubFolder>
    </Folder>
        <Task>
        <SubTask>
            <TaskName>ReadData</TaskName>
            <TaskEventId>1</TaskEventId>
            <Author>
              <AuthorName>Jan M. Wouters</AuthorName>
            </Author>
            <TaskVersion>1</TaskVersion>
            <TaskDesc>reads data</TaskDesc>
        </SubTask>
        <SubTask>
            <TaskName>CalibData</TaskName>
            <TaskEventId>1</TaskEventId>
            <Author>
                <AuthorName>Jan M. Wouters</AuthorName>
            </Author>
            <TaskVersion>1</TaskVersion>
            <Histograms>
                <Histogram>
                <HistFolder>RawData</HistFolder>
                <HistTitle>Raw Histograms</HistTitle>
                <HistType>TH1S</HistType>
                    <HistArraySize>160</HistArraySize>
                <HistSize>1024</HistSize>
                <xMax>1024</xMax>
                </Histogram>
                <Histogram>
                    <HistFolder>CalibData</HistFolder>
                    <HistTitle>Calib Histograms</HistTitle>
                    <HistType>TH1F</HistType>
                    <HistArraySize>160</HistArraySize>
                    <HistSize>2048</HistSize>
                    <xMax>2047</xMax>
                </Histogram>                
            </Histograms>
            <TaskDesc>Calibrates the raw data</TaskDesc>
         </SubTask>
    </Task>

    <MidasBanks>
        <EventHeader>
            <Folder>Trigger</Folder>
            <EventId>ID</EventId>
            <TriggerMask>Mask</TriggerMask>
            <SerialNumber>EventNumber</SerialNumber>
            <TimeStamp>Time</TimeStamp>
        </EventHeader>
        <EventStructure>
            <EventName>TM01</EventName>
            <EventData>
                <DataName>Time</DataName>
                <DataType>DWORD</DataType>
            </EventData>
        </EventStructure>
        <EventStructure>
            <EventName>EV01</EventName>
            <EventData>
                <DataName>OCRgAreaHG</DataName>
                <DataType>DWORD</DataType>
            </EventData>
            <EventData>
                <DataName>OCRgAreaLG</DataName>
                <DataType>DWORD</DataType>
            </EventData>
            <EventData>
                <DataName>OCRgTimeHi</DataName>
                <DataType>DWORD</DataType>
            </EventData>
            <EventData>
                <DataName>OCRgDetId</DataName>
                <DataType>DWORD</DataType>
            </EventData>
        </EventStructure>
    </MidasBanks>
</Experiment>
Attachment 2: ROME.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>
        <xs:documentation>Described some enumerated types</xs:documentation>
    </xs:annotation>
    <xs:simpleType name="RootType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Float_t"/>
            <xs:enumeration value="ULong_t"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="HistTypeDesc">
        <xs:restriction base="xs:string">
            <xs:enumeration value="TH1C"/>
            <xs:enumeration value="TH1S"/>
            <xs:enumeration value="TH1F"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="MidasType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="DWORD"/>
            <xs:enumeration value="float"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:annotation>
        <xs:documentation>Describe general types</xs:documentation>
    </xs:annotation>
    <xs:complexType name="AuthorDesc">
        <xs:sequence>
            <xs:element name="AuthorName" type="xs:string"/>
            <xs:element name="AuthorInstitute" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="AuthorCollaboration" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="AuthorEmail" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:annotation>
        <xs:documentation>Describe types used by subfolders</xs:documentation>
    </xs:annotation>
    <xs:complexType name="FieldDesc">
        <xs:sequence>
            <xs:element name="FieldName" type="xs:string"/>
            <xs:element name="FieldType" type="RootType"/>
            <xs:element name="FieldComment" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SubFolderDesc">
        <xs:sequence>
            <xs:element name="SubFolderName" type="xs:string"/>
            <xs:element name="SubFolderTitle" type="xs:string"/>
            <xs:element name="ArraySize" type="xs:integer"/>
            <xs:element name="Field" type="FieldDesc" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:annotation>
        <xs:documentation>Describe tasks</xs:documentation>
    </xs:annotation>
    <xs:complexType name="HistDesc">
        <xs:sequence>
            <xs:element name="HistFolder" type="xs:string"/>
            <xs:element name="HistTitle" type="xs:string"/>
            <xs:element name="HistType" type="HistTypeDesc"/>
            <xs:element name="HistArraySize" type="xs:integer" minOccurs="0" default="1"/>
            <xs:element name="HistSize" type="xs:integer"/>
            <xs:element name="xMin" type="xs:integer" minOccurs="0" default="0"/>
            <xs:element name="xMax" type="xs:integer"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="HistogramsDesc">
        <xs:sequence>
            <xs:element name="Histogram" type="HistDesc" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="SubTaskDesc">
        <xs:sequence>
            <xs:element name="TaskName" type="xs:string"/>
            <xs:element name="TaskEventId" type="xs:integer"/>
            <xs:element name="Author" type="AuthorDesc"/>
            <xs:element name="TaskVersion" type="xs:integer"/>
            <xs:element name="Histograms" type="HistogramsDesc" minOccurs="0" maxOccurs="1"/>
            <xs:element name="TaskDesc" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:annotation>
        <xs:documentation>Describe elements used by MidasBanks</xs:documentation>
    </xs:annotation>
    <xs:complexType name="EventHeaderDesc">
        <xs:sequence>
            <xs:element name="Folder" type="xs:string"/>
            <xs:element name="EventId" type="xs:string"/>
            <xs:element name="TriggerMask" type="xs:string"/>
            <xs:element name="SerialNumber" type="xs:string"/>
            <xs:element name="TimeStamp" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EventDataDesc">
        <xs:sequence>
            <xs:element name="DataName" type="xs:string"/>
            <xs:element name="DataType" type="MidasType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EventStructDesc">
        <xs:sequence>
            <xs:element name="EventName" type="xs:string"/>
            <xs:element name="EventData" type="EventDataDesc" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:annotation>
        <xs:documentation>Describe overall document</xs:documentation>
    </xs:annotation>
    <xs:element name="Experiment">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ExperimentName" type="xs:string"/>
                <xs:element name="Author" type="AuthorDesc"/>
                <xs:element name="Folder">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="SubFolder" type="SubFolderDesc" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Task">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="SubTask" type="SubTaskDesc" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="MidasBanks">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="EventHeader" type="EventHeaderDesc"/>
                            <xs:element name="EventStructure" type="EventStructDesc" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
  2   08 Oct 2004 Matthias SchneebeliSuggestionxml and ROME
> After looking at the example xml document for the MEG detector I would like to make the following suggestion.  
> Only a small portion of the power of XML is used with the MEG example i.e., the ability to express the data as a  
> hierarchical tree.  Missing is the powerful feature of XML to establish a schema for the XML document specific 
> to ROME that enforces a valid structure.
> 
> XML uses the XML Schema language, which is in turn based on XML, to define a schema for a document.  I 
> propose that a ROME schema be developed that defines an XML document that the ROME builder can read 
> and process.  By having such a schema, general purpose XML editors can validate the XML document prior to 
> invoking the ROME builder.  Thus the schema greatly simplifies a user's task of developing a ROME xml 
> document describing their experiment.  In addition, a good XML editor uses the schema to indicate to the user 
> the elements available at any particular point in the document so that the user doesn't have to remember all the 
> entries, which are required or optional to describe an experiment.
> 
> With this e-mail I include two documents.  The first is an example schema for ROME.  This schema is 
> incomplete, but  illustrates the major concepts of using a schema to specify the acceptable  format of the XML 
> document and providing help to the user for building the document.  The second is an example XML document 
> built using the ROME sample schema.  It is for an experiment currently in production at the Los Alamos 
> National Laboratory.
> 
> To get this example to work you will have to change the second line of DANCESchema.xml so that it properly 
> points to the ROME.xsd document.  For this example I used the Java based XML editor Oxygen.
> 
> Notes on Schema:
> 1) Every element in the schema has a fixed name.  All experimental data is included as either xml data or an 
> xml attribute.
> 2) Based on the suggestion by <a 
href="http://www.xmlfiles.com/xml/xml_attributes.asp">http://www.xmlfiles.com/xml/xml_attributes.asp</a> attributes 
are used sparingly or 
> not at all.  Instead data is specified as XML data e.g. <data>the actual data</data>.
> 
> If you have any questions concerning this example please e-mail jwouters@lanl.gov.


Thank you for your advice.

I have implemented the suggested xml format in rome. I have also inluded a rome.xsd schema file in the rome 
distribution under ROMESYS/.

Now, the current cvs version of rome expects the new format.
The samples are updated.

The documentation is not yet updated.
Is there any way of using the .xsd file for documentation?

For example I'd like to have somting like this:
I would like to have a docu attribute in the xsd file :

<xs:element name="Folders" minOccurs="1" maxOccurs="1" docu="Defines all folder of the framework">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Folder" type="FolderDesc" minOccurs="1" maxOccurs="unbounded" 
                  docu="Defines a folder of the framework"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

The xsd file should then be translated into an html file, that documents the structure of my xml file with comments 
on every field.

Is there any tool, that provides a documentation mechanism like that.

If not I will write that by myself.
  3   08 Oct 2004 Matthias SchneebeliSuggestionxml and ROME
> > After looking at the example xml document for the MEG detector I would like to make the following suggestion.  
> > Only a small portion of the power of XML is used with the MEG example i.e., the ability to express the data as a  
> > hierarchical tree.  Missing is the powerful feature of XML to establish a schema for the XML document specific 
> > to ROME that enforces a valid structure.
> > 
> > XML uses the XML Schema language, which is in turn based on XML, to define a schema for a document.  I 
> > propose that a ROME schema be developed that defines an XML document that the ROME builder can read 
> > and process.  By having such a schema, general purpose XML editors can validate the XML document prior to 
> > invoking the ROME builder.  Thus the schema greatly simplifies a user's task of developing a ROME xml 
> > document describing their experiment.  In addition, a good XML editor uses the schema to indicate to the user 
> > the elements available at any particular point in the document so that the user doesn't have to remember all the 
> > entries, which are required or optional to describe an experiment.
> > 
> > With this e-mail I include two documents.  The first is an example schema for ROME.  This schema is 
> > incomplete, but  illustrates the major concepts of using a schema to specify the acceptable  format of the XML 
> > document and providing help to the user for building the document.  The second is an example XML document 
> > built using the ROME sample schema.  It is for an experiment currently in production at the Los Alamos 
> > National Laboratory.
> > 
> > To get this example to work you will have to change the second line of DANCESchema.xml so that it properly 
> > points to the ROME.xsd document.  For this example I used the Java based XML editor Oxygen.
> > 
> > Notes on Schema:
> > 1) Every element in the schema has a fixed name.  All experimental data is included as either xml data or an 
> > xml attribute.
> > 2) Based on the suggestion by <a 
> href="<a 
href="http://www.xmlfiles.com/xml/xml_attributes.asp">http://www.xmlfiles.com/xml/xml_attributes.asp</a>">http://www.xml
files.com/xml/xml_attributes.asp"><a 
href="http://www.xmlfiles.com/xml/xml_attributes.asp</a>">http://www.xmlfiles.com/xml/xml_attributes.asp</a></a></a> 
attributes 
> are used sparingly or 
> > not at all.  Instead data is specified as XML data e.g. <data>the actual data</data>.
> > 
> > If you have any questions concerning this example please e-mail jwouters@lanl.gov.
> 
> 
> Thank you for your advice.
> 
> I have implemented the suggested xml format in rome. I have also inluded a rome.xsd schema file in the rome 
> distribution under ROMESYS/.
> 
> Now, the current cvs version of rome expects the new format.
> The samples are updated.
> 
> The documentation is not yet updated.
> Is there any way of using the .xsd file for documentation?
> 
> For example I'd like to have somting like this:
> I would like to have a docu attribute in the xsd file :
> 
> <xs:element name="Folders" minOccurs="1" maxOccurs="1" docu="Defines all folder of the framework">
>   <xs:complexType>
>     <xs:sequence>
>       <xs:element name="Folder" type="FolderDesc" minOccurs="1" maxOccurs="unbounded" 
>                   docu="Defines a folder of the framework"/>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> 
> The xsd file should then be translated into an html file, that documents the structure of my xml file with comments 
> on every field.
> 
> Is there any tool, that provides a documentation mechanism like that.
> 
> If not I will write that by myself.


For get my question, I have found some schema documentation generators.
  5   13 Oct 2004 ryuSuggestionTBranch compression
It seems that branchs in TTree which is created by ROME is not compressed. 

So I changed src/framework/XXEventLoop.cpp like

.
.
.
 tree = new TTree("Trigger","Trigger");
 tree->Branch("Info","ROMETreeInfo",&fTreeInfo,32000,99);
 tree->GetBranch("Info")->SetCompressionLevel(1);
 tree->Branch("LPADCData","TClonesArray",gAnalyzer->GetLPADCDataObjectsAddress(),32000,99);
 tree->GetBranch("LPADCData")->SetCompressionLevel(1);
.
.
.

After this change, file size which was 739MB became 235MB.
  6   13 Oct 2004 ryuSuggestionTTree filling in online mode.
In my case, in online mode, I don't need to wirte TTree.
But I want to fill it, because we use it to see data with using TSocket connection.

How do you think about filling TTree even if write flag is not toggled ?
  8   13 Oct 2004 Matthias SchneebeliSuggestionTBranch compression
> It seems that branchs in TTree which is created by ROME is not compressed. 
> 
> So I changed src/framework/XXEventLoop.cpp like
> 
> .
> .
> .
>  tree = new TTree("Trigger","Trigger");
>  tree->Branch("Info","ROMETreeInfo",&fTreeInfo,32000,99);
>  tree->GetBranch("Info")->SetCompressionLevel(1);
>  tree->Branch("LPADCData","TClonesArray",gAnalyzer->GetLPADCDataObjectsAddress(),32000,99);
>  tree->GetBranch("LPADCData")->SetCompressionLevel(1);
> .
> .
> .
> 
> After this change, file size which was 739MB became 235MB.

Yes your right.

I added that.
ELOG V3.1.4-2e1708b5