Outils pour utilisateurs

Outils du site


Analysis - Instruction (Last version: v4.1 RATE&GIF)

Step by Step: Instruction to create your folders for analysis and execute program follow the instruction. Recommended for the first study.

CODE: acqilc@lyosdhcal11:~/CMS-RPC/dataQuest
DATA: acqilc@lyosdhcal11:/data/local/FE1PR2

All code is available on GitHub: (LyPeti - class).
Card - TESTBEAM.csv - You can change it - be careful. (backUp)

Important - You are doing this plots for check beam. Don't take results for any reports without discussing with Lyon team, Please.


  • /path/to/dataQues equals acqilc@lyosdhcal11:~/CMS-RPC/dataQuest;

Example: cd /path/to/dataQuest/results –> cd ~/CMS-RPC/dataQuest/results

  • The run number 739000 does not exist;
  • Use myName=sandbox to play with the program.



1. ssh acqilc@lyosdhcal11 pass: RPC_2008
2. cd ~/CMS-RPC/dataQuest/scripts
3. source create_myDir.sh myName
Example: source ~/CMS-RPC/dataQuest/scripts/create_myDir.sh Victoria


1. ssh acqilc@lyosdhcal11 pass: RPC_2008
2. cd ~/CMS-RPC/dataQuest/results
3. mkdir myName
4. cd ../cards
5. mkdir myName
6. cd myName
7. mkdir logs
8. cd ../.. (to dataQuest)
9. cd scripts
10.source update_cards.sh myName

How to run analysis

Normal way:

