Difference between revisions of "CH Starting CODA & Reading CODA Data"

From New IAC Wiki
Jump to navigation Jump to search
 
(60 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
='''Current as of 8/26/21'''=
 
='''Current as of 8/26/21'''=
 
=='''For data analysis'''==
 
 
==='''DAQ1'''===
 
 
 
 
'''Commands'''
 
 
* source ~/CODA/coda_scripts/setupCODA3.bash
 
 
* source ~/src/ROOT/root-6.22.00/obj/bin/thisroot.sh
 
 
* cd /data/
 
 
* ~daq/CODA/CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat > /dev/null
 
:* Since future me is probably just as dumb as I am now, the r####.dat is the dat file output from the event manager (should match what is in RCGUI)
 
::* Example: r7074.dat
 
 
==='''DAQ2'''===
 
 
* source CODA/3.10/coda_scripts/setupCODA3.tcsh
 
 
* source ~/src/ROOT/v6.20/builddir/bin/thisroot.tcsh
 
 
* cd /data/
 
 
* ~daq/CODA?CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat >/dev/null
 
  
 
=='''Starting CODA and RCGUI'''==
 
=='''Starting CODA and RCGUI'''==
  
==='''DAQ2'''===
+
==='''DAQ2 Startup Sequence'''===
 
 
===2.6.2===
 
  
====new====
+
'''First open ''7'' different terminal windows with ''csh (tcsh)'' environment'''
  
First open 7 different terminal windows with csh environment
+
'''Source CODA 2.6.2 ''TWICE'' in each with the following command (assuming you're in the home/daq/ directory)'''
 
 
Source CODA 2.6.2 in each with the following command (assuming you're in the home/daq/ directory)
 
  
 
  ''source CODA/2.6.2/setup''
 
  ''source CODA/2.6.2/setup''
  
Run each of the following commands in a different window
+
'''Run each of the following commands in a different window'''
  
 
  ''msqld''
 
  ''msqld''
Line 50: Line 18:
  
 
  ''rcplatform''
 
  ''rcplatform''
 +
 +
'''Then run the following two commands in different windows'''
  
 
  ''coda_eb_rc3 -i -s DAQ -n eb1 -t CDEB''
 
  ''coda_eb_rc3 -i -s DAQ -n eb1 -t CDEB''
Line 55: Line 25:
 
  ''coda_er_rc3 -i -s DAQ -n LDS_ER -t ER''
 
  ''coda_er_rc3 -i -s DAQ -n LDS_ER -t ER''
  
====old====
+
'''Next, SSH into the read out controller (rocdaq1)'''
  
Startup CODA programs in separate xterminal sessions
+
''ssh root@rocdaq1.physics.isu.edu''
  
type the following to setup the CODA environmental variables in every xterm
+
''csh''
  
  source CODA/2.6.2/setup
+
  ''source CODA/2.6.2/setup''
  
Then start the following processes in the separate xterminals
+
''coda_roc_rc3 -t ROC -n rocdaq1''
  
start up msqld, et_start, rcplatform  .
+
'''In the last unused terminal window, start up the run control gui (RCGUI) with the following command'''
  
(do the following two commands in a csh & separate xterms)
+
''rcgui''
  
coda_eb_rc3 -i -s DAQ -n eb1 -t CDEB
+
'''Once the RCGUI has populated, select the configuration settings needed'''
  
coda_er_rc3 -i -s DAQ -n LDS_ER -t ER
+
* Configuration->Cool
  
login to the ROC (ssh rocdaq1) and start the process
+
* Select "PAA"
  
ssh root@rocdaq1
+
* Click the Configure button (wrench & screwdriver icon on upper left)
  
csh
+
* Click the download button (floppy disk icon)
  
source CODA/2.6.2/setup
+
* Click "Prestart" and then "Go" buttons
  
coda_roc_rc3 -t ROC -n rocdaq1
+
===Error FAQ===
  
now startup the runcontrol GUI
+
====Cannot Connect to ROCDAQ1====
  
  rcgui
+
You may sometimes run into the error
 +
  "''ssh: connect to host rocdaq1.physics.isu.edu port 22: No route to host''"
  
do the following menu calls in rcgui
+
when attempting to ssh into rocdaq1. This usually means that the power to rocdaq1 (and possibly DAQ2 if in the same area as they are now (oct 2022) has been interrupted. This is easily noticed if you were in the middle of collecting data through CODA, and the RCGUI unexpectedly terminated and DAQ2 rebooted itself.
  
Configuration->Cool
+
The fix is to simply run the command
  
select "PAA"
+
shutdown -r 0
  
click the Configure button (wrench & screwdriver icon on upper left)
+
to restart rocdaq1. It will restart immediately and begin to reboot. Once rebooted, you can ssh in like normal.
  
click the download button (floppy disk icon)
+
====Solid Green Light on Read Card in rocdaq1====
  
click "Prestart" and then "Go" buttons
+
The bottom right light in the read card in rocdaq1 is solid means rocdaq1 needs to be restarted. (VU Light)
  
===error FAQ===
+
Either use the terminal open in daq2 or a keyboard connected to rocdaq1 itself to enter
 +
 
 +
shutdown -r 0
 +
 
 +
This will restart rocdaq1 immediately. Then SSH back into it using the commands in the "Starting CODA" section above. Given that everything works correctly (lol), you should only have to choose your configuration in the RCGUI again and then be able to continue collecting data.
  
 
====Discrepancy between run numbers====
 
====Discrepancy between run numbers====
Line 106: Line 81:
 
Discrepancy between run numbers: Coda2 db = 4384 Cool db = 4385  
 
Discrepancy between run numbers: Coda2 db = 4384 Cool db = 4385  
 
CodaRcPrestart service aborted.  
 
CodaRcPrestart service aborted.  
 
+
rcgui
  
 
  The fastest fix is to go to the "expert" menu un rcgui and choose Set Run Number for both databases.
 
  The fastest fix is to go to the "expert" menu un rcgui and choose Set Run Number for both databases.
Line 132: Line 107:
 
Its not a multiple TDC hit just before a DAQ trigger
 
Its not a multiple TDC hit just before a DAQ trigger
  
 
+
rcgui
 
The problem was the the TDC sopt pulse was too close to the 25 ns width limit.  I increased it to 40 ns and the problem went away.
 
The problem was the the TDC sopt pulse was too close to the 25 ns width limit.  I increased it to 40 ns and the problem went away.
  
Line 150: Line 125:
 
ControlDesigner ERROR :Can not find container_admin on the node daq2.physics.isu.edu
 
ControlDesigner ERROR :Can not find container_admin on the node daq2.physics.isu.edu
  
====Cant connect to MSQL server=====
+
====Cant connect to MSQL server====rcgui
  
 
moved daq2 to the IAC.  hardcoded the IP addresses to the names in /etc/hosts file to bypass DNS server
 
moved daq2 to the IAC.  hardcoded the IP addresses to the names in /etc/hosts file to bypass DNS server
Line 177: Line 152:
 
  systemctl stop firewalld
 
  systemctl stop firewalld
  
 +
=='''Analyzing CODA Data Sets using ROOT'''==
 +
 +
==='''DAQ1'''===
 +
 +
'''Commands'''
 +
 +
* source ~/CODA/coda_scripts/setupCODA3.bash
 +
 +
* source ~/src/ROOT/root-6.22.00/obj/bin/thisroot.sh
 +
 +
* cd /data/
 +
 +
* ~daq/CODA/CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat > /dev/null
 +
:* Since future me is probably just as dumb as I am now, the r####.dat is the dat file output from the event manager (should match what is in RCGUI)
 +
::* Example: r7074.dat
 +
 +
==='''DAQ2'''===
 +
 +
'''Open one terminal window and run the following commands'''
 +
 +
''source CODA/3.10/coda_scripts/setupCODA3.tcsh''
 +
 +
''source ~/src/ROOT/v6.20/builddir/bin/thisroot.csh''
 +
 +
Remove the ''>/dev/null'' to have the data conversion print to the screen. Not recommended for large files.
 +
 +
''~daq/CODA/CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat >/dev/null''
 +
 +
Processing the EVIO2NT file creates a .ROOT file in the ''/home/daq'' directory. I do a general sweep and move all files to the ''data'' directory which is a 1TB disk mounted to DAQ2 as bulk storage. If you have just converted the file from CODA to ROOT, then you will find it in ''/home/daq'', if it's not there, check the ''/data/'' directory.
 +
 +
''cd /data/''
 +
 +
===='''ROOT Commands'''====
 +
 +
''<big>'''These commands need to be updated for ease of use'''</big>''
 +
 +
'''In the same terminal window as above:'''
 +
 +
Open ROOT and attach the file you want to analyze
 +
 +
''root -l r####.root''
 +
 +
The following step is to draw a single plot for data taken through channel [9] of the ADC. If you want to overlay multiple runs, skip this step.
 +
 +
PAA->Draw("PADC.PADC785N[9]>>(4096,0,4096)")
 +
 +
If you using a detector, like a HPGe, which requires an energy calibration, click [[CH ROOT Nonuniform Binning|here]] for directions on how to make non-uniform binning and create plots using the created bin edges. That page also includes directions on how to add and subtract histograms, which will also be included below.
 +
 +
====='''For multiple runs or more flexibility within ROOT framework.'''=====
 +
 +
''new TBrowser();''
 +
 +
Fill in the '''***''' with whatever you want to name the object and change the '''Plot Title''' to your liking. 4096 is the number of channels in the ADC, which means the ''4096, 0, 4096'' arguments are present to create 4096 bins in x, ranging from a low 0 to a high of 4095. The following commands will create a histogram of ''ADC channel number v counts''.
  
 +
''TH1F *'''Plot Name''' = new TH1F("'''Plot Name'''","'''Plot Title'''",4096,0,4096);''
 +
 +
''PAA->Project("'''Plot Name'''","PADC.PADC785N[9]");
 +
 +
'''''Plot Name'''->Draw();''
 +
 +
To scale the run by runtime, find runtime in seconds and invert. I usually refer to this variable as the Time Factor. <small><math> TF = \frac{1}{runtime (s)}</math></small>. Expect a small decimal.
 +
 +
'''Plot Name'''->Scale(Time Factor);
 +
 +
Scaling by the time factor causes ROOT to default to a different type of histogram, run the following command to re-plot your data with standard histogram format. The next command will redraw the histogram scaled by the time factor, creating an ''ADC channel number v count rate (Hz)'' histogram.
 +
 +
'''Plot Name'''->Draw("Hist");
 +
 +
At this point, you can use the file browser in the left hand side of the TBrowser window and open more root files. You may need to close and then open the directory you're working within to populate the root file you've opened. You can then navigate into that root file and see the trees present within, create more histograms using the steps presented above, and then add/subtract histograms using the following.
 +
 +
Once you have your (at least 2) histograms created within root, create a third to combine however many you please. Note, you can add/subtract the first to/from the second or vice versa if you so choose.
 +
 +
''TH1F *Third = new TH1F("Third","'''Third Plot Title'''",4096,0,4096);''
 +
 +
This step will add the first histogram to the ''currently'' empty third histogram you just created.
 +
 +
''Third->Add(FirstPlot,1);''
 +
 +
Next, you can add the second. When I do this, I'm usually doing a background subtraction of sorts to see the effect the addition/removal of a neutron converter. Note the "-1" in the second argument of the add command. Simply adding the negative of the second plot.
 +
 +
''Third->Add(SecondPlot,-1);''
 +
 +
''Third->Draw("Hist");''
 
----
 
----
 +
 +
='''Previous Page'''=
 +
 +
[[CaGaS Phase II]]
 +
 
[[PAS_Experiment]]
 
[[PAS_Experiment]]

Latest revision as of 17:27, 24 October 2022

Current as of 8/26/21

Starting CODA and RCGUI

DAQ2 Startup Sequence

First open 7 different terminal windows with csh (tcsh) environment

Source CODA 2.6.2 TWICE in each with the following command (assuming you're in the home/daq/ directory)

source CODA/2.6.2/setup

Run each of the following commands in a different window

msqld
et_start
rcplatform

Then run the following two commands in different windows

coda_eb_rc3 -i -s DAQ -n eb1 -t CDEB
coda_er_rc3 -i -s DAQ -n LDS_ER -t ER

Next, SSH into the read out controller (rocdaq1)

ssh root@rocdaq1.physics.isu.edu
csh
source CODA/2.6.2/setup
coda_roc_rc3 -t ROC -n rocdaq1

In the last unused terminal window, start up the run control gui (RCGUI) with the following command

rcgui

Once the RCGUI has populated, select the configuration settings needed

  • Configuration->Cool
  • Select "PAA"
  • Click the Configure button (wrench & screwdriver icon on upper left)
  • Click the download button (floppy disk icon)
  • Click "Prestart" and then "Go" buttons

Error FAQ

Cannot Connect to ROCDAQ1

You may sometimes run into the error

"ssh: connect to host rocdaq1.physics.isu.edu port 22: No route to host" 

when attempting to ssh into rocdaq1. This usually means that the power to rocdaq1 (and possibly DAQ2 if in the same area as they are now (oct 2022) has been interrupted. This is easily noticed if you were in the middle of collecting data through CODA, and the RCGUI unexpectedly terminated and DAQ2 rebooted itself.

The fix is to simply run the command

shutdown -r 0

to restart rocdaq1. It will restart immediately and begin to reboot. Once rebooted, you can ssh in like normal.

Solid Green Light on Read Card in rocdaq1

The bottom right light in the read card in rocdaq1 is solid means rocdaq1 needs to be restarted. (VU Light)

Either use the terminal open in daq2 or a keyboard connected to rocdaq1 itself to enter

shutdown -r 0

This will restart rocdaq1 immediately. Then SSH back into it using the commands in the "Starting CODA" section above. Given that everything works correctly (lol), you should only have to choose your configuration in the RCGUI again and then be able to continue collecting data.

Discrepancy between run numbers

I see the following error message when I click pre start in CODA. Discrepancy between run numbers: Coda2 db = 4384 Cool db = 4385 CodaRcPrestart service aborted. rcgui

The fastest fix is to go to the "expert" menu un rcgui and choose Set Run Number for both databases.
This will resync the two databases.

CODA2 dp communication error

Restart the process "et_start"

rm /tmp/et_sys_DAQ
et_start

If et_start fails to restart with the following error message:

"ERROR: et_system_start, ET system process already exists!"

find the PID number with

 netstat -ap | grep et_start

, kill the process, then try again.

ERROR: Data not ready in event 12164121 evStored = 0

The above error started happening.

Its not a multiple TDC hit just before a DAQ trigger

rcgui The problem was the the TDC sopt pulse was too close to the 25 ns width limit. I increased it to 40 ns and the problem went away.

Lost connection to the platform

rcgui killed EB and ER because it "lost connection to the platform".

The above error happens intermittently.

I think this is because the host computers hard disk is failing. Ben has made an image of the current disk which we will transfer, OS and all, to a new disk to see if this error stops.


Can not find container_admin

2013/06/12 10:03:01 Component = eb1 Host = daq2.physics.isu.edu registered with the platform.

ControlDesigner ERROR :Can not find container_admin on the node daq2.physics.isu.edu

====Cant connect to MSQL server====rcgui

moved daq2 to the IAC. hardcoded the IP addresses to the names in /etc/hosts file to bypass DNS server

The ROC appears to still be unable to talk to the MSQL server running on daq2 because it is using daq2's old IP address event though it pings the right address through the /etc/hosts file. perhaps the MSQL server address is cardcoded somewhere?

[root@rocdaq1 /etc]# coda_roc_rc3 -t ROC -n rocdaq1 Connect: Connection timed out msql error : Can't connect to MSQL server on 134.50.3.130 Connect: Connection timed out MSQL_Cmd_Connect: error 'cause socket < 0 msql: Can't connect to MSQL server on 134.50.3.130

solution, the MSQL_HOME environmental variable was set to the IP address instead of the computer name

turn off the firewall

On CentOS 7 you use the command

systemctl status firewalld

to check the firewall status

to turn off the firewall

systemctl stop firewalld

Analyzing CODA Data Sets using ROOT

DAQ1

Commands

  • source ~/CODA/coda_scripts/setupCODA3.bash
  • source ~/src/ROOT/root-6.22.00/obj/bin/thisroot.sh
  • cd /data/
  • ~daq/CODA/CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat > /dev/null
  • Since future me is probably just as dumb as I am now, the r####.dat is the dat file output from the event manager (should match what is in RCGUI)
  • Example: r7074.dat

DAQ2

Open one terminal window and run the following commands

source CODA/3.10/coda_scripts/setupCODA3.tcsh
source ~/src/ROOT/v6.20/builddir/bin/thisroot.csh

Remove the >/dev/null to have the data conversion print to the screen. Not recommended for large files.

~daq/CODA/CODAreader/ROOT_V6.22/PAA/evio2nt -fr####.dat >/dev/null

Processing the EVIO2NT file creates a .ROOT file in the /home/daq directory. I do a general sweep and move all files to the data directory which is a 1TB disk mounted to DAQ2 as bulk storage. If you have just converted the file from CODA to ROOT, then you will find it in /home/daq, if it's not there, check the /data/ directory.

cd /data/

ROOT Commands

These commands need to be updated for ease of use

In the same terminal window as above:

Open ROOT and attach the file you want to analyze

root -l r####.root

The following step is to draw a single plot for data taken through channel [9] of the ADC. If you want to overlay multiple runs, skip this step.

PAA->Draw("PADC.PADC785N[9]>>(4096,0,4096)")

If you using a detector, like a HPGe, which requires an energy calibration, click here for directions on how to make non-uniform binning and create plots using the created bin edges. That page also includes directions on how to add and subtract histograms, which will also be included below.

For multiple runs or more flexibility within ROOT framework.
new TBrowser();

Fill in the *** with whatever you want to name the object and change the Plot Title to your liking. 4096 is the number of channels in the ADC, which means the 4096, 0, 4096 arguments are present to create 4096 bins in x, ranging from a low 0 to a high of 4095. The following commands will create a histogram of ADC channel number v counts.

TH1F *Plot Name = new TH1F("Plot Name","Plot Title",4096,0,4096);
PAA->Project("Plot Name","PADC.PADC785N[9]");
Plot Name->Draw();

To scale the run by runtime, find runtime in seconds and invert. I usually refer to this variable as the Time Factor. [math] TF = \frac{1}{runtime (s)}[/math]. Expect a small decimal.

Plot Name->Scale(Time Factor);

Scaling by the time factor causes ROOT to default to a different type of histogram, run the following command to re-plot your data with standard histogram format. The next command will redraw the histogram scaled by the time factor, creating an ADC channel number v count rate (Hz) histogram.

Plot Name->Draw("Hist");

At this point, you can use the file browser in the left hand side of the TBrowser window and open more root files. You may need to close and then open the directory you're working within to populate the root file you've opened. You can then navigate into that root file and see the trees present within, create more histograms using the steps presented above, and then add/subtract histograms using the following.

Once you have your (at least 2) histograms created within root, create a third to combine however many you please. Note, you can add/subtract the first to/from the second or vice versa if you so choose.

TH1F *Third = new TH1F("Third","Third Plot Title",4096,0,4096);

This step will add the first histogram to the currently empty third histogram you just created.

Third->Add(FirstPlot,1);

Next, you can add the second. When I do this, I'm usually doing a background subtraction of sorts to see the effect the addition/removal of a neutron converter. Note the "-1" in the second argument of the add command. Simply adding the negative of the second plot.

Third->Add(SecondPlot,-1);
Third->Draw("Hist");

Previous Page

CaGaS Phase II

PAS_Experiment