ana control_file root_out
Control file tells to ana program what to do. Results (histograms and some parameters) are saved into root out file.
There are several tags one can use in control file. So quite complicate analysis could be programmed through it. The simplest way of using control file is to Analise processed or slimmed data. Consider example control.dat
#This is a simple analysis of run 3395. Run duration 86100 s. /unix/nemo1/reco7.0/data/3395.root data 86100 0 D /unix/nemo1/reco7.0/mc/mo100gs/mo100_2b2n_101_a.root mo2b2n 0.129 150540 B
one can put option E after tag to tell absolute error in activity. This error wil be used during the fit.
Run the example with
ana control.dat save.root
Following picture will be drawn as a result Fig. 1.
![]() |
Looping through all the trees is time consuming, so if you want to play with different activities values, or fit components in a different way, or draw another histogram etc. you do not need to perform analysis again. Following example shows how to reuse saved histograms:
#This reuse saved hystograms to fit 2b2n signal save.root data 0 0 DR save.root mo2b2n -1 150540 SR
Run the example with
ana control.dat rooty.root
Note to use different (from save.root) output filename!
One can combine different data sources:
#This reuse saved hystograms and adds new component save.root data 86100 0 DR save.root mo2b2n 0.129 150540 BR /unix/nemo1/reco7.0/mc/swire_bi214/swire_bi214_636.root bi214sw 0.702 500000 B E 0.070
Other useful, but not necessary for first try control file options are component dependencies, and multiple channels analysis.
If component activity related to each other (e.g. same decay chain), one can specify them as dependent:
#This reuse saved hystograms and adds new component save.root data 86100 0 DR save.root mo2b2n 0.129 150540 BR /unix/nemo1/reco7.0/mc/swire_bi214/swire_bi214_636.root bi214sw 0.702 500000 B /unix/nemo1/reco7.0/mc/swire_pb214/swire_bi214_230.root pb214sw 0.702 1000000 B D bi214sw 1.
This tells analysis program to ignore activity for pb214sw component, and use the same activity as for bi214sw, multiplied by factor 1.
Another example:
#This reuse saved histograms and adds new component save.root data 86100 0 DR save.root mo2b2n 0.129 150540 BR /unix/nemo1/reco7.0/mc/swire_bi214/swire_bi214_636.root bi214sw 0.702 500000 S /unix/nemo1/reco7.0/mc/swire_pb214/swire_bi214_230.root pb214sw 0.702 1000000 S D bi214sw 1.
Though there are two signal components specified in control file, they are dependent. So fit will be performed, taking into account this dependency, with only one free variable, bi214sw activity.
Yet another useful option is E - error in activity. If activity od background component is known with some error. This error will be stored used in fit error calculation.
#Specify activity error save.root data 86100 0 DR save.root mo2b2n 0.129 150540 BR /unix/nemo1/reco7.0/mc/swire_bi214/swire_bi214_636.root bi214sw 0.702 500000 B E 0.011 /unix/nemo1/reco7.0/mc/swire_pb214/swire_bi214_230.root pb214sw 0.702 1000000 B E 0.011 D bi214sw 1.
If there is a need to fit some component in several channels, there is a multiple channel analysis implemented. By default all components belong to channel 0. But user can explicitly order different channel. E.g. search for decay to excited states in 2e1g and 2e2g channels.
#Multiple channels analysis 2e1g.root data 86100 0 DR C 0 eeg 2e1g.root mo2b2nx 0.0 1000000 SR C 0 eeg 2e2g.root data 86100 0 DR C 1 eegg 2e2g.root mo2b2nx 0.0 1000000 SR C 1 eegg
Tag C tells that there is a channel definition after that. Channel number and channel name should be provided.
Note, that ana is not a user friendly program! This means it doesn't check if your instructions in control file have sense or not. Specifying nonsense (like channel 0 with different names, or tag mo2b2nx as signal in channel 0, and as background in channel 1) most probably will result to program crash.