ATLAS Offline Software
jFEXCompression.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 /***************************************************************************
5  jFEXCompression.h - description
6  -------------------
7  begin : 07-02-2019
8  email : Alan.Watson@cern.ch antonio.jacques.costa@cern.ch
9  ***************************************************************************/
10 
11 
12  #ifndef jFEXCompression_H
13  #define jFEXCompression_H
14 
15 #include <array>
16 
17 namespace LVL1 {
18 
30 class jFEXCompression {
31 
32 public:
34  static unsigned int Compress(float floatEt, bool empty = false);
36  static int Expand(unsigned int code);
38  static unsigned int Threshold(unsigned int code, int threshold = -800);
40  static unsigned int Linearize(unsigned int code, int threshold = 0);
41 
42 private:
44  static const int s_maxET = 800000;
46  static const unsigned int s_nRanges = 5;
48  static const int s_steps[s_nRanges];
50  static const int s_minET[s_nRanges];
52  static const int s_minCode[s_nRanges];
54  static const int s_NoData = 0;
56  static const unsigned int s_LArUnderflow = 1;
58  static const unsigned int s_LArOverflow = 4048;
60  static const unsigned int s_LArMaxCode = 4095;
62  static const unsigned int s_LArInvalid = 4095;
64  static const unsigned int s_jFEXstep = 25;
66  static const unsigned int s_jFEXOverflow = 0xffff;
68  static const int s_error = -99999;
69 };
70 
71 
72 }//end of ns
73 
74 #endif
LVL1::jFEXCompression::s_LArMaxCode
static const unsigned int s_LArMaxCode
Maximum code value, values 4049 to 4094 reserved.
Definition: jFEXCompression.h:70
LVL1::jFEXCompression::s_LArUnderflow
static const unsigned int s_LArUnderflow
LAr underflow code.
Definition: jFEXCompression.h:66
LVL1::jFEXCompression::s_error
static const int s_error
Error return value.
Definition: jFEXCompression.h:78
LVL1::jFEXCompression::s_nRanges
static const unsigned int s_nRanges
Number of ranges.
Definition: jFEXCompression.h:56
LVL1::jFEXCompression::s_jFEXOverflow
static const unsigned int s_jFEXOverflow
L1Calo saturated/overflow.
Definition: jFEXCompression.h:76
LVL1::jFEXCompression::s_LArOverflow
static const unsigned int s_LArOverflow
LAr overflow code.
Definition: jFEXCompression.h:68
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::jFEXCompression::s_NoData
static const int s_NoData
Indicates no data present.
Definition: jFEXCompression.h:64
LVL1::jFEXCompression::Expand
static int Expand(unsigned int code)
Uncompress data.
Definition: jFEXCompression.cxx:58
LVL1::jFEXCompression::s_minET
static const int s_minET[s_nRanges]
Minimum ET values in each range, MeV.
Definition: jFEXCompression.h:60
LVL1::jFEXCompression::Compress
static unsigned int Compress(float floatEt, bool empty=false)
Compress data.
Definition: jFEXCompression.cxx:25
LVL1::jFEXCompression::s_maxET
static const int s_maxET
Maximum ET value that can be encoded.
Definition: jFEXCompression.h:54
LVL1::jFEXCompression::s_LArInvalid
static const unsigned int s_LArInvalid
Invalid code value.
Definition: jFEXCompression.h:72
LVL1::jFEXCompression::Threshold
static unsigned int Threshold(unsigned int code, int threshold=-800)
Apply threshold to compressed data.
Definition: jFEXCompression.cxx:82
LVL1::jFEXCompression::Linearize
static unsigned int Linearize(unsigned int code, int threshold=0)
Linearize LAr code to jFEX internal format.
Definition: jFEXCompression.cxx:94
LVL1::jFEXCompression::s_minCode
static const int s_minCode[s_nRanges]
Minimum code value in each range.
Definition: jFEXCompression.h:62
LVL1::jFEXCompression::s_jFEXstep
static const unsigned int s_jFEXstep
L1Calo ET digit step.
Definition: jFEXCompression.h:74
pmontree.code
code
Definition: pmontree.py:443
threshold
Definition: chainparser.cxx:74
LVL1::jFEXCompression::s_steps
static const int s_steps[s_nRanges]
Step sizes in each range, MeV.
Definition: jFEXCompression.h:58