Back Midas Rome Roody Rootana
  Rome Analyzer Framework, Page 8 of 11  Not logged in ELOG logo
New entries since:Wed Dec 31 16:00:00 1969
ID Date Author Topic Subjectdown
  135   18 Apr 2007 Ryu SawadaInfoI/O system change
I changed default type of dictionaries. By this change we use new I/O system introduced at ROOT version 3.

A newly generated program can not read old files created by old programs by default. Error messages like following will be shown.
Error in <TBuffer::CheckByteCount>: object of class PMTData read too few bytes: 21 instead of 169

There is one flag to avoid this problem. When <DictionaryType> in <Experiment> is 0, romebuilder will
generate a program with old dictionary type.
<Experiment>
   <ExperimentName>MEG Analysis and monitor.</ExperimentName>
   <ExperimentShortCut>MEG</ExperimentShortCut>
   <ProgramName>Analyzer</ProgramName>
   <ProgramDefinitionVersion>3</ProgramDefinitionVersion>
   <FrameworkDescription>MEGAnalyzer is an analysis framework for MEG. It works as monitor as well.</FrameworkDescription>
   <DictionaryType>0</DictionaryType>   <!-- Add this line -->
</Experiment>

During development stage of version 2.9, we will check if there are problems in the new I/O system.
If we don't find any problems, The new I/O system will be the default of ROME version 2.9.
Even if we change the default, users can continue using the old I/O by using the flag.
  65   29 Mar 2005 Ryu SawadaInfoHistograms
It does not seem that fHistoNameTitleOverWritten,fHistoNameFolderTitleOverWritten and so on are not 
initialized.

I'm afraid it is not safe
,because when ***OverWritten is "true" parameters are not supposed to be initialized.

In my case, framework tries to make a histogram whose number of bins is 1701143923.

This is my definition of the histogram. Do I need to add something?
<Histogram>
  <HistName>hXeQsum</HistName>
  <HistTitle>Qsum</HistTitle>
  <HistFolderName>Xenon</HistFolderName>
  <HistFolderTitle>Xenon</HistFolderTitle>
  <HistType>TH1F</HistType>
  <HistXNbins>4096</HistXNbins>
  <HistXmin>0</HistXmin>
  <HistXmax>5e5</HistXmax>
</Histogram>
  17   12 Nov 2004 Ryu SawadaBug ReportGlobalSteering
When I define several "SteeringParameterGroup"s, builder maked nesting classes instead to make each 
classes.
  19   18 Nov 2004 Matthias SchneebeliBug ReportGlobalSteering
> When I define several "SteeringParameterGroup"s, builder maked nesting classes instead to make each 
> classes.

done
  20   19 Nov 2004 Ryu SawadaBug ReportGlobalSteering
> > When I define several "SteeringParameterGroup"s, builder maked nesting classes instead to make each 
> > classes.
> 
> done
It is still not fixed. In case of following configuration.
"InvalidValue" was in "Switch" class.
Is it invalid to put a SteeringParameterField after SteeringParameterGroup ?

<GlobalSteeringParameters>
  <SteeringParameterGroup>
    <SPGroupName>Switch</SPGroupName>
    <SteeringParameterField>
      <SPFieldName>Piedi</SPFieldName>
      <SPFieldType>Bool_t</SPFieldType>
      <SPFieldInitialization>0</SPFieldInitialization>
      <SPFieldComment>Switch for pedestal calculation</SPFieldComment>
    </SteeringParameterField>
  </SteeringParameterGroup>
  <SteeringParameterField>
    <SPFieldName>InvalidValue</SPFieldName>
    <SPFieldType>Float_t</SPFieldType>
    <SPFieldInitialization>-1000</SPFieldInitialization>
    <SPFieldComment>Invalid value</SPFieldComment>
  </SteeringParameterField>
</GlobalSteeringParameters>
  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
  72   14 Apr 2005 Ryu SawadaSuggestionGetDataBase, GetActiveDAQ
  There is no check if the pointer returned by GetDataBase,GetActiveDAQ is valid. This can result 
segmentation fault.
  For instance, if one specifies DAQ system as "none", or one does not specify DataBaseName, rome 
