BEMC Status Table Instructions

The following is a first draft of the 2013 BEMC status tables

To logon on, follow these steps:
 
ssh -X -A username@rssh.rhic.bnl.gov

ssh -X -A stargw.starp.bnl.gov
ssh -X -A onlmon@onl05.starp.bnl.gov
 
As code runs summary will be posted here: http://online.star.bnl.gov/emcStatus/pp500/
 
The code that performs these calculations is located on onl05.starp.bnl.gov here: /ldaphome/onlmon/emcstatus2013/pp500/l2status.py
 
To execute the code:
>source star_env

>python l2status.py


start the code running at a specific runnumber by using the command:
>python l2status.py --startRun=14076004
 
You can monitor the progress of the script by looking at l2status.log (do 'tail l2status.log -n50' periodically)

 
If you want to clear everything and start fresh, you can do this:
  • clean out the folders db/bemc/ and db/eemc/ 
  • remove the log file
  • remove runList.list 
  • execute cp empty.sqlite3 l2status2013.sqlite3

So as a first step, let l2status.py run for a while (it will take time, I often run it in screen so that I don't have to keep a terminal open).  We would like to look at all the runs from pp500, which means you can kill it (ctrl+c) around Run 14183023 or so

 
 

Checking Tables


1) I spot check the pdf files by eye.  I pick about 5 or 6 fills evenly spaced throughout the run and go through each page of the pdf files looking for any strange-looking towers (for example, towers with stuck bits are pretty easy to see, and they don't always get caught by the algorithm).  Yes, this takes a while, but we don't have to look at the pdfs for every fill!

For examples of the bad channels you are looking for, have a look at Suvarna's nice QA of the tables last year:
https://drupal.star.bnl.gov/STAR/blog/sra233/2012/dec/05/bemc-statuscuau200hard-coded-towers
https://drupal.star.bnl.gov/STAR/blog/sra233/2012/aug/15/bemc-statuspp200towers-with-status-marked-oscillating

When Checking tables make sure to not the status code of the bad towers

Status 0:

Status 2:

Status 4:

Status 18:

Status 36:

Status 38:

Status 54:

Status 72:

Status 90:

Status 136:

Status 154:

Status 254:



2) The status and pedestal information is stored in the sqlite database file, and we can spin over this quickly in order to look at the data over many runs/fills.  I have attached a script which is used to analyze the database file l2status2013.sqlite3.  The first step is to download l2status2013.sqlite3 somewhere *locally* where you can look at it, and save statusCheckfill2.py in the same place. In statusCheckfill2.py you should change line 27 to the appropriate run range that you are analyzing, and change 2012-->2013 if necessary.  Then all you need to do to run the code is the following:

setenv PYTHONPATH $ROOTSYS/lib

python statusCheckfill2.py
 
I suggest that you pipe the the output of the python command, it makes it very easy to find "bad" towers. Attached is the xls, because you can't attach the original .csv.  It requires some cleaning up, but it easier than trying to type it all up.

I then turned my output into an excel spreadsheet, and reviewed each tower status for the runs listed in the file.  For example their were 13 runs that had a status given, I compared the output of the code to the tower of interest.  If I agreed with the output I marked the tower not to be hardcoded as bad.  For towers that went from back and forth from 18 to 1, but were all clearly status 18 I marked the tower to be hardcoded as bad in l2status.py.  Attached is the excel spreadsheet that was made for 2013.