Difference between revisions of "Mott Analysis"

From Ciswikidb
Jump to navigation Jump to search
 
(54 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
=='''Decode a Run'''==
 
=='''Decode a Run'''==
 
You must log on to the idaq account of the opsmdaq0 machine, a la:
 
You must log on to the idaq account of the opsmdaq0 machine, a la:
   [21] user_name@opsl01 > ssh -Y idaq@opsmdaq0  
+
    
 +
<span style="color:red"> [21] user_name@opsl01 > ssh -Y idaq@opsmdaq0 </span>
 +
 
To then decode a run (turn it from a .dat file to a .root file which is more useable), first go to the proper directory:
 
To then decode a run (turn it from a .dat file to a .root file which is more useable), first go to the proper directory:
 
   [22] idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/decoder/'''
 
   [22] idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/decoder/'''
Then a):
+
****Then a):
  [23] idaq@opsmdaq0 > ./fadc_decode_Source fullpath/filename [Option(s)]
+
[23] idaq@opsmdaq0 > ./fadc_decode_Source fullpath/filename [Option(s)]  
Or b):
+
****Or b):
   [23] idaq@opsmdaq0 > '''decode.pl''' RunNumber [Option(s)]
+
Then decode using
 +
    
 +
<span style="color:red">[23] idaq@opsmdaq0 > '''decode.pl''' RunNumber [Option(s)] </span>
 +
 
 
Output ROOTfiles go to:   
 
Output ROOTfiles go to:   
 
   '''cd /work/idaq/Mott/Analysis/rootfiles/'''
 
   '''cd /work/idaq/Mott/Analysis/rootfiles/'''
Line 38: Line 43:
 
root [1] new TBrowser
 
root [1] new TBrowser
  
follow paths to Mott_Sample_#3##_0.root
+
follow paths to Mott_Sample_####_0.root
 
T;4
 
T;4
 
scroll down to TDC17 or TDC18 as desired to generate plot
 
scroll down to TDC17 or TDC18 as desired to generate plot
Line 49: Line 54:
 
To use the current version log onto idaq@opsmdaq0, then following these steps:
 
To use the current version log onto idaq@opsmdaq0, then following these steps:
  
  [60] idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/macro/Full_Analysis/'''
+
   
  [61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber]
+
<span style="color:red"> [60] idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/FullAnalysis/EditFull/'''</span>
 +
  <span style="color:red">[61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] (TDC cuts will be applied)</span>
 +
<span style="color:red">[62] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] --499 (Will not apply TDC cuts) </span>
 +
 
 +
 
  
For 499 MHz:
+
Full_Analysis generates few txtfiles
/work/idaq/Mott/Analysis/macro/Full_Analysis/include/MottAnalysis.h Line 297:  noTDCCuts = 1;
 
For 31 MHz:
 
/work/idaq/Mott/Analysis/macro/Full_Analysis/include/MottAnalysis.h Line 297:  noTDCCuts = 0;
 
Then, re-compile: In /work/idaq/Mott/Analysis/macro/Full_Analysis
 
Type: make
 
  
This will tell you useful things like the asymmetry and detector rates as well as make a bunch of plots that go to:
+
idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/FullAnalysis/TextFiles/'''
 +
idaq@opsmdaq0 > gedit Mott_Run_####.copyme
  
'''[48] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/macro/Figures/ '''
+
copyme.txt generates a line that should be copied using gedit (otherwise formatting gets lost) and pasted into spreadsheet Run2RawData.ods. The spreadsheet lives in the same directory.  
  
to view figures
+
<span style="color:blue">To adjust energy cuts , go to </span>
     
+
  idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/FullAnalysis/TextFiles/src'''
'''[49] idaq@opsmdaq0 > eog *7899* '''
+
  idaq@opsmdaq0 >  gedit MottAnalysis.C
 +
      This opens the file with the cuts. Without TDC cuts, edit Double_t ECutLo = -0.5; to desired low cut, Double_t ECutHi = 2; to desired high cut. Save file
 +
 
 +
  Then to compile, go to
 +
    idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/
 +
  idaq@opsmdaq0 > make
 +
 +