sudo chmod 777 /path/to/data/*
cd /path/to/dataQuest/bin
./dq --type=card ../cards/myName/default.csv --dir=myName --fN=newFileName.root run_example.png

cd /path/to/dataQuest/results/myName
TBrowser *b = new TBrowser();

I want to update local card:

source /path/to/dataQuest/scripts/update_cards.sh myName update_cards.png

Where are results:

cd /path/to/dataQuest/results/myName
or cd /path/to/dataQuest/results/default if the wrong name.

I want to change output file name:

./dq --type=card ../cards/myName/default.csv --dir=myName --fN=newFileName.root

I want to change analysis comment:

./dq --type=card ../cards/myName/default.csv --dir=myName --comment=theLastOne

I want to do an analysis with default parameters and run number: 739000:

.dq --type=card ../cards/myName/default.csv --runs=739000 --dir=myName

I want to do an analysis with default parameters for run number (739000) which corresponding HV=7300V:

.dq --type=card ../cards/myName/default.csv --runs=739000 --values=7300 --dir=myName

I want to do an analysis with default parameters and run number (739000:6800V, 739001:7000V, 739002:7300V):

.dq --type=card ../cards/myName/default.csv --runs='739000>739002' --values='6800|7000|7300' --dir=myName

I want to do an analysis with default parameters and run number (COAX-739000:6800 & RETURN-739000:7000)

.dq --type=card ../cards/myName/default.csv --runs=739000 --0&values=6800 --1000&values=7000 --dir=myName

It doesn't work! results.root file does not open - something wrong

rm /path/to/dataQuest/results/myName/myResult.root
and try again! or rewrite card file:

  • Check default card on google table - if something wrong. Copy form this card all parametors to default card.
  • source /path/to/dataQuest/scripts/update_cards.sh myName
  • /path/to/dataQuest/bin/dq --type=card ../cards/myName/default.csv --dir=myName

How to work with cards

1 Use card to set all parameters.

2 mkdir /path/to/dataQuest/cards/myName
3 mkdir /path/to/dataQuest/cards/myName/logs
4 Execute script: source /path/to/dataQuest/scripts/update_cards.sh myName
Don't need to download the card just change it online and run the script which would get this card with wget.

5 Start analysis: /path/to/dataQuest/bin/dq --type=card ../cards/myName/default.csv --dir=myName

6.1 <or myNameCard> - Change parameters inside card with google table.
6.2 Execute script: source /path/to/dataQuest/scripts/update_cards.sh myName
6.3 Copy card: cp /path/to/dataQuest/cards/myName/default.csv /path/to/dataQuest/cards/myName/myNameCard.csv
6.4 Example: /path/to/dataQuest/bin/dq --type=card ../cards/kshchablo/myNameCard.csv dir=myName


  • Not possible to use the comma symbol “,” for names and values. Decimal separator is dot “.”.
  • If the name of param has “&” and need to replace values of this param use “\\”. Example: --filter\&\noise_beg=-5000



1. runs - Runs numbers for analysis;

2. values - value corresponding to the run number;
example: --runs=739900|739901 --0&values=507|507 --1000&values=500|500

3. Trigger setup:
filter&triger_is - turnON/turnOFF;
filter&triger_thr - should be equal to 1;
filter&numBoard - should be equal number of FEBs (4).

4. DeadTime filter:
filter&deadTime_window - deadtime window (~50ns);
filter&deadTime_is - turnON/turnOFF.

5. Window for estimate noise rate:
filter&noise_beg - start of window;
filter&noise_end - end of window;
filter&noise_is - turnON/turnOFF (correction of efficiency).

6. BCID filter:
filter&BCID_beg - start of window;
filter&BCID_end - end of window;
filter&BCID_is - turnON/turnOFF.

7. Time window:
filter&window_beg - start of window;
filter&window_end - end of window;
filter&window_is - turnON/turnOFF.

  • If add to the first part of name 0& or 1000& this parameter will set only one chamber. Example: 0&filter&window_beg

Convert to .root format

./dq --type=card ../cards/cards/binToROOT.csv --runs='790000|790002' --dir=myName

Code: LyPeti.cpp function: binToROOT

  1. COAX HR:0→N; LR:500→500+N - channel numbers
  2. RETURN HR:1000→1000+N; LR:1500→1500+N - channel numbers
      TTree T("RAWData", "RAWData"); - Name of tree
      T.Branch("EventNumber", &number,"EventNumber/I");
      T.Branch("TDC_channel", &ch,"TDC_channel/F"); (not strip - TDC: Two channels - one strip)
      T.Branch("TDC_TimeStamp", &time,"TDC_TimeStamp/F"); - time - timeTrig

Sigmoide fitter

The fitter is a root script:

It runs over a simple txt file like:

Run the code with:

root -l scripts/SigmoideFitter.C'("Efficiency_ATT49")'

Example file .txt:

Efficiency at ATT = 49 and THR = 507
6000 0.001 0.001 740206
6500 0.0068 0.0012 740207
6700 0.067 0.002 740208
6900 0.52 0.0058 740209
7000 0.72 0.0061 740210
7100 0.81 0.0065 740211
7200 0.83 0.0012 740212

Comment: The first line of the script would be the plot title and the txt file name the figure name in png and pdf produced in the same directory.

RATE study (v4.1 RATE&GIF)


  • Only events with the correct trigger are used;
  • If rate = -100 (Not possible to measure it).

1 LRrate, HRrate, ANDrate show the dependence of the hitRate on the value (HVeff, THR, ATT, etc.):

$hitRate = \frac{numberOfHits}{surface*time}, where \\ 
numberOfHits - number\ of\ triggered\ channels\ of\ FEBs \ of \ one \ run; \\
sufrace - active\ PCB\ zone; \\
time - collection \ time: \ (timeWindow*numberOfEvents). $

2 central&CBrate show the dependence of the clusterRate on the value (HVeff, THR, ATT, etc.):

(ONLY for central&CBrate) DOES NOT WORK FOR RATE STUDY (MESSAGE FROM 23.08 - While this message here the result is incorrect)

$ clusterRate = \frac{numberOfClusters}{surface*time}, where \\ 
numberOfClusters - number\ of\ clusters\ of\ one\ run; \\
sufrace - active\ PCB\ zone; \\
time - collection \ time: \ (timeWindow*numberOfEvents). $

results: files are stored in the directory rate:

About clustering algorithm:

Events, where the multiplicity is greater than 7 are not processed (the number of clusters for these events is 1).
Percent of events which have multiplicity >=7 → graph CBfraction (if beam time windows and noise time windows are equal (directory:analysis).

dataquest_july_dataquest_-_instruction.txt · Dernière modification: 2018/08/06 16:11 par DAQ user