Kamil Sedlak 2009-05-18
This is the first version of the muSR simulation code (musrSim) based on the merged codes of Kamil Sedlak and Toni Shiroka. It should be a running version of the simulation code, however it has not been very well tested, therefore it will probably need some further development.
This commit is contained in:
469
doc/musrSim.tex
Normal file
469
doc/musrSim.tex
Normal file
@ -0,0 +1,469 @@
|
||||
\documentclass[twoside]{dis04}
|
||||
%\def\runauthor{Kamil Sedl\'{a}k}
|
||||
\def\runauthor{PSI}
|
||||
% for the H1 collaboration}
|
||||
\def\shorttitle{musrSim}
|
||||
\begin{document}
|
||||
|
||||
%\newcommand{\xgmy}{\ensuremath{x^{\mathrm{jets}}_\gamma} }
|
||||
%\newcommand{\GeV}{\ensuremath{\mathrm{GeV}} }
|
||||
%\newcommand{\pb}{\ensuremath{\mathrm{pb}} }
|
||||
%\newcommand{\gevsq}{\ensuremath{\mathrm{GeV}^2} }
|
||||
%\newcommand{\Etone}{\ensuremath{E^*_{T\, 1}} }
|
||||
%\newcommand{\Ettwo}{\ensuremath{E^*_{T\, 2}} }
|
||||
%\newcommand{\Etmy}{\ensuremath{E^*_T} }
|
||||
%\newcommand{\etaone}{\ensuremath{\eta^*_{1}} }
|
||||
%\newcommand{\etatwo}{\ensuremath{\eta^*_{2}} }
|
||||
%\newcommand{\etamy}{\ensuremath{\eta^*} }
|
||||
%\newcommand{\ycut}{\ensuremath{y_c} }
|
||||
\newcommand{\musr}{\ensuremath{\mu}SR}
|
||||
|
||||
\title{Manual of musrSim}
|
||||
%\title{GEANT Simulation Program for the
|
||||
%$\mathbf{\mu}$SR Instruments}
|
||||
|
||||
\author{Kamil Sedl\'ak and Toni Shiroka PSI}
|
||||
|
||||
%\address{{\rm (on behalf of the H1 collaboration)}\\
|
||||
%Institute of Physics AS\,CR\\
|
||||
%%Academy of Sciences of the Czech Republic
|
||||
%Na Slovance 2, 182 21 Praha 8, Czech Republic\\
|
||||
%E-mail: ksedlak@fzu.cz}
|
||||
|
||||
\maketitle
|
||||
|
||||
\abstracts{
|
||||
The program ``musrSim'' is a simulation program based on Geant4
|
||||
optimised for the $\mu$SR instruments.
|
||||
This document describes some of the commands used in the user macros
|
||||
of the simulation program for the $\mu$SR instruments based on the {\sc
|
||||
Geant4}. The root output variables are also described.
|
||||
}
|
||||
|
||||
|
||||
\section{Initial muon parameters}
|
||||
|
||||
\begin{description}
|
||||
\item{\bf /gun/vertex \emph{x0} \emph{y0} \emph{z0} \emph{unit}}\\
|
||||
(default: /gun/vertex 0 0 -100 mm) \\
|
||||
Set mean values of the $x$, $y$ and $z$ coordinates of the generated particles (muons).
|
||||
The smearing around these mean values instead is set by /gun/vertexsigma and
|
||||
restricted by /gun/vertexboundary (see below).\\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/vertexsigma \emph{xSigma} \emph{ySigma} \emph{zSigma} \emph{unit}}\\
|
||||
(default: /gun/vertexsigma 0 0 0 mm) \\
|
||||
If {\it xSigma} $>0$ ... set $\sigma$, i.e. the standard deviation (RMS), of the $x$ coordinate
|
||||
of the generated particles (muons) to $\sigma=xSigma$. The $x$ coordinate of the initial
|
||||
muon is then generated according to the Gaussian distribution with the mean value of $x0$
|
||||
and the standard deviation of {\it xSigma}. \\
|
||||
If {\it xSigma} $<0$ ... the $x$ coordinate of the initial
|
||||
muon is generated {\bf uniformly} in the interval of ($x0-$ {\it xSigma}, $x0+$ {\it xSigma}).\\
|
||||
If {\it xSigma} $= 0$ ... no smearing on the $x$ coordinate is applied.\\
|
||||
Similar is true for {\it ySigma} and {\it zSigma}. \\
|
||||
This variables are ignored when TURTLE input is requested.
|
||||
|
||||
\item{\bf /gun/vertexboundary \emph{R\_max} \emph{z\_min} \emph{z\_max} \emph{unit}}\\
|
||||
Set maximum allowed radius, and minimum and maximum z coordinate of the generated particles (muons).
|
||||
This command might be useful especially if the user wants to restrict the
|
||||
area, in which initial particles are created, e.g.\ to force the initial muons
|
||||
to be created inside the beam pipe.
|
||||
|
||||
If the particles (muons) are read in from an external TURTLE file,
|
||||
only the restriction on the maximum radius \emph{R\_max}
|
||||
is applied on the initial particles, while \emph{z\_min} and \emph{z\_max} are ignored.
|
||||
|
||||
\item{\bf /gun/kenergy \emph{kineticEnergy} \emph{unit}}\\
|
||||
Set the mean kinetic energy of the initial particles (muons).
|
||||
|
||||
\item{\bf /gun/momentum \emph{momentum} \emph{unit}}\\
|
||||
Set the mean momentum of the initial particles (muons).
|
||||
|
||||
\item{\bf /gun/momentumsmearing \emph{momentumSigma} \emph{unit}}\\
|
||||
Set $\sigma$, i.e. the standard deviation (RMS), of the momentum spread, which
|
||||
is aplied randomly to each generated initial particle (muon). It is the magnitude
|
||||
of the momentum, which is smeared. \\
|
||||
(Ignored by the TURTLE input. However,
|
||||
a similar command ``/gun/turtleMomentumBite'' can be used for the TURTLE input file.)
|
||||
|
||||
\item{\bf /gun/momentumboundary \emph{p\_min} \emph{p\_max} \emph{dummy} \emph{unit}}\\
|
||||
Set a boundary for the minimum and maximum momentum of the initial particles (muons).
|
||||
The third argument \emph{dummy} is ignored.\\
|
||||
(Presently ignored by the TURTLE input).
|
||||
|
||||
\item{\bf /gun/tilt \emph{xangle0} \emph{yangle0} \emph{dummy} \emph{unit}}\\
|
||||
The ``beam tilt'' is understood as a constant angle tilt that is applied to
|
||||
all initial particles (muons) regardless on their distance from the centre of the beam.\\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/tiltsigma \emph{xangleSigma} \emph{yangleSigma} \emph{dummy} \emph{unit}}\\
|
||||
Gaussian smearing of the tilt angle.\\
|
||||
(Presently ignored by the TURTLE input).
|
||||
|
||||
\item{\bf /gun/pitch \emph{pitch} \emph{unit}}\\
|
||||
The ``beam pitch'' is understood as a variable angle applied to the initial particles
|
||||
(muons), which is directly proportional to the distance from the beam axis.
|
||||
The particles closer to the beam axis become smaller pitch than particles further away
|
||||
from the beam axis.
|
||||
The angle given as \emph{pitch} will be applied to a particle generated 1\,mm away from the
|
||||
beam centre, i.e. the particle generated 7\,mm away from the beam axis will be assigned
|
||||
the angle of $7\cdot pitch$.
|
||||
The pitch allows the user to focus or defocuse the initial particle
|
||||
beam. Particles will be focused for positive pitch and defocused for the negative pitch.\\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/muonPolarizVector \emph{xpolaris} \emph{ypolaris} \emph{zpolaris}}\\
|
||||
Set polarisation of the initial particle (muon) in a form of a vector
|
||||
$P=(xpolaris,ypolaris,zpolaris)$. The polarisation vector does not have to be normalised,
|
||||
the normalisation will be done internally by the program.
|
||||
However note that if the magnitude of P is set to less than 1e-8, the user can
|
||||
achieve an unpolarised muon beam. See the source code of musrPrimaryGeneratorAction.cc
|
||||
if you need to use unpolarised beam by this parameter, because there is some trick
|
||||
based on the magnitude of P.\\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/muonPolarizFraction \emph{polarisFraction}}\\
|
||||
Set the fraction of the muon polarisation. The variable \emph{polarisFraction}
|
||||
has to be set in the range of -1 to 1. \\
|
||||
If \emph{polarisFraction} is set to 1, all muons are polarised in the direction
|
||||
of polarisation vector defined by ``/gun/muonPolarizVector''.\\
|
||||
If \emph{polarisFraction} is set to 0, half of the muons are polarised in the direction
|
||||
of polarisation vector, the second half is polarised in the oposite dirrection, so
|
||||
in the end the muon beam should act as unpolarised.\\
|
||||
If \emph{polarisFraction} is set to -1, all muons are polarised in the direction
|
||||
oposite to the polarisation vector.\\
|
||||
{\bf If \emph{polarisFraction} is set to 0.9, then 95\% of the muons is polarised
|
||||
in in the direction of polarisation vector, and 5\% of them is polarised in the
|
||||
oposite dirrection!}.\\
|
||||
{\bf This command is ignored if magnitude of polarisation vector defined by
|
||||
``/gun/muonPolarizVector'' is smaller than 1e-8!} \\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/decaytimelimits \emph{muDecayTimeMin} \emph{muDecayTimeMax} \emph{muMeanLife} \emph{unit}}\\
|
||||
(default: /gun/decaytimelimits $-1$ $-1$ 2197.03\,ns ) \\
|
||||
If {\it muDecayTimeMax} is less or equal to zero, this command is ignored,
|
||||
and the muon decay time is set internally by {\sc Geant4}.
|
||||
Otherwise the muon will be forced to decay within a time interval given by
|
||||
{\it muDecayTimeMin} and {\it muDecayTimeMax}, and the mean muon lifetime will
|
||||
be set to {\it muMeanLife}. In such case {\it muDecayTimeMin}
|
||||
has to be equal or larger than 0 and {\it muDecayTimeMax} has to be
|
||||
larger {\bf or equal} to {\it muDecayTimeMin}.\\
|
||||
(Applicable also to TURTLE input).
|
||||
|
||||
\item{\bf /gun/turtlefilename \emph{turtleFileName}}\\
|
||||
Set the filename of the TURTLE input file. If this varialble is set, TURTLE file
|
||||
will be used to initiate muons. Otherwise the mouns would be generated randomly.
|
||||
|
||||
\item{\bf /gun/turtleZ0position \emph{z0\_InitialTurtle} \emph{unit}}\\
|
||||
Set the z-position which has been used to generate the TURTLE file.\\
|
||||
If this value differes from the $z0$ value of the ``/gun/vertex'' command,
|
||||
than the particle initial position is extrapolated from $z0\_InitialTurtle$
|
||||
to the point corresponding to $z0$, using the direction of its momenta.\\
|
||||
MORE DETAILS:\\
|
||||
When running TURTLE (e.g. when generating the TURTLE file using the TURTLE program),
|
||||
the user has to specify the $z$ position, at which the TURTLE particles (muons) would be exported.
|
||||
Sometimes this $z$ position does not correspond to the point of origin of the musrSim
|
||||
geometry. In such case, the variable \emph{z0\_InitialTurtle} should be set to the
|
||||
value, that in musrSim coordinate system corresponds to the point, at which the TURTLE
|
||||
file was exported. For example -- if the TURTLE file was exported just after the last
|
||||
quadrupole of a beam-pipe, and in the simulation the edge of the last quadrupole corresponds
|
||||
to 100\,cm, than the \emph{z0\_InitialTurtle} should be also set to 100\,cm.\\
|
||||
|
||||
\item{\bf /gun/turtleMomentumBite \emph{turtleMomentumP0} \emph{turtleSmearingFactor} \emph{dummy} }\\
|
||||
Modify the smearing of the momentum bite specified in the TURTLE input file.
|
||||
Normally the muon momentum is defined already in the turtle input file. This command allows the user
|
||||
to modify the momentum smearing (momentum bite) of the muon beam.
|
||||
The variable \emph{turtleMomentumP0} will be taken as the mean momentum (in MeV/c), around which
|
||||
the momentum will be increased/decreased. It does not have to be the real mean value of the initial muon momentum distribution.
|
||||
The variable \emph{turtleSmearingFactor} is the smearing factor in per cent, by which the momentum bite
|
||||
will be increased/decreased around the \emph{turtleMomentumP0}. The following equation is used to change the
|
||||
muon momentum: $p^{new}$ = {\it turtleMomentumP0} - ({\it turtleMomentumP0}-$p^{TURTLE}$)$\cdot$0.01$\cdot${\it turtleSmearingFactor}.\\
|
||||
This means that:\\
|
||||
{\it turtleSmearingFactor} = 100 ... the muon beam momentum will not be modified.\\
|
||||
{\it turtleSmearingFactor} = 0 ~~... the muon beam momentum will be set to the constant value of {\it turtleMomentumP0}.\\
|
||||
{\it turtleSmearingFactor} = 200 ... the muon beam will have two times broader distribution compared to the original TURTLE file.
|
||||
|
||||
\item{\bf /gun/turtleFirstEventNr \emph{lineNumberOfTurtleFile} }\\
|
||||
|
||||
\end{description}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Detector construction}
|
||||
|
||||
\begin{description}
|
||||
%
|
||||
\item{\bf /musr/command rotation \emph{matrixName} $\alpha$ $\beta$ $\gamma$} \\
|
||||
{\bf /musr/command rotation \emph{matrixName} \emph{vx} \emph{vy} \emph{vz} \emph{angle}}\\
|
||||
These commands define a rotation matrix of the name ``matrixName'' that can be used later on
|
||||
during the definition of the detector geometry (see command ``/musr/command construct'').
|
||||
It can be defined either by the Euler angles (if there are three float parameters behind the
|
||||
\emph{matrixName}) or by the vector \emph{(vx,vy,vz)} and an \emph{angle} of rotation around this
|
||||
vector (if the fourth float parameter behind the \emph{matrixName} is non-zero).
|
||||
All angles are specified in degrees.
|
||||
%
|
||||
\item{\bf /musr/command construct \emph{solid}=string \emph{name}=string \emph{dimensions}=float ... \emph{material}=string
|
||||
\emph{x}=float \emph{y}=float \emph{z}=float \emph{motherVolume}=string \emph{rotationMatrix}=string
|
||||
\emph{sensitiveClass}=string \emph{idNumber}=int }\\
|
||||
This command defines a volume in {\sc Geant4} (It comprises three steps of {\sc Geant4}: defines a solid,
|
||||
logical volume and physical volume. More details have to be found in {\sc Geant4} manual). \\
|
||||
\begin{itemize}
|
||||
\item \emph{solid} can be one of the G4VSolid.cc particular types, presently ``tubs'', ``box'', ``sphere'',
|
||||
or it can be one of the specifically implemented solids by our program as ``uprofile''
|
||||
(an U-profiled bar), ``alcSupportPlate'' (shape specific to ALC support plate), ``tubsbox''
|
||||
(a tube with a rectangular hole along its axis) and "tubsboxsegm"
|
||||
(a volume that looks like an intersection of tube and box). Not all G4VSolids are
|
||||
presently supported, but it is relatively easy to implement a new kind of solids
|
||||
in the musrDetectorConstruction.cc class.
|
||||
\item \emph{name} stands for the name of the volume. As the ``/musr/command construct'' construct
|
||||
three kinds of classes (volumes) -- the solid, logical volume and physical
|
||||
volume -- there are three names of the concrete volume used internally inside
|
||||
the program: sol\_\emph{name}, log\_\emph{name} and phys\_\emph{name}.
|
||||
The main volume, inside which all other volumes are positioned, has to be called ``World''.
|
||||
\item \emph{dimensions} define the size of the required solid. They are kept equivalent to the
|
||||
dimensions of solids as used in {\sc Geant4}. For example the ``box'' is defined
|
||||
by its halfwidths along $x$, $y$ and $z$ coordinates. Note that the number of
|
||||
\emph{dimensions} varies for each type of solid.
|
||||
\item \emph{material} one of the materials defined in {\sc Geant4}, namely in the file
|
||||
\$G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc (e.g. ``G4\_Galactic'' for
|
||||
vacuum, ``G4\_Cu'' for copper, ``G4\_AIR'' for air and
|
||||
``G4\_PLASTIC\_SC\_VINYLTOLUENE'' for a scintillator).
|
||||
One can also define a new material inside the function
|
||||
musrDetectorConstruction::DefineMaterials(). Presently ``Mylar'', ``Brass''
|
||||
and ``Steel'' are defined there.
|
||||
\item \emph{x, y, z} -- coordinates of the volume, used to position the volume within
|
||||
its mother volume (as used by the G4PVPlacement).
|
||||
\item \emph{motherVolume} -- name of the mother volume, in which the given volume should be
|
||||
positioned. Note that the mother volume has to be defined first (before its
|
||||
daughter), and that the name of mother starts with a string {\bf log\_}\emph{name},
|
||||
following the naming convention defined above.
|
||||
When the ``World'' volume is defined, its \emph{motherVolume} should be set to ``no\_logical\_volume''.
|
||||
\item \emph{rotationMatrix} -- name of the rotation matrix that will be used to position
|
||||
the volume inside its mother volume (as used in member function G4PVPlacement()).
|
||||
Use string ``norot'' if no rotation is required for the given volume.
|
||||
Otherwise the rotation matrix has to be defined by the command line
|
||||
``/musr/command rotation'' {\bf before} the given is defined.
|
||||
\item \emph{sensitiveClass} -- specifies whether the volume is sensitive or not.
|
||||
Use the string ``dead'' for the non-senstive volume (i.e.\ for the dead material),
|
||||
and the string ``musr/ScintSD'' for a scintillator (a sensitive volume, i.e.\
|
||||
a volume where hits are observed). No other detector type
|
||||
(other than ``dead'' and ``musr/ScintSD'') is supported at the moment, but
|
||||
the program might be extended in the future (e.g. to properly include also the
|
||||
semiconductor tracking detectors, etc.).
|
||||
\item \emph{idNumber} -- idNumber serves as a unique identifier of the volume. It is primarily
|
||||
used in the output Root tree to identify the volume: 1) in which muons stop
|
||||
(tree variable ``muDecayDetID''),
|
||||
2) in which hits were deposited in case of sensitive volume
|
||||
(the variable ``det\_ID[det\_n]'').
|
||||
\end{itemize}
|
||||
%tubs beampipeA 0 128 500 0 360 G4_Galactic 0 0 -800 log_World norot dead 232
|
||||
|
||||
\item{\bf /musr/command logicalVolumeToBeReweighted mu \emph{logicalVolume}=string \emph{weight}=int }\\
|
||||
(default: not defined; no reweighting is done unless explicitly requested by this command.) \\
|
||||
Events can be reweighted by this command. If muon {\bf stops and decays} in the
|
||||
volume \emph{logicalVolume}, the event will be reweighted using the requested \emph{weight}.
|
||||
Namely, only each $n^{th}$ event will be stored ($n=$\emph{weight}) with the parameter
|
||||
``weight'' in the Root output tree set to \emph{weight}, while other (non-$n^{th}$) events
|
||||
will be aborted. (The decision which event is to be stored and which to be aborted is
|
||||
done at random). This reweighting might be usefull in the cases when the user wants to speed-up the
|
||||
simulation (respectively to reduce the number of fully simulated events), while keeping
|
||||
the high number of events interesting for the analysis. For example, one can set
|
||||
the reweighting of events in which muons stop in the collimator. One should then
|
||||
use the \emph{weight} stored in the Root tree when filling histograms.
|
||||
Compared to the simulation with no weighting applied, the histograms with weighted events
|
||||
will have larger errors, but the distribution should not differ more then within the
|
||||
statistical errors.\\
|
||||
Note that the \emph{weight} parameter is integer, and ``mu'' stands for ``muons''
|
||||
(at the moment reweighting based on electrons or positrons is not supported).
|
||||
|
||||
|
||||
\end{description}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Visualisation}
|
||||
|
||||
\begin{description}
|
||||
\item{\bf /musr/command visattributes \emph{volumeName} \emph{color}}\\
|
||||
{\bf /musr/command visattributes \emph{materialName} \emph{color}}\\
|
||||
In case of visualisation,
|
||||
one can set the color of a logical volume \emph{volumeName} or of all volumes made
|
||||
of the material with the name \emph{materialName}. The distinction between the
|
||||
two options is by the first four letters of the \emph{volumeName} -- if it contains
|
||||
the string ``log\_'', it is considered as \emph{volumeName}, otherwise it is
|
||||
considered to be a material with \emph{materialName}.
|
||||
|
||||
Presently the following colors are predefined: ``invisible'', ``white'', ``black'',
|
||||
``red'', ``green'', ``blue'', ``lightblue'', ``yellow'', ``gray'', ``cyan'' and ``magenta''.
|
||||
New colours can be easily added, if needed, in the member function
|
||||
``musrDetectorConstruction::SetColourOfLogicalVolume''.
|
||||
|
||||
\end{description}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Physics processes}
|
||||
|
||||
\begin{description}
|
||||
\item{\bf /musr/command process addDiscreteProcess \emph{particle}=string \emph{process}=string }\\
|
||||
{\bf /musr/command process addProcess \emph{particle}=string \emph{process}=string \emph{ordAtRestDoIt}=int \emph{ordAlongSteptDoIt}=int \emph{ordPostStepDoIt}=int }\\
|
||||
Adds processes for particles. See {\sc Geant4} manual for more details. Look in the
|
||||
file musrPhysicsList.cc for the list of defined processes (e.g. G4MultipleScattering,
|
||||
G4eIonisation, ...)
|
||||
|
||||
There is one special process, combined from G4MultipleScattering and G4CoulombScattering,
|
||||
defined by the following command:\\
|
||||
{\bf /musr/command process addProcess \emph{particle}=string MultipleAndCoulombScattering \emph{ordAtRestDoIt}=int \emph{ordAlongSteptDoIt}=int \emph{ordPostStepDoIt}=int \emph{G4Region1}=string [\emph{G4Region2}=string] [\emph{G4Region3}=string] }\\
|
||||
The G4MultipleScattering (rough but very fast approximation of scattering) will be applied
|
||||
elswhere in the detector, except for the \emph{G4Region1} (and eventually \emph{G4Region2}
|
||||
and \emph{G4Region3}), where more precise but very slow process G4CoulombScattering
|
||||
will be applied instead of G4MultipleScattering. Note that up to three
|
||||
G4Regions are supported at the moment, but this limitation is not intrinsic to {\sc Geant4}
|
||||
and it can be therefore changed in musrPhysicsList.cc, if needed. The G4Regions have to
|
||||
be defined in the detector construction phase by the command ``/musr/command region define ...''.
|
||||
|
||||
\end{description}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\clearpage
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Output root tree variables}
|
||||
The value of -999 or -1000 indicates that the given variable could not be filled
|
||||
(was undefined in a given event).
|
||||
For example if the variable ``muTargetTime'' is set to -1000 it means that the initial muon missed the sample,
|
||||
and therefore no time can be assigned to the sample hit.
|
||||
|
||||
\begin{description}
|
||||
\item{\bf runID} (Int\_t) -- run ID number.
|
||||
\item{\bf eventID} (Int\_t) -- event ID number.
|
||||
\item{\bf weight} (Double\_t) -- event weight.
|
||||
\item{\bf BFieldAtDecay\_Bx, BFieldAtDecay\_By, BFieldAtDecay\_Bz, BFieldAtDecay\_B3, BFieldAtDecay\_B4, BFieldAtDecay\_B5} (Double\_t) --
|
||||
value of the 6 coordinates of the electromagnetic field at the position and time where and when the muon decayed.
|
||||
The first three coordinates correspond to the magnetic field, the last three to the electric field.
|
||||
\item{\bf muIniPosX, muIniPosY, muIniPosZ} (Double\_t) -- initial position where muon was generated (in mm).
|
||||
\item{\bf muIniMomX, muIniMomY, muIniMomZ} (Double\_t) -- initial momentum of the muon when it was generated (in MeV/c).
|
||||
\item{\bf muIniPolX, muIniPolY, muIniPolZ} (Double\_t) -- initial polarisation of the muon when it was generated.
|
||||
\item{\bf muDecayDetID} (Int\_t) -- ID number of the detector in which the muon stopped and decayed.
|
||||
\item{\bf muDecayPosX, muDecayPosY, muDecayPosZ} (Double\_t) -- the position where the muon stopped and decayed (in mm).
|
||||
\item{\bf muDecayTime} (Double\_t) -- the time at which the muon stopped and decayed (in $\mu$s).
|
||||
\item{\bf muDecayPolX, muDecayPolY, muDecayPolZ} (Double\_t) -- polarisation of the muon when it stopped and decayed.
|
||||
\item{\bf muTargetTime} (Double\_t) -- time at which the muon entered the volume whose name starts by ``target'' -- usually the sample (in $\mu$s).
|
||||
\item{\bf muTargetPolX, muTargetPolY, muTargetPolZ} (Double\_t) -- polarisation of the muon when it entered the volume whose name starts with ``target'' -- usually the sample.
|
||||
\item{\bf muM0Time} (Double\_t) -- time at which the muon entered the detector called ``M0'' or ``m0'' (in $\mu$s).
|
||||
\item{\bf muM0PolX, muM0PolY, muM0PolZ} (Double\_t) -- polarisation of the muon when it entered the detector called ``M0'' or ``m0''.
|
||||
\item{\bf muM1Time} (Double\_t) -- time at which the muon entered the detector called ``M1'' or ``m1'' (in $\mu$s).
|
||||
\item{\bf muM1PolX, muM1PolY, muM1PolZ} (Double\_t) -- polarisation of the muon when it entered the detector called ``M1'' or ``m1''.
|
||||
\item{\bf muM2Time} (Double\_t) -- time at which the muon entered the detector called ``M2'' or ``m2'' (in $\mu$s).
|
||||
\item{\bf muM2PolX, muM2PolY, muM2PolZ} (Double\_t) -- polarisation of the muon when it entered the detector called ``M2'' or ``m2''.
|
||||
\item{\bf posIniMomX, posIniMomY, posIniMomY} (Double\_t) -- Initial momentum of the decay positron (in MeV/c).
|
||||
\item{\bf nFieldNomVal} (Int\_t) -- number of the elementary fields that make together the global field.
|
||||
\item{\bf fieldNomVal[nFieldNomVal]} (array of Double\_t) -- nominal values of all elementary fields.
|
||||
(They are usually constant, but sometimes they may vary from event to event).
|
||||
\item{\bf BxIntegral, ByIntegral, BzIntegral, BzIntegral1, BzIntegral2, BzIntegral3} (Double\_t) --
|
||||
calculates the field integrals along the muon path and path lengths defined as
|
||||
\begin{eqnarray}
|
||||
\mathrm{BxIntegral} & = & \int_{\mu\ \mathrm{path}} B_x(s)\, ds \\
|
||||
\mathrm{ByIntegral} & = & \int_{\mu\ \mathrm{path}} B_y(s)\, ds \\
|
||||
\mathrm{BzIntegral} & = & \int_{\mu\ \mathrm{path}} B_z(s)\, ds \\
|
||||
\mathrm{BzIntegral1} & = & \int_{Z_0}^{Z_{decay}} B_z(z)\, dz \\
|
||||
\mathrm{BzIntegral2} & = & \int_{\mu\ \mathrm{path}} ds \\
|
||||
\mathrm{BzIntegral3} & = & \int_{Z_0}^{Z_{decay}} dz
|
||||
\end{eqnarray}
|
||||
The units are tesla$\cdot$m (for the first four variables) and mm (for the last two variables).
|
||||
To calculate the integrals properly, the user must force Geant to use very small step size
|
||||
(e.g.\ by using something like ``/musr/command globalfield setparameter SetLargestAcceptableStep 2''),
|
||||
and probably also to generate the muons well outside the magnetic field and put target such
|
||||
that muons stop at $z=0$.
|
||||
|
||||
Note that these variables are by default not calculated (and not stored) and therefore the user has
|
||||
to switch the calculation on by ``/musr/command rootOutput fieldIntegralBx on'' in the macro file.
|
||||
|
||||
\item{\bf det\_n} (Int\_t) -- number of ``detector hits'' in this event. Note that more then 1 detector
|
||||
might be hit, and even the same detector might be hit more than once. The hit might be induced by just one
|
||||
particle, by more then one particle originating from the same particle initially hitting the detector,
|
||||
or from more ``independent'' particles.
|
||||
For example, the decay positron can emit an Bremsstrahlung photon in the sample and then both the Bremsstrahlung
|
||||
photon and positron hit the same positron counter at approximately the same time.
|
||||
\item{\bf det\_ID[det\_n]} (array of Int\_t) -- ID number of the detector where the given hit occurred.
|
||||
\item{\bf det\_edep[det\_n]} (array of Double\_t) -- energy deposited in the given hit (in MeV).
|
||||
\item{\bf det\_edep\_el[det\_n]} (array of Double\_t) -- energy deposited in the given hit due to electron-based interactions (in MeV).
|
||||
\item{\bf det\_edep\_pos[det\_n]} (array of Double\_t) -- energy deposited in the given hit due to positron-based interactions (in MeV).
|
||||
\item{\bf det\_edep\_gam[det\_n]} (array of Double\_t) -- energy deposited in the given hit due to photon-based interactions (in MeV).
|
||||
\item{\bf det\_edep\_mup[det\_n]} (array of Double\_t) -- energy deposited in the given hit due to muon-based interactions (in MeV).
|
||||
\item{\bf det\_nsteps[det\_n]} (array of Int\_t) -- number of ``steps'' (in {\sc Geant4} terminology) that were
|
||||
integrated together in the given hit. (The det\_edep[] energy is the sum of the energy deposits during all these steps).
|
||||
\item{\bf det\_length[det\_n]} (array of Double\_t) -- the length of the trajectory of the particle (particles) that contributed to
|
||||
the given hit (in mm).
|
||||
\item{\bf det\_time\_start[det\_n], det\_time\_end[det\_n]} (array of Double\_t) -- the initial and final time belonging of the hit.
|
||||
It should be the ``global time'' of the track when the first and last hit occurred (in $\mu$s).
|
||||
\item{\bf det\_x[det\_n], det\_y[det\_n], det\_z[det\_n]} (array of Double\_t) -- the coordinates of the first step of the given hit.
|
||||
%\item{\bf det\_kine[det\_n]} (array of Double\_t) -- should be kinetic energy, but not sure whether it is filled correctly (in MeV).
|
||||
\item{\bf det\_Vrtx*****[det\_n]} -- All the variables starting with ``det\_Vrtx'' refer to the particle with the first (in time) energy deposit
|
||||
belonging to the given hit. (Note that the hit might be induceed by more than one particle.) The vertex, at which
|
||||
the particle was created, may or may not be positioned within the sensitive volume, in which the hit is observed.
|
||||
\item{\bf det\_VrtxKine[det\_n]} (array of Double\_t) -- the kinetic energy of the first (in time) particle belonging to the hit.
|
||||
\item{\bf det\_VrtxX[det\_n], det\_VrtxY[det\_n], det\_VrtxZ[det\_n]} (array of Double\_t) -- the position of the vertex of
|
||||
the first particle that belongs to the given hit (in mm).
|
||||
\item{\bf det\_VrtxVolID[det\_n]} (array of Int\_t) -- ID of the detector in which the vertex (see above) was created.
|
||||
\item{\bf det\_VrtxProcID[det\_n]} (array of Int\_t) -- ID of the physics process in which the vertex (see above) was created.
|
||||
\item{\bf det\_VrtxTrackID[det\_n]} (array of Int\_t) -- track ID of the first particle that belongs to the given hit.
|
||||
If the track ID is negative, there were more than just one track contributing to this hit. The absolute value
|
||||
of det\_VrtxTrackID[det\_n] corresponds to the first (in time) track.
|
||||
\item{\bf det\_VrtxParticleID[det\_n]} (array of Int\_t) -- particle ID of the first particle that belongs to the given hit.
|
||||
\item{\bf det\_Vvv*****[det\_n]} -- similar to the variables det\_Vrtx*****[det\_n] above, but if the first particle
|
||||
belonging to the hit was created inside of the logical volume where the hit occurs, then it's track is followed
|
||||
to its mother track (even several times) until the track (particle) is found that has been created outside the
|
||||
given volume. This way one can better investigate which (hopefully) single particle coused the hit. Even though
|
||||
even in this case it is not guarranteed that only a single particle gave origin to the hit, it is quite likely, though,
|
||||
that it was in fact just a single particle. If the
|
||||
\item{\bf save\_n} (Int\_t) -- number of special kind of ``save'' volume that were hit in this event. The ``save volume'' is
|
||||
any volume whose name starts with letters ``save''. Their purpose in the simulation is usually to check positions
|
||||
and momenta of particles at some position of the detector, even if the particle does not deposit any energy in
|
||||
the given ``save'' volume. Save volumes can therefore be made of vacuum.
|
||||
\item{\bf save\_detID[save\_n]} (array of Int\_t) -- ID number of the save volume.
|
||||
\item{\bf save\_particleID[save\_n]} (array of Int\_t) -- particle ID of the particle that entered the save volume.
|
||||
\item{\bf save\_x[save\_n], save\_y[save\_n], save\_z[save\_n]} (array of Double\_t) -- position of the particle where it
|
||||
entered the save volume (``GetPreStepPoint()'') (in mm).
|
||||
\item{\bf save\_px[save\_n], save\_py[save\_n], save\_pz[save\_n]} (array of Double\_t) -- momentum of the particle when it
|
||||
entered the save volume (in GeV).
|
||||
|
||||
\end{description}
|
||||
\clearpage
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
|
||||
%
|
||||
%\begin{figure}\centering
|
||||
%\epsfig{file=pict/HiFi_01.eps,width=\linewidth,%
|
||||
%bbllx=56pt,bblly=288pt,bburx=505pt,bbury=555pt,clip=}
|
||||
%\caption{The cross-section of the first version of the High Field \musr\ apparatus including
|
||||
%an example interaction. Only the inner part of the apparatus is shown. The picture was generated
|
||||
%using GEANT package.}
|
||||
%\label{HiFi_01}
|
||||
%\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Conclusions}
|
||||
The ...
|
||||
in~\cite{Aktas:2004px}.
|
||||
|
||||
\section{Appendix A: Steering file for the simulation}
|
||||
\begin{verbatim}
|
||||
# Macro file for seg06.cc
|
||||
# set detector parameters
|
||||
# This line fills some space
|
||||
# This line fills some space
|
||||
/run/beamOn 2
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
\begin{thebibliography}{0}
|
||||
|
||||
%\cite{Aktas:2004px}
|
||||
\bibitem{Aktas:2004px}
|
||||
A.~Aktas {\it et al.} [H1 Collaboration],
|
||||
%``Measurement of dijet production at low Q**2 at HERA,''
|
||||
Submitted to Eur.\,Phys.\,J.\,{\bf C}, [hep-ex/0401010].
|
||||
%%CITATION = HEP-EX 0401010;%%
|
||||
|
||||
|
||||
|
||||
|
||||
\end{thebibliography}
|
||||
|
||||
\end{document}
|
Reference in New Issue
Block a user