Added doc dir
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 12 Jan 2011 12:34:30 +0000 (12:34 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 12 Jan 2011 12:34:30 +0000 (12:34 +0000)
FMD/doc/VA1Response.C [new file with mode: 0644]
FMD/doc/VA1Train.C [new file with mode: 0644]
FMD/doc/fmd_signal_path.aux [new file with mode: 0644]
FMD/doc/fmd_signal_path.log [new file with mode: 0644]
FMD/doc/fmd_signal_path.pdf [new file with mode: 0644]
FMD/doc/fmd_signal_path.tex [new file with mode: 0644]
FMD/doc/va1_response.png [new file with mode: 0644]
FMD/doc/va1_train.png [new file with mode: 0644]

diff --git a/FMD/doc/VA1Response.C b/FMD/doc/VA1Response.C
new file mode 100644 (file)
index 0000000..e62a887
--- /dev/null
@@ -0,0 +1,100 @@
+//____________________________________________________________________
+// 
+// $Id: VA1Response.C 13249 2006-03-24 16:09:36Z cholm $
+//
+// Script to try to fit the reponse function of the VA1 signals, based
+// on a finite number of ALTRO samples. 
+//
+/** Make Va1 response
+    @param n 
+    @param B 
+    @param dc 
+    @param errors 
+    @ingroup simple_script
+*/
+void 
+VA1Response(Int_t n=4, Float_t B=6, Float_t dc=.01, Bool_t errors=kFALSE,
+           Bool_t doFit=kFALSE) 
+{
+  gStyle->SetOptTitle(0);
+  gStyle->SetOptStat(0);
+  gStyle->SetOptFit(0);
+  gStyle->SetLabelFont(132, "xyz");
+  gStyle->SetTitleFont(132, "xyz");
+  gStyle->SetTitleSize(0.08, "y");
+  gStyle->SetTitleOffset(0.5, "y");
+  gStyle->SetTitleSize(0.06, "x");
+  gStyle->SetTitleOffset(0.7, "x");
+
+  TCanvas* c = new TCanvas("c", "c", 800, 500);
+  c->SetFillColor(0);
+  c->SetBorderMode(0);
+  c->SetBorderSize(0);
+  c->SetTopMargin(0.05);
+  c->SetRightMargin(0.05);
+  c->SetGridx();
+  c->SetGridy();
+
+  TF1* response = new TF1("response", "[0] * (1 - exp(-[1] * x))", 0, 1.4);
+  response->SetParameters(1, B);
+  response->SetParNames("A", "B");
+  response->SetLineColor(2);
+  
+  TGraph* graph = 0;
+  if (n >= 2) {
+    if (errors) graph = new TGraphErrors(n);
+    else        graph = new TGraph(n);
+    for (Int_t i = 0; i < n; i++) {
+      Float_t t = Float_t(i + 1) / n;
+      Float_t q = gRandom->Gaus(response->Eval(t), dc);
+      graph->SetPoint(i, t, q);
+      if (errors) ((TGraphErrors*)graph)->SetPointError(i, 0, dc);
+    }
+  }
+
+  response->Draw();
+  response->GetHistogram()->GetYaxis()->SetRangeUser(0, 1.05);
+  response->GetHistogram()->GetXaxis()->SetRangeUser(0, 1.1);
+  response->GetHistogram()->GetXaxis()->SetNdivisions(6, kTRUE);
+  response->GetHistogram()->GetYaxis()->SetNdivisions(10, kTRUE);
+  response->GetHistogram()->SetXTitle("t");
+  response->GetHistogram()->SetYTitle(Form("1-e^{-%3.1f t}", B));
+  
+  if (graph) {
+    
+    
+    graph->Draw("P*");
+    TString fitOpt("E");
+    if (!errors) fitOpt.Append("W");
+
+    if (doFit) {
+      TF1* fit = new TF1("fit",  "[0] * (1 - exp(-[1] * x))",  0, 1);
+      fit->SetParameters(.5, B/2);
+      fit->SetParNames("A", "B");
+      fit->SetLineColor(3);
+      graph->Fit("fit", fitOpt.Data());
+      graph->Fit("fit", fitOpt.Data());
+      
+      std::cout << "Chi^2/NDF = " << fit->GetChisquare() << "/" << fit->GetNDF()
+               << " = " << std::flush;
+      if (fit->GetNDF() == 0) 
+       std::cout << " undefined!" << std::endl;
+      else
+       std::cout << (fit->GetChisquare() / fit->GetNDF()) << std::endl;
+      std::cout << "f(t) = " 
+               << fit->GetParameter(0) << "+/-" << fit->GetParError(0) 
+               << " * (1 - exp(" 
+               << fit->GetParameter(1) << "+/-" << fit->GetParError(1) 
+               << " * t))" << std::endl;
+    }
+  }
+
+  c->Modified();
+  c->Update();
+  c->cd();
+  c->SaveAs("va1_response.png");
+}
+//____________________________________________________________________
+//
+// EOF
+//
diff --git a/FMD/doc/VA1Train.C b/FMD/doc/VA1Train.C
new file mode 100644 (file)
index 0000000..aa801f4
--- /dev/null
@@ -0,0 +1,76 @@
+//____________________________________________________________________
+//
+// $Id: VA1Train.C 13249 2006-03-24 16:09:36Z cholm $
+//
+// Small script that shows a signal train from a VA1 pre-amp. 
+// 
+/** Make VA1 sample train
+    @ingroup simple_script
+ */
+void 
+VA1Train() 
+{
+  gStyle->SetOptTitle(0);
+  gStyle->SetOptFit(0);
+  gStyle->SetOptStat(0);
+  gStyle->SetLabelFont(132, "xyz");
+  gStyle->SetTitleFont(132, "xyz");
+  gStyle->SetTitleSize(0.08, "y");
+  gStyle->SetTitleOffset(0.5, "y");
+  gStyle->SetTitleSize(0.06, "x");
+  gStyle->SetTitleOffset(0.7, "x");
+
+  TCanvas* c = new TCanvas("c", "C", 800, 500);
+  c->SetFillColor(0);
+  c->SetBorderMode(0);
+  c->SetBorderSize(0);
+  c->SetTopMargin(0.05);
+  c->SetRightMargin(0.05);
+  c->SetGridx();
+  c->SetGridy();
+
+  TArrayF measurements(6);
+  std::cout << "Measurements are: " << std::flush;
+  for (Int_t i = 0; i < measurements.fN; i++) {
+    measurements[i] = gRandom->Uniform(0,1);
+    std::cout << measurements[i] << " " << std::flush;
+  }
+  std::cout << std::endl;
+
+  Float_t last = 0;
+  Float_t B    = 5;
+  TH2* frame = new TH2F("frame", "Frame", measurements.fN, -.1, 
+                       measurements.fN+.1, 10, 0, 1.05);
+  frame->Draw();
+  // frame->GetYaxis()->SetRangeUser(0, 1.05);
+  // frame->GetXaxis()->SetRangeUser(-.1, measurements.fN+.1);
+  frame->GetXaxis()->SetNdivisions(measurements.fN+2, kTRUE);
+  frame->GetYaxis()->SetNdivisions(10, kTRUE);
+  frame->SetXTitle("t");
+  frame->SetYTitle(Form("1-e^{-%3.1f t}", B));
+
+  for (Int_t i = 0; i < measurements.fN; i++) {
+    TF1* f = new TF1("f", "[2] + exp(-[1] * (x - [3])) * ([0] - [2])", 
+                    i, i + 1);
+    f->SetParameter(3, i);
+    f->SetParameter(1, B);
+    f->SetParameter(2, measurements[i]);
+    f->SetParameter(0, last);
+    
+    f->Draw("same");  
+    f->SetLineColor(kRed+i/2);
+    last = measurements[i]; 
+  }
+
+  TLatex* l = new TLatex(measurements.fN/2, .9, 
+                        "#Delta_{i} + (#Delta_{i-1}-#Delta_{i}) e^{-b (t-i)}");
+  l->SetTextAlign(22);
+  l->SetTextFont(132);
+  l->Draw();
+
+  c->SaveAs("va1_train.png");
+}
+//____________________________________________________________________
+//
+// EOF
+//
diff --git a/FMD/doc/fmd_signal_path.aux b/FMD/doc/fmd_signal_path.aux
new file mode 100644 (file)
index 0000000..5b4fb76
--- /dev/null
@@ -0,0 +1,17 @@
+\relax 
+\newlabel{eq:sim:sum_eloss}{{1}{1}}
+\newlabel{eq:sim:conversion_factor}{{2}{1}}
+\newlabel{eq:sim:adc_counts}{{3}{1}}
+\newlabel{eq:sim:sub_adc_counts}{{4}{1}}
+\newlabel{eq:sim:pedestal_value}{{5}{1}}
+\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Conventions used in this document, and constant values.}}{2}}
+\newlabel{tab:conventions}{{1}{2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Left: Shaping function of {\scshape  va1}{}, right: the resulting train of signals from \textup  {\hbox {\mathsurround \z@ \normalfont  (\ignorespaces 4\hbox {}\unskip \@@italiccorr )}}. Note, that the signal value used is just before the turn to the next value.}}{2}}
+\newlabel{fig:sim:va1_response}{{1}{2}}
+\newlabel{eq:sim:pedestal_subtraction}{{6}{3}}
+\newlabel{eq:raw:sim_digits}{{7}{3}}
+\newlabel{eq:reco:pedestal_subtraction}{{8}{3}}
+\newlabel{eq:reco:low_signal_cut}{{9}{3}}
+\newlabel{eq:reco:conversion_factor}{{10}{3}}
+\newlabel{eq:reco:energy_loss}{{11}{3}}
+\newlabel{eq:all:all}{{12}{4}}
diff --git a/FMD/doc/fmd_signal_path.log b/FMD/doc/fmd_signal_path.log
new file mode 100644 (file)
index 0000000..b845c44
--- /dev/null
@@ -0,0 +1,233 @@
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2010.5.12)  30 NOV 2010 15:38
+entering extended mode
+ %&-line parsing enabled.
+**fmd_signal_path.tex
+(./fmd_signal_path.tex
+LaTeX2e <2005/12/01>
+Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, loaded.
+(/usr/share/texmf-texlive/tex/latex/base/article.cls
+Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
+(/usr/share/texmf-texlive/tex/latex/base/size11.clo
+File: size11.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texmf-texlive/tex/latex/geometry/geometry.sty
+Package: geometry 2002/07/08 v3.2 Page Geometry
+
+(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+\Gm@cnth=\count87
+\Gm@cntv=\count88
+\c@Gm@tempcnt=\count89
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@dimlist=\toks15
+)
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip43
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01
+
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks16
+\ex@=\dimen107
+))
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen108
+)
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count90
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count91
+\leftroot@=\count92
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count93
+\DOTSCASE@=\count94
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box26
+\strutbox@=\box27
+\big@size=\dimen109
+LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count95
+\c@MaxMatrixCols=\count96
+\dotsspace@=\muskip10
+\c@parentequation=\count97
+\dspbrk@lvl=\count98
+\tag@help=\toks17
+\row@=\count99
+\column@=\count100
+\maxfields@=\count101
+\andhelp@=\toks18
+\eqnshift@=\dimen110
+\alignsep@=\dimen111
+\tagshift@=\dimen112
+\tagwidth@=\dimen113
+\totwidth@=\dimen114
+\lineht@=\dimen115
+\@envbody=\toks19
+\multlinegap=\skip44
+\multlinetaggap=\skip45
+\mathdisplay@stack=\toks20
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+)
+(/usr/share/texmf-texlive/tex/latex/units/units.sty
+Package: units 1998/08/04 v0.9b Typesetting units
+
+(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/share/texmf-texlive/tex/latex/units/nicefrac.sty
+Package: nicefrac 1998/08/04 v0.9b Nice fractions
+\L@UnitsRaiseDisplaystyle=\skip46
+\L@UnitsRaiseTextstyle=\skip47
+\L@UnitsRaiseScriptstyle=\skip48
+))
+(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
+Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/etc/texmf/tex/latex/config/graphics.cfg
+File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
+)
+Package graphics Info: Driver file: pdftex.def on input line 90.
+
+(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2007/01/08 v0.04d Graphics/color for pdfTeX
+\Gread@gobject=\count102
+))
+\Gin@req@height=\dimen116
+\Gin@req@width=\dimen117
+)
+(./fmd_signal_path.aux)
+\openout1 = `fmd_signal_path.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 19.
+LaTeX Font Info:    ... okay on input line 19.
+-------------------- Geometry parameters
+paper: class default
+landscape: --
+twocolumn: --
+twoside: true
+asymmetric: --
+h-parts: 56.9055pt, 500.484pt, 56.9055pt
+v-parts: 56.9055pt, 681.15898pt, 56.9055pt
+hmarginratio: --
+vmarginratio: --
+lines: --
+heightrounded: --
+bindingoffset: 0.0pt
+truedimen: --
+includehead: --
+includefoot: --
+includemp: --
+driver: pdftex
+-------------------- Page layout dimensions and switches
+\paperwidth  614.295pt
+\paperheight 794.96999pt
+\textwidth  500.484pt
+\textheight 681.15898pt
+\oddsidemargin  -15.36449pt
+\evensidemargin -15.36449pt
+\topmargin  -52.36449pt
+\headheight 12.0pt
+\headsep    25.0pt
+\footskip   30.0pt
+\marginparwidth 59.0pt
+\marginparsep   10.0pt
+\columnsep  10.0pt
+\skip\footins  10.0pt plus 4.0pt minus 2.0pt
+\hoffset 0.0pt
+\voffset 0.0pt
+\mag 1000
+\@twosidetrue \@mparswitchtrue 
+(1in=72.27pt, 1cm=28.45pt)
+-----------------------
+ <va1_response.png, id=1, 798.985pt x 473.77pt>
+File: va1_response.png Graphic file (type png)
+
+<use va1_response.png> <va1_train.png, id=2, 798.985pt x 473.77pt>
+File: va1_train.png Graphic file (type png)
+
+<use va1_train.png> [1
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+[2 <./va1_response.png (PNG copy)> <./va1_train.png (PNG copy)>] [3]
+LaTeX Font Info:    Try loading font information for OMS+cmr on input line 241.
+
+
+(/usr/share/texmf-texlive/tex/latex/base/omscmr.fd
+File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    Font shape `OMS/cmr/m/n' in size <10.95> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 241.
+ [4] (./fmd_signal_path.aux) ) 
+Here is how much of TeX's memory you used:
+ 1650 strings out of 95086
+ 20482 string characters out of 1183255
+ 82011 words of memory out of 1500000
+ 4831 multiletter control sequences out of 10000+50000
+ 11235 words of font info for 41 fonts, out of 1200000 for 2000
+ 28 hyphenation exceptions out of 8191
+ 27i,12n,32p,382b,246s stack positions out of 5000i,500n,6000p,200000b,5000s
+</usr/share/texmf-texlive/fonts/type1/bluesky/cm/
+cmbx10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmbx12.pfb></usr/sh
+are/texmf-texlive/fonts/type1/bluesky/cm/cmcsc10.pfb></usr/share/texmf-texlive/
+fonts/type1/bluesky/cm/cmex10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky
+/cm/cmmi10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmmi6.pfb></usr
+/share/texmf-texlive/fonts/type1/bluesky/cm/cmmi8.pfb></usr/share/texmf-texlive
+/fonts/type1/bluesky/cm/cmmi9.pfb></usr/share/texmf-texlive/fonts/type1/bluesky
+/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr12.pfb></usr/
+share/texmf-texlive/fonts/type1/bluesky/cm/cmr17.pfb></usr/share/texmf-texlive/
+fonts/type1/bluesky/cm/cmr6.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/c
+m/cmr8.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr9.pfb></usr/shar
+e/texmf-texlive/fonts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-texlive/fon
+ts/type1/bluesky/cm/cmsy8.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/
+cmtt10.pfb>
+Output written on fmd_signal_path.pdf (4 pages, 121606 bytes).
+PDF statistics:
+ 85 PDF objects out of 1000 (max. 8388607)
+ 0 named destinations out of 1000 (max. 131072)
+ 11 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/FMD/doc/fmd_signal_path.pdf b/FMD/doc/fmd_signal_path.pdf
new file mode 100644 (file)
index 0000000..948b256
Binary files /dev/null and b/FMD/doc/fmd_signal_path.pdf differ
diff --git a/FMD/doc/fmd_signal_path.tex b/FMD/doc/fmd_signal_path.tex
new file mode 100644 (file)
index 0000000..331999f
--- /dev/null
@@ -0,0 +1,267 @@
+\documentclass[11pt]{article}
+\usepackage[margin=2cm,twoside]{geometry}
+\usepackage{amsmath}
+\usepackage{amstext}
+\usepackage{units}
+\usepackage{graphicx}
+\title{Calculation of signals in the FMD simulation and reconstruction}
+\author{Christian Holm Christensen}
+\date{\today}
+\def\MeV#1{\unit[#1]{MeV}}
+\def\N#1{\unit[#1]{N}}
+\def\Q#1{\unit[#1]{Q}}
+\def\ALTRO{{\scshape altro}}
+\def\RCU{{\scshape rcu}}
+\def\FMD{{\scshape fmd}}
+\def\VA{{\scshape va1}}
+\def\class#1{{\small\ttfamily #1}}
+\def\DeltaMip{\ensuremath{\bar{\Delta}_{mip}}}
+\begin{document}
+\maketitle 
+
+\section*{Introduction}
+
+This is meant as a reminder of what kind of manipulations we do in the
+simulation and reconstruction of \FMD{} data.   Please refer to
+\tablename~\ref{tab:conventions} for conventions and constants used in
+this document. 
+
+\begin{table}[Htbp]
+  \begingroup
+  \centering
+  \begin{tabular}{|l|c|r|p{.6\textwidth}|}
+    \hline
+    \textbf{Symbol} & \textbf{Unit} & \textbf{Value} & \textbf{Description}\\
+    \hline
+    $\delta_{ij}$  & \MeV{}    &  & Energy loss by particle $j$ in strip $i$\\ 
+    $\Delta_i$     & \MeV{}    &  & Summed energy loss in strip $i$\\
+    ${}_{mc}$      &           &  & Monte-Carlo mark\\ 
+    $q_{mip}$      & \Q{}       & 29.67 & Number of $e^-$ charges for a MIP\\
+    $\DeltaMip{}$ & \MeV{}    & 0.124 & Average energy deposition by a MIP\\
+    $c_i$          & \N{}      &  $[0,10^2-1]$ & ADC counts in strip $i$\\
+    $g_i$          & \N{}/\Q{} & $~2.2$ & Pulser calibrated gain for strip $i$\\
+    $p_i$          & \N{}      & $~100$ & Pedestal value in strip $i$\\
+    $n_i$          & \N{}      & $2-4$ & Noise value of strip $i$\\
+    $f_{ol}$       &           & 4 & On--line noise suppression factor\\
+    $f_{reco}$     &            & 4 & Reconstruction noise suppression
+    factor\\
+    $b$           &           &  6 & Shaping time parameter\\
+    $\rho$        & \unit[g\,cm\textsuperscript{-3}] & 2.33 & Density of silicon\\
+    $T$           & \unit[cm] & 0.032 & Thickness of sensors\\
+    \hline
+  \end{tabular}
+  \endgroup
+  \vspace{1ex}
+  \par
+  \noindent Here, 
+  \begin{align*}
+    \DeltaMip{} &= \unit[1.664]{MeV cm^2 g^{-1}} \rho\,T\\
+    &= \unit[1.664]{MeV cm^2 g^{-1}} \unit[2.33]{g\,cm^{-3}}
+    \unit[0.032]{cm} \\
+    &= \MeV{0.124}
+  \end{align*}
+  where $\rho=\unit[2.33]{g\,cm^{-3}}$ is the density of silicon, and
+  $T=\unit[320]{\mu{}m}$ the thickness of the silicon sensor. 
+  
+  The factor $q_{mip}$ is given by the electronics of the front--end
+  cards of the \FMD{} and was measured in the laboratory in August 2008.
+  It is a digital--to--analogue setting corresponding to 1 MIP in the
+  pulser injection circuit on the front--end electronics. 
+  \caption{Conventions used in this document, and constant values.}
+  \label{tab:conventions}
+\end{table}
+
+
+\section*{Simulations}
+
+In the hits (\class{AliFMDHit}) are generated per strip for each
+particle that impinges on a strip.  Stored in the hit are the energy
+loss $\delta_{i,mc}$ of the particle impinging as well as the path
+length $l_{i,mc}$ of the particle track through the strip.  
+
+When generating simulated detector signal (\class{AliFMDSDigit} or
+\class{AliFMDDigit}) the energy loss in all hits in a single strip is
+summed to a total energy loss in the strip. 
+\begin{equation}
+  \label{eq:sim:sum_eloss}
+  \Delta_{i,mc} = \sum_j \delta_{ij,mc} \quad[\MeV{}]
+\end{equation}
+
+The detector signal (ADC counts) is then calculated using the fixed
+gain of the \VA{} pre-amplifiers ($q_{mip}$), the average
+energy deposition of a MIP $\DeltaMip{}$, and the pulser calibrated
+gain of the strip $g_i$.   These numbers combine to a conversion
+factor $f_{i,mc}$ given by 
+
+\begin{equation}
+  \label{eq:sim:conversion_factor}
+  f_{i,mc} = \frac{q_{mip} g_i}{\DeltaMip{}} \quad [\N{} \MeV{}^{-1}]
+\end{equation}
+
+This factor and the constant value $C_i$ is then used to calculate the
+number of ADC counts 
+
+\begin{equation}
+  \label{eq:sim:adc_counts}
+  c_i = \Delta_{i,mc} f_{i,mc} + C_i \quad[\N{}]
+\end{equation}
+
+In case of multiple samples ($r$) of the same strip, each sample $j$ is
+given by
+\begin{equation}
+  \label{eq:sim:sub_adc_counts}
+  c_{ij,mc} = f_{i,mc} \left(\Delta_{i,mc} + (\Delta_{i-1,mc}-\Delta_i) e^{-b
+      \frac{j}{r}}\right)+C_i \quad[\N{}]
+\end{equation}
+where $j$ runs from 1 to $r$ (the number of samples), and $b$ is a
+constant that depends on the shaping time of the \VA{}
+pre-amplifier (see also \figurename~\ref{fig:sim:va1_response}). 
+
+\begin{figure}[Htbp]
+  \centering
+  \includegraphics[keepaspectratio,width=.45\textwidth]{va1_response}
+  \includegraphics[keepaspectratio,width=.45\textwidth]{va1_train}
+  \caption{Left: Shaping function of \VA{}, right: the resulting train
+    of signals from \eqref{eq:sim:sub_adc_counts}. Note, that the
+    signal value used is just before the turn to the next value.}
+  \label{fig:sim:va1_response}
+\end{figure}
+
+Since the ADC has a limited range of 10bits ($=10^2-1=1024-1$) all
+signals are truncated at 1023. 
+
+For summable digits (\class{AliFMDSDigit}) $C_i=0$, but for 
+fully simulated digits $c'_i$ (\class{AliFMDDigit}) it is given by
+the pedestal $p_i$ and noise $n_i$ of the strip
+
+\begin{equation}
+  \label{eq:sim:pedestal_value}
+  C_i = \text{gaus}(p_i,n_i)\quad[\N{}]
+\end{equation}
+that is, a Gaussian distributed number with $\mu=p_i$ (pedestal) and
+$\sigma=n_i$ (noise). 
+
+\section*{Raw data} 
+
+The raw data, whether from simulation or the experiment, is stored in
+the \ALTRO{}/\RCU{} data format.  The \ALTRO{} has 10 bit (maximum
+count value of $\N{10^2-1}=\N{1023}$) ADC with up to 1024 consecutive
+samples of the input signal.  The 128 input strip signals of \VA{}
+chips, are multiplexed into a single \ALTRO{} channel in such a way
+that each strip signal is sampled 1, 2, or 4 times\footnote{Currently,
+  the default is to sample 2 times.}.  
+
+The signal is then pedestal subtracted 
+\begin{equation}
+  \label{eq:sim:pedestal_subtraction}
+  d_i = c_i - p_i + f_{ol} n_i\quad[\N{}]
+\end{equation}
+where $p_i$ and $n_i$ are the pedestal and noise value, evaluated
+on--line in special calibration runs, and $f_{ol}$ is a integer factor
+selected when configuring the detector\footnote{Typically $f_{ol}=4$.} 
+
+After pedestal subtraction, which ensures that strips not hit by a
+particle has a 0 signals, an zero--suppression filter is applied by
+the \ALTRO{}.  This filter throws away all 0s from the data and
+replaces them with markers that allows one to reconstruct the position
+of the remaining signals in the sample sequence.  
+
+The signals from each \ALTRO{} input channel is then packed into
+blocks and shipped to the \RCU{} and eventually the data acquisition
+system. 
+
+In simulations a similar filter is applied to the data to simulate the
+\ALTRO{} channels.  The total signal from the a strip
+\eqref{eq:sim:adc_counts} is then given by 
+\begin{equation}
+  \label{eq:raw:sim_digits}
+  c_i = \Delta_{i,mc} f_{i,mc} + \text{gaus}(p_i,n_i) - p_i - f_{ol} n_i \quad[\N{}]
+\end{equation}
+and similar for $c_{ij}$ \eqref{eq:sim:sub_adc_counts}.
+
+\section*{Reconstruction} 
+
+When reconstructing of either simulated data or data from the
+experiment, the first thing is to read in the raw data stored in the
+\ALTRO{}/\RCU{} data format\footnote{There is an option to reconstruct
+  from the simulated \class{AliFMDDigit} objects directly, in which
+  case this step is skipped entirely.}.  This is done by the
+\class{AliFMDRawReader} class.  
+
+Depending on whether or not the data was zero--suppressed, the
+\class{AliFMDRawReader} code will do a pedestal subtraction, or add in
+the noise previously subtracted in the \ALTRO{} (or simulation there
+of) 
+
+\begin{equation}
+  \label{eq:reco:pedestal_subtraction}
+  s'_i = c_i + C_i = c_i + \left\{
+    \begin{array}{cl}
+      - p_i & \text{not zero--suppressed}\\ 
+      + f_{ol} n_i & \text{zero-suppressed} 
+    \end{array}\right.\quad[\N{}]
+\end{equation}
+where $f_{ol}$ is the noise factor applied by the \ALTRO{}\footnote{This
+  factor is stored in the event header and read by the
+  \class{AliFMDRawReader} --- thus ensuring consistency.}, and $p_i$
+and $n_i$ are the pedestal and noise value of the strip in question. 
+
+In the reconstruction it is possible (via a \class{AliFMDRecoParam}
+object) to specify a stronger noise suppression factor $f_{reco}$.  If
+the signal $s'_i$ is smaller than the noise $n_i$ times the greater of
+the two noise suppression factors, it is explicitly set to 0 
+\begin{equation}
+  \label{eq:reco:low_signal_cut}
+  s_i = \left\{\begin{array}{cl}
+    s'_i & s'_i > n_i \max{f_{ol},f_{reco}}\\
+      0 & \text{otherwise}
+    \end{array}\right.\quad[\N{}]
+  \end{equation}
+
+We now have a signal $s_i$ which is akin to $f_{i,mc}\Delta_{i,mc}$ of
+\eqref{eq:raw:sim_digits}.  We therefor calculate the energy loss in
+the $i^{\text{th}}$ strip using the factor 
+\begin{equation}
+  \label{eq:reco:conversion_factor}
+  f_{i,reco} = \frac{\DeltaMip{}}{q_{mip} g_i} = f_{i,mc}^{-1}
+  \quad[\N{}^{-1}\MeV{}]
+\end{equation}
+which is the inverse of \eqref{eq:sim:conversion_factor}, and the
+energy loss is then  
+\begin{equation}
+  \label{eq:reco:energy_loss}
+  \Delta_{i,reco} = s_i f_{i,reco}\quad[\MeV{}]
+\end{equation}
+
+\section*{From energy loss to ADC counts and back}
+
+If we take \eqref{eq:sim:adc_counts} and \eqref{eq:reco:energy_loss}
+and assume 
+\begin{itemize}
+\item that $s_i$ is not suppressed by \eqref{eq:reco:low_signal_cut}
+\item \eqref{eq:reco:pedestal_subtraction} removes the fluctuations
+  put in \eqref{eq:sim:pedestal_value}
+\end{itemize}
+and put them together we get 
+\begin{align}
+  \label{eq:all:all}
+  \Delta_{i,reco} &= s_i f_{i,reco}\nonumber\\
+  &= (c_i + C_i) \frac{\DeltaMip{}}{q_{mip} g_i}\nonumber\\
+  &= \Delta_{i,mc} f_{i,mc}  f_{i,mc}^{-1}\nonumber\\
+  &= \Delta_{i,mc}
+\end{align}
+
+\section*{Some calculations} 
+
+Assuming a typical energy loss of \unit[2.9]{MeV\,cm\textsuperscript{-1}} and
+applying \eqref{eq:sim:adc_counts} and
+\eqref{eq:sim:conversion_factor}, we get a signal value over pedestal of
+\begin{align}
+  c_i &= \unit[2.9]{MeV\,cm^{-1}}\,T\, f_{i,mc}\nonumber\\
+  &= \MeV{0.0928}\frac{\Q{29.67}\
+    \unit[2.2]{N\,Q^{-1}}}{\MeV{0.124}}\nonumber\\
+  &= \MeV{0.0928}\ \unit[526.40]{N MeV\textsuperscript{-1}}\nonumber\\
+  &= \N{48.85}
+\end{align}
+
+\end{document}
diff --git a/FMD/doc/va1_response.png b/FMD/doc/va1_response.png
new file mode 100644 (file)
index 0000000..c2256d4
Binary files /dev/null and b/FMD/doc/va1_response.png differ
diff --git a/FMD/doc/va1_train.png b/FMD/doc/va1_train.png
new file mode 100644 (file)
index 0000000..6d55109
Binary files /dev/null and b/FMD/doc/va1_train.png differ