![]() |
AliPhysics
32954cd (32954cd)
|
#include <AliFMDEncodedEdx.h>
Classes | |
struct | Spec |
Public Types | |
enum | { kNEBits = 8, kNLBits = 5, kEMask = 0xFF, kLMask = 0x1F } |
Public Member Functions | |
AliFMDEncodedEdx () | |
virtual | ~AliFMDEncodedEdx () |
Static Public Member Functions | |
static const Spec & | GetdEAxis () |
static const Spec & | GetdLAxis () |
static UInt_t | Encode (Double_t edep, Double_t length) |
static void | Decode (UInt_t bits, Double_t &edep, Double_t &length) |
static void | Decode (UInt_t bits, Double_t &edep, Double_t &length, Double_t &wEdep, Double_t &wLength) |
static TH1 * | Make1D (const char *name, const char *title, UShort_t mode=true) |
static TH2 * | Make2D (const char *name, const char *title, Bool_t xedep=true) |
static Bool_t | IsAvailable (UInt_t alirootRev) |
Static Private Member Functions | |
static UInt_t | EncodeOne (Double_t v, const Spec &a) |
static Double_t | DecodeOne (UInt_t b, const Spec &a) |
static Double_t | DecodeOne (UInt_t b, Double_t &w, const Spec &a) |
Class to encode the energy loss \(d\Delta\) and path length \(dx\) of a particle into track reference bits. A total of 13 bits are available. Of these 8 are used for \(d\Delta\) and 5 for \(dx\).
The encoding is done by binning. That is, for a given value of \(d\Delta\) or \(dx\) we calculate a bin number and store that. The reverse decoding is done by looking up the bin center of the bin number stored. Note, that the bin numbers go from 0 to 255 (for \(d\Delta\)) and 31 (for \(dx\)).
The bins become progressively wider. That is, we define 3 regions.
Type | N bins | Range | bin | value | bin | value |
---|---|---|---|---|---|---|
\(d\Delta\) | 256 | 0-11 | 192 | 1.1 | 243 | 2.2 |
\(dx\) | 32 | 0-0.7 | 24 | 0.07 | 30 | 1.4 |
Currently there's no support of other schemas
Definition at line 52 of file AliFMDEncodedEdx.h.
anonymous enum |
How the 13 bits are distributed
Enumerator | |
---|---|
kNEBits | |
kNLBits | |
kEMask | |
kLMask |
Definition at line 200 of file AliFMDEncodedEdx.h.
|
inline |
Constructor - a no-op
Definition at line 209 of file AliFMDEncodedEdx.h.
|
inlinevirtual |
Destructor - a no-op
Definition at line 213 of file AliFMDEncodedEdx.h.
|
inlinestatic |
Decode the lower 13-bit of the input into \(d\Delta\) and \(dx\)
bits | Encoded 13-bit word (lower 13 bit) |
edep | On return, the \(d\Delta\) |
length | On return, the \(dx\) |
Definition at line 259 of file AliFMDEncodedEdx.h.
Referenced by AliFMDMCTrackDensity::ProcessRef(), and AliFMDMCTrackELoss::ProcessRef().
|
inlinestatic |
Decode the lower 13-bit of the input into \(d\Delta\) and \(dx\)
bits | Encoded 13-bit word (lower 13 bit) |
edep | On return, the \(d\Delta\) |
length | On return, the \(dx\) |
wEdep | On return, the width of the corresponding \(d\Delta\) bin |
wLength | On return, the width of the corresponding \(dx\) bin |
Definition at line 273 of file AliFMDEncodedEdx.h.
Decode a value
b | Encoded value |
a | Bin specification |
Definition at line 375 of file AliFMDEncodedEdx.h.
Referenced by Decode().
|
inlinestaticprivate |
Decode a value
b | Encoded value |
a | Bin specification |
w | On return, the bin width |
Definition at line 389 of file AliFMDEncodedEdx.h.
Encode \(d\Delta\) and \(dx\) into a 13bit number.
edep | \(d\Delta\) |
length | \(dx\) |
Definition at line 246 of file AliFMDEncodedEdx.h.
Encode one value
v | Value |
a | Bin specification |
Definition at line 361 of file AliFMDEncodedEdx.h.
Referenced by Encode().
|
inlinestatic |
Get the \(d\Delta\) bin specification. If not initialized already, do so .
Definition at line 220 of file AliFMDEncodedEdx.h.
Referenced by AliFMDMCTrackELoss::CreateOutputObjects(), Decode(), Encode(), Make1D(), Make2D(), AliFMDMCTrackInspector::RingHistos::MakeIncreasingAxis(), and AliFMDMCHitEnergyFitter::RingHistos::MakeIncreasingAxis().
|
inlinestatic |
Check if the encoded \(d\Delta\) and \(dx\) are available in the upper 13 bits of the unique ID field of track references.
alirootRev | AliROOT revision of the code that produced the track references. Note, it cannot be the revision of AliROOT running, since that can be much newer (or older) than the code that made the track references. One should get this information from the object stored in the ESD tree's user objects. |
Definition at line 347 of file AliFMDEncodedEdx.h.
|
inlinestatic |
Make a 1-dimension histogram with the natural binning for the encoding for either \(d\Delta\) or \(dx\)
name | Name of produced histogram |
title | Title of produced histogram |
mode | If 0, make histogram for \(d\Delta\). If 1 for \(dx\), if 2 for \(d\Delta/dx\) |
Definition at line 290 of file AliFMDEncodedEdx.h.
|
inlinestatic |
Make a 2-dimension histogram with the natural binning for the encoding of \(d\Delta\) versus \(dx\) (or vice versa)
name | Name of produced histogram |
title | Title of produced histogram |
xedep | If true, put \(d\Delta\) on the X-axis, otherwise for \(dx\) |
Definition at line 321 of file AliFMDEncodedEdx.h.