-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOnlineSoftwareOverview.tex
More file actions
executable file
·166 lines (131 loc) · 5.53 KB
/
OnlineSoftwareOverview.tex
File metadata and controls
executable file
·166 lines (131 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
% Online Software Overview
The pixel online software is based on the xdaq toolkit and is
built from a number of different components (applications). The
different xdaq based components are shown in green in
Fig.~\ref{fig:components}. The top level application is the
PixelSupervisor. This application is responsible for the overall
coordination of the pixel DAQ. The PixelSupervisor talks to the
supervisors that directly control the hardware. For example
we have the PixelFECSupervisor that provides the interface to the
pixel FECs. Similarly the PixelFEDSupervisor controls FEDs.
In production at P5, there are multiple instances of the PixelFECSupervisor and
PixelFEDSupervisor; one per VME crate.\footnote{The strip tracker
uses a design where there is one supervisor per VME board.}
\begin{figure}
\begin{center}
\includegraphics[width=0.99\textwidth]{POScomponents.pdf}
\end{center}
\caption{The different applications that compose the Pixel Online Software.}
\label{fig:components}
\end{figure}
The various supervisors run as indepdendent processes, or even on
different computers. Therefore, in order to communicate with each
other they must exchange messages on the network. This is done using
the SOAP protocol.
In the pixel online software the code is distributed
among a number of packages. These packages are listed
here.
\begin{itemize}
\item CalibFormats/SiPixelObjects
\item doc
\item JobControl
\item PixelAnalysisTools
\item PixelCalibrations
\item PixelConfigDataExamples
\item PixelConfigDBGUI
\item PixelConfigDBInterface
\item PixelDCSInterface
\item PixelFECInterface
\item PixelFECSupervisor
\item PixelFEDInterface
\item PixelFEDMonitor
\item PixelFEDSupervisor
\item PixelHistoViewer
\item PixelMonitor
\item PixelRun
\item PixelSupervisor
\item PixelSupervisorConfiguration
\item PixelTCDSSupervisor
\item PixelTKFECSupervisor
\item PixelUtilities
\item XDAQConfiguration
\end{itemize}
The package dependency tree is shown in Fig~\ref{fig:dependencies}.
The supervisor applications are at the top and depend on the
packages below. We should make sure that the dependencies
form a tree and not contain loops. (If it seems necessary
to create a loop the solution is almost always to separate
out some piece of code into a separate package.)
\begin{figure}
\begin{center}
\includegraphics[width=0.99\textwidth]{package_dep.pdf}
\end{center}
\caption{The dependencies among the packages are indicated here.
At top are the supervisor applications. }
\label{fig:dependencies}
\end{figure}
\subsection{CalibFormats/SiPixelObjects}
\subsection{doc}
\subsection{JobControl}
\subsection{PixelAnalysisTools}
\subsection{PixelCalibrations}
\subsection{PixelConfigDataExamples}
\subsection{PixelConfigDBGUI}
\subsection{PixelConfigDBInterface}
\subsection{PixelDCSInterface}
\subsection{PixelFECInterface}
\subsection{PixelFECSupervisor}
The FEC Supervisor controls the pixel FECs. This means it is
responsible for loading the configuration parameters for the ROCs from
the configuration database and programming those parameters into the
detector.
\subsection{PixelFEDInterface}
\subsection{PixelFEDMonitor}
\subsection{PixelFEDSupervisor}
The FED Supervisor controls and monitors the pixel FEDs.
\subsection{PixelHistoViewer}
\subsection{PixelMonitor}
\subsection{PixelRun}
\subsection{PixelSupervisor}
The PixelSupervisor is the top level xdaq application
in the pixel online software. As described above it takes
commands from the function manager. There is one pixel
supervisor for the pixel online system.
\subsubsection{Functions}
The main function of the PixelSupervisor is to coordinate the
activities of the other supervisors, particularly during configuration
(see Sec.~\ref{sec:configuration}) and calibration (see
Sec.~\ref{sect:calib}). It is responsible for updating the
configuration database with new settings obtained by calibrations.
The PixelSupervisor also communicates the state of the pixel
xdaq software (POS) to the Level 1 Function Manager (Sec.~\ref{sec:l1fm}).
\subsubsection{Interface}
The PixelSupervisor web GUI is an html page, which by default
refreshes every few seconds. It displays information about the current
configuration, or if it is not configured it allows the user to select
a possible configuration from a list and configure the detector using
that configuration.
The PixelSupervisor runs the JobControl Monitor, which is a utility
that periodically sends ``heartbeat'' SOAP messages to the JobControl
processes running on the various machines at P5. The PixelSupervisor
GUI uses the replies from these SOAP messages to display whether any of
the POS xdaq processes has crashed, or whether any of the JobControl
processes themselves are unresponsive. (Note that we typically only
run JobControl at P5, so this feature is not available elsewhere.)
\subsection{PixelSupervisorConfiguration}
\subsection{PixelTCDSSupervisor}
\subsection{PixelTKFECSupervisor}
The PixelTKFECSupervisor controls the tracker FEC hardware. The
pixel system uses the tracker FEC hardware slow I2C to
initialize the fast I2C used for the download of most
configuration data.
\subsection{PixelUtilities}
\subsection{XDAQConfiguration}
\subsection{PixelTTCSupervisor}
The PixelTTCSupervisor controls the pixel TTC module used for trigger
and timing. Among other things the TTC module is used during
calibrations to generate triggers. In modern releases of the software,
the PixelTTCSupervisor has been deprecated in favor of the
TTCciControl, which is a standard package maintained by the TTC group.
\subsection{PixelLTCSupervisor}
The PixelLTCSupervisor is used for the local trigger control.