ATLAS Offline Software
Loading...
Searching...
No Matches
EfexDefs.h
Go to the documentation of this file.
1//==============================================================================
2// EfexDefs.h
3//==============================================================================
4/*
5 * Class to define eFEX constants.
6 */
7
8#ifndef EfexDefs_H
9#define EfexDefs_H
10
11#include "defsL1Calo/FexDefs.h"
12
13class EfexDefs {
14public:
15 // Here "ribbon" is what goes to a minipod.
17 static int numRibbonsPerConnector() { return 4; }
19
20 // For the moment this ignores the spare connector.
21 static int numInputConnectors() { return 4; }
23 static int numInputFibres() { return numInputRibbons() * numFibresPerRibbon(); }
24 // NB what if not all input ribbons are fully used (which seems likely)?
25 static int numInputChannels() { return numInputFibres(); }
26
27 static int maxSuperCellsPerFibre() { return 20; }
29 static int numBitsPerSuperCell() { return 10; } // TODO: CHECK THIS!!
30
31 static int numOutputRibbons() { return 2; } // TODO: CHECK THIS!!
33
34 static int nProcessorFpgas() { return 4; }
35 static int numInputFibresPerFpga() { return 49; } // 40 EM + 9 Hadronic (total number actually in use)
36 static int numInputMgtsPerFpga() { return 80; } // NB not all are used, but index is 0-79 for all FPGAs
37 static int numQuadsPerFpga() {return 20; }
38 static int numMgtsPerQuad() {return 4; }
39
40 static int nCaloReadoutStreams() { return 4; } // Sent separately
41 static int nTobReadoutStreams() { return 1; } // Merged in control FPGA
42
43 // Maximum number of eta bins. NB only one end FPGA uses more than four
44 // (and the TOB coordinate may be 0-4 or 1-5 in those cases).
45 static int maxEtaBinsPerFpga() { return 5; }
46 static int numEtaBinsPerModule() { return 17; }
48
49 // N. BCs of playback memory. **FIXME** This is very likely wrong!
51 static int roSpyMemoryDepth() { return 0x800; }
52
53 // Mapping between minipods and MTP connectors. **FIXME** This is very likely wrong!
54 static int connectorForMinipod(int minipod);
55 static int connectorFirstFibre(int minipod);
56
57 // Methods for converting internal to global eta.
58 static unsigned int globalEtaIndex(unsigned int efexLogicalID,
59 unsigned int fpgaNumber,
60 unsigned int etaWithinFpga);
61 static int globalEtaValue(unsigned int efexLogicalID,
62 unsigned int fpgaNumber,
63 unsigned int etaWithinFpga);
64};
65
66#endif // EfexDefs_H
This class provides static methods to handle input fibre mappings: between MTP input connectors and m...
Definition EfexDefs.h:13
static int numInputFibresPerFpga()
Definition EfexDefs.h:35
static int roSpyMemoryDepth()
Definition EfexDefs.h:51
static int num32BitWordsPerFibre()
Definition EfexDefs.h:28
static int maxEtaBinsPerModule()
Definition EfexDefs.h:47
static int numOutputFibres()
Definition EfexDefs.h:32
static int numEtaBinsPerModule()
Definition EfexDefs.h:46
static int nProcessorFpgas()
Definition EfexDefs.h:34
static int numBitsPerSuperCell()
Definition EfexDefs.h:29
static int numInputMgtsPerFpga()
Definition EfexDefs.h:36
static unsigned int globalEtaIndex(unsigned int efexLogicalID, unsigned int fpgaNumber, unsigned int etaWithinFpga)
Return unsigned eta bin within eFEX system (used for calibration channels).
Definition EfexDefs.cxx:87
static int numQuadsPerFpga()
Definition EfexDefs.h:37
static int nTobReadoutStreams()
Definition EfexDefs.h:41
static int numInputConnectors()
Definition EfexDefs.h:21
static int numInputChannels()
Definition EfexDefs.h:25
static int nCaloReadoutStreams()
Definition EfexDefs.h:40
static int numInputFibres()
Definition EfexDefs.h:23
static int numMgtsPerQuad()
Definition EfexDefs.h:38
static int connectorForMinipod(int minipod)
Return MTP connector number (0-3) for a given minipod.
Definition EfexDefs.cxx:28
static int maxSuperCellsPerFibre()
Definition EfexDefs.h:27
static int globalEtaValue(unsigned int efexLogicalID, unsigned int fpgaNumber, unsigned int etaWithinFpga)
Return signed eta bin within eFEX system (used for trigger menu API).
Definition EfexDefs.cxx:108
static int numInputRibbons()
Definition EfexDefs.h:22
static int numRibbonsPerConnector()
Definition EfexDefs.h:17
static int numFibresPerConnector()
Definition EfexDefs.h:18
static int numOutputRibbons()
Definition EfexDefs.h:31
static int connectorFirstFibre(int minipod)
Return first fibre in the input MTP connector for a given minipod.
Definition EfexDefs.cxx:51
static int inputPlaybackDepth()
Definition EfexDefs.h:50
static int maxEtaBinsPerFpga()
Definition EfexDefs.h:45
static int numFibresPerRibbon()
Definition EfexDefs.h:16
static int numFibresPerRibbon()
Definition FexDefs.h:14
static int num32BitWordsPerFibre()
Definition FexDefs.h:17
static int inputPlaybackDepth()
Definition FexDefs.h:22