this compiles the code with the new cuts from the saved MottAnalysis.C
 +
run idaq@opsmdaq0 > ./FullAnalysis [RunNumber] --499 again and you'll get the data with the new cuts.
  
  
To output all of the printed information to a easily parsable text file try:
 
  
  [61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] > Analysis_[RunNumber].txt
+
  idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/FullAnalysis/TextFiles/'''
 +
.long contains Asymmetry calculations, Ns, and detector rates
  
Additional information about the script can be found in the README file maintained in the same directory as the script.
+
This will tell you useful things like the asymmetry and detector rates as well as make a bunch of plots that go to:
  
  
 +
<span style="color:red"> '''[48] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/Figures/  ''' </span>
  
=='''Charge Asymmetry'''==
 
  
To calculate charge asymmetry from a Mott_Sample run, follow these steps:
+
to view figures
 +
     
  
[60] idaq@opsmdaq0 > cd '''/work/idaq/Mott/Analysis/macro/'''
+
<span style="color:red"> '''[49] idaq@opsmdaq0 > eog *7899* ''' </span>
[61] idaq@opsmdaq0 > root
 
  
root [0] .L Charge_Sample.C
 
root [1] Charge_Sample t
 
Enter Run Number:
 
RunNumber
 
root [2] t.Loop()
 
  
The two plots that go to:
 
  
'''/work/idaq/Mott/Analysis/macro/Figures/'''
+
To output all of the printed information to a easily parsable text file try:
  
For a scalar run to adjust PITA using the BCM
+
[61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] >  ../TextFiles/Analysis_[RunNumber].txt
  
root [3] .L ChargeAsym.C
+
Additional information about the script can be found in the README file maintained in the same directory as the script.
root [3] ChargeAsym t
 
Enter Run Number:
 
RunNumber
 
root [3] t.Loop()
 
  
 +
=='''Compiling Full Analysis'''==
  
 +
* cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/src
 +
* edit MottAnalysis.C
 +
* cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/
 +
* make
  
 
=='''Additional Analysis Tools'''==
 
=='''Additional Analysis Tools'''==
 +
 
*  ROOT provides a utility that generates a skeleton class designed to loop over the entries of the tree:
 
*  ROOT provides a utility that generates a skeleton class designed to loop over the entries of the tree:
 
   root [0] TFile *f = new TFile("Mott_Sample_7231_0.root");
 
   root [0] TFile *f = new TFile("Mott_Sample_7231_0.root");
 
   root [1] T->MakeClass("MyClass")
 
   root [1] T->MakeClass("MyClass")
 
   Files: MyClass.h and MyClass.C generated from Tree: T
 
   Files: MyClass.h and MyClass.C generated from Tree: T
 +
 +
 
*  Simple plots of data from decoded rootfiles can be generated by:
 
*  Simple plots of data from decoded rootfiles can be generated by:
 
   [21] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/rootfiles/
 
   [21] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/rootfiles/
Line 115: Line 126:
 
   root [3] T->Draw("TDC18-TDC17")
 
   root [3] T->Draw("TDC18-TDC17")
 
   root [4] T->Draw("RingScaler_CH4:Entry$","","*l")
 
   root [4] T->Draw("RingScaler_CH4:Entry$","","*l")
*  There are several additional macros that may used for the analysis (with some modification). All are in opsmdaq1 in the directory:
+
 
 +
*  There are several additional macros that may used for the analysis (with some modification). All are in opsmdaq0 in the directory:
 
   '''/work/idaq/Mott/Analysis/macro/'''
 
   '''/work/idaq/Mott/Analysis/macro/'''
 +
 +
 
*  For example, to plot the Mott FADC Pedestals:
 
*  For example, to plot the Mott FADC Pedestals:
   [102] idaq@opsmdaq1 > root
+
   [102] idaq@opsmdaq0 > root
 
   root [0] .L FADC_Ped.C
 
   root [0] .L FADC_Ped.C
 
   root [1] FADC_Ped t
 
   root [1] FADC_Ped t
Line 124: Line 138:
 
   7154
 
   7154
 
   root [2] t.Loop()
 
   root [2] t.Loop()
 +
 +
 
*  To calculate Mott Asymmetries:
 
*  To calculate Mott Asymmetries:
   [102] idaq@opsmdaq1 > root
+
 
 +
   [102] idaq@opsmdaq0 > root
 
   root [0]  .L MottAsym.C
 
   root [0]  .L MottAsym.C
 
   root [1]  MottAsym t
 
   root [1]  MottAsym t
Line 131: Line 148:
 
   7154
 
   7154
 
   root [2] t.Loop()
 
   root [2] t.Loop()
 +
 +
 +
*  To calculate charge asymmetry from a Mott_Sample run, follow these steps:
 +
 +
[102] idaq@opsmdaq0 > root
 +
root [0] .L Charge_Sample.C
 +
root [1] Charge_Sample t
 +
Enter Run Number:
 +
RunNumber
 +
root [2] t.Loop()
 +
 +
 +
*  For a scalar run to adjust PITA using the BCM:
 +
 +
[102] idaq@opsmdaq0 > root
 +
root [3] .L ChargeAsym.C
 +
root [3] ChargeAsym t
 +
Enter Run Number:
 +
RunNumber
 +
root [3] t.Loop()
 +
 +
 +
*  To print Run Time, Detector Triggers, Accepted Triggers, and Average Beam Current:
 +
 +
[102] idaq@opsmdaq0 > root
 +
root [0] .L TimeScaler.C
 +
root [1] TimeScaler t
 +
Enter Run Number:
 +
8179
 +
root [2] t.Loop();
 +
  RunTime = 343.624 s
 +
  Detector Triggers = 1331454
 +
  Accepted Triggers = 1016762
 +
  Average Beam Current = 2.12783 uA
 +
 +
 +
*  BPMs Analysis is done in /work/idaq/Mott/Analysis/macro:
 +
- macro '''pos_EPICS.C''' shows an example of how the positions are calculated in the BPMs screens using the EPICS wire counts.
 +
- macro '''inj_BPMs_ped.C''' calculates the wire pedestal for each BPM. A run with '''''Gains OFF''''' must be used to calculate pedestals (e.g., [https://logbooks/entry/3391917]).
 +
- macro '''BPMs_Wire.C''' prints the raw wire signals (RingScaler_CH17 - RingScaler_CH32) from S1 Scaler.
 +
- macro '''BPMsPos.C''' prints the raw wire signals and calculates the beam positions and the helicity-correlated position differences.
 +
 +
 
* ''Mott Summary'' (April 2012) [[Media:Mott_Summary_April2012.pdf]] [[Media:Mott_Summary_April2012.ppt]]
 
* ''Mott Summary'' (April 2012) [[Media:Mott_Summary_April2012.pdf]] [[Media:Mott_Summary_April2012.ppt]]
 
* ''PEPPo Electron Mott Results'' (July 2013) [[Media:PEPPo_Mott_Talk.pdf]]  [[Media:PEPPo_Mott_Talk.pptx]]
 
* ''PEPPo Electron Mott Results'' (July 2013) [[Media:PEPPo_Mott_Talk.pdf]]  [[Media:PEPPo_Mott_Talk.pptx]]

Latest revision as of 10:55, 20 August 2021

Data Files

 CODA writes the data to this disk: /data/mott


Decode a Run

You must log on to the idaq account of the opsmdaq0 machine, a la:

[21] user_name@opsl01 > ssh -Y idaq@opsmdaq0

To then decode a run (turn it from a .dat file to a .root file which is more useable), first go to the proper directory:

 [22] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/decoder/
        • Then a):

[23] idaq@opsmdaq0 > ./fadc_decode_Source fullpath/filename [Option(s)]

        • Or b):

Then decode using

[23] idaq@opsmdaq0 > decode.pl RunNumber [Option(s)]

Output ROOTfiles go to:

 cd /work/idaq/Mott/Analysis/rootfiles/

Usage = ./decode.pl RunNumber -Ped -Debug -Trig x -PedFile x -S1 -Farm -Del x -960Hz -LVoff file or run# -Outputs directory

                -Ped       : Pedestal subtraction active with default files
                -Debug     : Debugging mode, saves all channels to ntuple
                -Trig x    : x=1=Detector, x=2=nT_Settle 
                -PedFile x : Pedestal subtraction with a specific file
                -S1        : Inclusion of scaler S1 data
                -Farm      : Farm option, NO pedestal subtraction 
                -Del x     : x=0 No Delay, x=8 8-window delay 
                -960Hz     : Frequency set to 960Hz, default is 30Hz
                -LVoff     : PMT Low voltage OFF, set to ON by default
                -Outputs   : Set the output directory for the .root and .txt files

to check on the TDC profiles, cd as above, the command

[49] idaq@opsmdaq0 > root Mott_Sample_####_0.root

for the proper output filename from the decoder

command for opening "Root object browser"

root [1] new TBrowser

follow paths to Mott_Sample_####_0.root T;4 scroll down to TDC17 or TDC18 as desired to generate plot


Analysis Scripts

The new Full Analysis script is being maintained on the opsmdaq0 machine and is version controlled using git. To use the current version log onto idaq@opsmdaq0, then following these steps:


[60] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/

[61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] (TDC cuts will be applied)
[62] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] --499 (Will not apply TDC cuts) 


Full_Analysis generates few txtfiles

idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/TextFiles/
idaq@opsmdaq0 > gedit Mott_Run_####.copyme

copyme.txt generates a line that should be copied using gedit (otherwise formatting gets lost) and pasted into spreadsheet Run2RawData.ods. The spreadsheet lives in the same directory.

To adjust energy cuts , go to

 idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/TextFiles/src
 idaq@opsmdaq0 >   gedit MottAnalysis.C
      This opens the file with the cuts. Without TDC cuts, edit Double_t ECutLo = -0.5; to desired low cut, Double_t ECutHi = 2; to desired high cut. Save file
 
  Then to compile, go to 
   idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/
 idaq@opsmdaq0 > make

this compiles the code with the new cuts from the saved MottAnalysis.C run idaq@opsmdaq0 > ./FullAnalysis [RunNumber] --499 again and you'll get the data with the new cuts.


idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/TextFiles/

.long contains Asymmetry calculations, Ns, and detector rates

This will tell you useful things like the asymmetry and detector rates as well as make a bunch of plots that go to:


[48] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/FullAnalysis/Figures/


to view figures


[49] idaq@opsmdaq0 > eog *7899*


To output all of the printed information to a easily parsable text file try:

[61] idaq@opsmdaq0 > ./FullAnalysis [RunNumber] >  ../TextFiles/Analysis_[RunNumber].txt

Additional information about the script can be found in the README file maintained in the same directory as the script.

Compiling Full Analysis

  • cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/src
  • edit MottAnalysis.C
  • cd /work/idaq/Mott/Analysis/FullAnalysis/EditFull/
  • make

Additional Analysis Tools

  • ROOT provides a utility that generates a skeleton class designed to loop over the entries of the tree:
 root [0] TFile *f = new TFile("Mott_Sample_7231_0.root");
 root [1] T->MakeClass("MyClass")
 Files: MyClass.h and MyClass.C generated from Tree: T


  • Simple plots of data from decoded rootfiles can be generated by:
 [21] idaq@opsmdaq0 > cd /work/idaq/Mott/Analysis/rootfiles/
 [22] idaq@opsmdaq0 > root -l Mott_Sample_[RunNumber]_[SegmentNumber].root
 root [1] T->Draw("Sample_CH1:Iteration$","","*l",10,100)
 root [2] T->Draw("RingScaler_CH4:Entry$","","*l",100,1000)
 root [3] T->Draw("TDC18-TDC17")
 root [4] T->Draw("RingScaler_CH4:Entry$","","*l")
  • There are several additional macros that may used for the analysis (with some modification). All are in opsmdaq0 in the directory:
 /work/idaq/Mott/Analysis/macro/


  • For example, to plot the Mott FADC Pedestals:
 [102] idaq@opsmdaq0 > root
 root [0] .L FADC_Ped.C
 root [1] FADC_Ped t
 Enter Run Number: 
 7154
 root [2] t.Loop()


  • To calculate Mott Asymmetries:
 [102] idaq@opsmdaq0 > root
 root [0]  .L MottAsym.C
 root [1]  MottAsym t
 Enter Run Number: 
 7154
 root [2] t.Loop()


  • To calculate charge asymmetry from a Mott_Sample run, follow these steps:
[102] idaq@opsmdaq0 > root
root [0] .L Charge_Sample.C
root [1] Charge_Sample t
Enter Run Number: 
RunNumber
root [2] t.Loop()


  • For a scalar run to adjust PITA using the BCM:
[102] idaq@opsmdaq0 > root
root [3] .L ChargeAsym.C
root [3] ChargeAsym t
Enter Run Number: 
RunNumber
root [3] t.Loop()


  • To print Run Time, Detector Triggers, Accepted Triggers, and Average Beam Current:
[102] idaq@opsmdaq0 > root
root [0] .L TimeScaler.C
root [1] TimeScaler t
Enter Run Number: 
8179
root [2] t.Loop(); 
 RunTime = 343.624 s
 Detector Triggers = 1331454
 Accepted Triggers = 1016762
 Average Beam Current = 2.12783 uA


  • BPMs Analysis is done in /work/idaq/Mott/Analysis/macro:
- macro pos_EPICS.C shows an example of how the positions are calculated in the BPMs screens using the EPICS wire counts.
- macro inj_BPMs_ped.C calculates the wire pedestal for each BPM. A run with Gains OFF must be used to calculate pedestals (e.g., [1]).
- macro BPMs_Wire.C prints the raw wire signals (RingScaler_CH17 - RingScaler_CH32) from S1 Scaler.
- macro BPMsPos.C prints the raw wire signals and calculates the beam positions and the helicity-correlated position differences.



Cross-ratio Method - Advantages and False Asymmetries

This is the paper that is frequently referenced when discussing the cross-ratio method to calculate asymmetries: G. G. Ohlsen, Jr. and P. W. Keaton, Nucl. Instrum. Meth. 109, 41 (1973) Media:Cross_ratio.pdf. On page 3, the advantages of the this method are listed.

In this cross-ratio method, the Mott asymmetry is independent (cancel to all orders) of relative detector efficiencies and solid angles, of relative integrated charge (charge asymmetry), and of target thickness variations. However, differences in the beam polarization for the two helicity states cancel to first order.

Dead time in the counting equipment may be either common to the two channels or not, depending on the equipment used. If it is not common, a correction is required. For the Mott, the dead time is caused by the slow DAQ, which is common to all our detectors - no correction is required. This is why even when we have large dead times, we still measure the same asymmetry as the old Mott DAQ.

Section 3.3 of the paper talks about misalignment errors and the effect of detectors having different scattering angle. The Mott Analysing Power depends on the scattering angle, so false asymmetries from misalignments may only cancel to first order - see paper for detailed discussion.


MSS and Farm

  • From jlabl2, do: ssh ifarm to access ifarm1101, the interactive front end for the CentOS 6.2 farm.
  • MSS: The archive location of the Stub Files is: /mss/accel/peppo/raw
 Old files (before May 2012, Run Number < 4,000): /mss/accel/positron/PEPPo or /mss/accel/positron/mott
  • To get files from MSS:
 jget /mss/accel/peppo/raw/Mott_Sample_7231.dat.0
 The file will be copied from tape to the cache area: /cache/mss/accel/peppo/raw
  • Work Disk: /work/accel/peppo
  • Erica Fanchini is keeping the latest decoder at: /work/accel/peppo/Analysis/decoder/
  • Scratch Disk: /scratch