stops without error message.

It is better to modify this behavior.


* One way is to stop application like.
ROMEDAQSystem* GetActiveDAQ() {
   if(!fActiveDAQ){
      gAnalyzer->Println("some error message");
      fApplication->Terminate(1);
   }
   return fActiveDAQ;
};

*Other way is to use a dummy DAQSystem and DataBase which does nothing when user does not 
specify DAQ or DataBase.  When dummy is used, warning message must be shown, because it is 
dangerous that users do not realize they are using dummy.
  73   15 Apr 2005 Matthias SchneebeliSuggestionGetDataBase, GetActiveDAQ
>   There is no check if the pointer returned by GetDataBase,GetActiveDAQ is valid. This can result 
> segmentation fault.
>   For instance, if one specifies DAQ system as "none", or one does not specify DataBaseName, rome 
> stops without error message.
> 
> It is better to modify this behavior.
> 
> 
> * One way is to stop application like.
> ROMEDAQSystem* GetActiveDAQ() {
>    if(!fActiveDAQ){
>       gAnalyzer->Println("some error message");
>       fApplication->Terminate(1);
>    }
>    return fActiveDAQ;
> };
> 
> *Other way is to use a dummy DAQSystem and DataBase which does nothing when user does not 
> specify DAQ or DataBase.  When dummy is used, warning message must be shown, because it is 
> dangerous that users do not realize they are using dummy.


done
  89   28 Jun 2005 Ryu SawadaSuggestionFolder reset.
In Reset method of folders. Support folder members are ignored currently.
Reset method of support folder member had better to be called.

In addition, isModified() should check if the member support folders were modified.

For example

class A : public TObject
{
protected:
   TypeB* B;
   TClonesArray* C;
.
.
public:
   A() {
      B = 0;
      C = 0;
   };
.
.
.
   void Reset() {
      int i;
      fModified = false;
      if(B) B->Reset();
      if(C) for(i=0;i<C->GetEntries();i++) { ((TypeC*)C->At(i))->Reset(); }
   };

   ClassDef(A,1)
};
  102   14 Oct 2005 Ryu SawadaInfoEventID
It seems that when tasks have different eventID from 'a', event methods are not executed.

I modified ROMETask.cpp for temporary solution like
else if ( strncmp(gROME->GetNameOfActiveDAQ(),"midas",5) ||
( !strncmp(&fEventID,"a",1) || !strncmp(option,&fEventID,1) )
) {
fCurrentEventMethod = "Event";
TimeStart();
if (gROME->isFillEvent())
Event();
TimeEnd();
}
By this change, eventID does not have meaning for DAQSystems other than midas.

If eventID should have meaning also in root mode, please impleament something to fill ROMEAnalyzer::fEventID in this mode.
  198   13 Apr 2016 SUDESHNA GANGULYBug ReportError 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 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
  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
  130   20 Feb 2007 Todd Bredeweg Duplicate header file
I just started using Rome v2.7 and Root v5.14.00. I have run into a rather
interesting issue trying to compile my analyzer. I tracked the problem to the
fact that both Root and Rome are loading their own version of a header file
called TArrayL64.h. The content of the two files are essentially identical. I
solved the problem by changing the conditional at the start of the file
$ROMESYS/include/TArrayL64.h from

#ifndef TArrayL64_H
#define TArrayL64_H

to

#ifndef ROOT_TArrayL64
#define ROOT_TArrayL64

The latter is what I found in the Root version of the file. Now it only gets
loaded once. I looked at the svn sources that I just updated and it also uses
TArrayL64_H.

Question, why are there two copies.

UPDATE 2-21-07:
It seems that Root was the cause of this. Rome has used this header for some
time, but earlier versions of Root did not include it.
  131   23 Feb 2007 Matthias SchneebeliForumDuplicate header file
> I just started using Rome v2.7 and Root v5.14.00. I have run into a rather
> interesting issue trying to compile my analyzer. I tracked the problem to the
> fact that both Root and Rome are loading their own version of a header file
> called TArrayL64.h. The content of the two files are essentially identical. I
> solved the problem by changing the conditional at the start of the file
> $ROMESYS/include/TArrayL64.h from
> 
> #ifndef TArrayL64_H
> #define TArrayL64_H
> 
> to
> 
> #ifndef ROOT_TArrayL64
> #define ROOT_TArrayL64
> 
> The latter is what I found in the Root version of the file. Now it only gets
> loaded once. I looked at the svn sources that I just updated and it also uses
> TArrayL64_H.
> 
> Question, why are there two copies.
> 
> UPDATE 2-21-07:
> It seems that Root was the cause of this. Rome has used this header for some
> time, but earlier versions of Root did not include it.


As you already mentioned the older root version didn't include this header. But we
needed to include it in rome earlier. Now we still have it in the rome
distribution to be compatible with the older root versions.

There should not be any problem with this header in the current rome version. If
you have compilation problems do a  make distclean  and try again.
  132   23 Feb 2007 Konstantin OlchanskiForumDuplicate header file
> > I just started using Rome v2.7 and Root v5.14.00. I have run into a rather
> > interesting issue trying to compile my analyzer. I tracked the problem to the
> > fact that both Root and Rome are loading their own version of a header file
> > called TArrayL64.h.

I have just run into the TArrayL64.h problem myself. I recommend that we resolve
the clashing header files. We could ask Rene Brun to rename his file or we could
rename the clashing file in Rome.

K.O.
  133   28 Feb 2007 Ryu SawadaForumDuplicate header file
> > > I just started using Rome v2.7 and Root v5.14.00. I have run into a rather
> > > interesting issue trying to compile my analyzer. I tracked the problem to the
> > > fact that both Root and Rome are loading their own version of a header file
> > > called TArrayL64.h.
> 
> I have just run into the TArrayL64.h problem myself. I recommend that we resolve
> the clashing header files. We could ask Rene Brun to rename his file or we could
> rename the clashing file in Rome.
> 
> K.O.

As Matthias mensioned, this problem is solved in SVN version of ROME.
I propose to release ROME version 2.8, which will not have this problem.

If there are users who want to continue to use 2.7, we could also release patch release of 2.7. (2.7.1), in which only compatibility problems 
are fixed.

Ryu
  134   28 Feb 2007 Ryu SawadaForumDuplicate header file
> > > > I just started using Rome v2.7 and Root v5.14.00. I have run into a rather
> > > > interesting issue trying to compile my analyzer. I tracked the problem to the
> > > > fact that both Root and Rome are loading their own version of a header file
> > > > called TArrayL64.h.
> > 
> > I have just run into the TArrayL64.h problem myself. I recommend that we resolve
> > the clashing header files. We could ask Rene Brun to rename his file or we could
> > rename the clashing file in Rome.
> > 
> > K.O.
> 
> As Matthias mensioned, this problem is solved in SVN version of ROME.
> I propose to release ROME version 2.8, which will not have this problem.
> 
> If there are users who want to continue to use 2.7, we could also release patch release of 2.7. (2.7.1), in which only compatibility problems 
> are fixed.

I prepared a new release 2.8. It can be downloaded from http://midas.psi.ch/rome/download.html

The new release works with also ROOT 5.14 or 5.15.

At this release, style of configuration file was changed. Please see following message for details. 
https://ladd00.triumf.ca/elog/Rome/129
  174   03 Dec 2015 SUDESHNA GANGULYSuggestionDrawing 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
Screenshot-11.png
  175   07 Dec 2015 Ryu SawadaSuggestionDrawing multiple histograms on the same pad and dispalying them in the online mode in ROME
Hello,

First of all, the histograms are supposed to be drawn by the automatically generated code.

You don't need (and should not) draw them from a task.
If you do so, the histograms are drawn on the active pad (gPad) which is, in your case, the last pad on a tab.


I added a new feature to ROME development branch.
For using the feature, you can try
 cd $ROMESYS
 git checkout develop
 git pull
 make
 cd your_project
 make build
 make

As you can see in the updated examples/histoGUI/histoGUI.xml, a new option <DrawSamePad>true</DrawSamePad> is 
available.
When it is true, the array of histograms are drawn on the same pad.

If you have any problems, please let me know.

Best regards,

Ryu


> 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.
ELOG V3.1.4-2e1708b5