Project
Loading...
Searching...
No Matches
Calibrations.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_TRD_CALIBRATIONS_H
13#define O2_TRD_CALIBRATIONS_H
14
16// //
17// TRD calibration class for parameters which are saved frequently(/run) //
18// 2019 - Ported from various bits of AliRoot (SHTM) //
19// A wrapper api class to provide a user intuitive interface to the
20// underlying calibrations classes and ccdb and make life easy for all
21// bold statement, lets see if we get there.
22//
23// Questions :
24// 1. Its not clear to me yet what happens if I query an object that
25// is not defined as input in the dpl for the device we are using.
26//
27// This pulls in functions from various subordinate classes like CalPad CalROC
28// CalDet etc. and renames them to clearly reflect their applicability,
29//
30// This class does *not* store pointers to any subordinate objects as that
31// would imply caching. At each request the underlying object stored in
32// CCDB is sought, either directly or for that which is provided by DPL. The
33// latter still being unclear (17/09/2019)
34// BE AWARE THIS IS LIKELY TO CHANGE BEFORE START OF RUN 3 (25/09/2019)
36
37#include <memory>
38#include <string>
39#include "Rtypes.h"
40#include "TRDBase/Geometry.h"
45
46namespace o2
47{
48namespace trd
49{
50
52{
53
54 public:
55 Calibrations() = default;
56 ~Calibrations() = default;
57 //
58 int getTimeStamp() const { return mTimeStamp; }
59 void getCCDBObjects(long timestamp);
60 void setOnlineGainTables(std::string& tablename);
61 //
62 float getVDrift(int roc, int col, int row) const;
63 float getT0(int roc, int col, int row) const;
64 float getExB(int roc) const;
65 float getGainFactor(int roc, int col, int row) const;
66 float getPadGainFactor(int roc, int col, int row) const;
67
68 const PadStatus* getPadStatus() const { return mPadStatus; }
70
71 //online gain tables.
72 float getOnlineGainAdcdac(int det, int row, int mcm) const;
73 float getOnlineGainFGAN(int det, int row, int mcm, int adc) const;
74 float getOnlineGainFGFN(int det, int row, int mcm, int adc) const;
75
76 protected:
77 long mTimeStamp; //run number of related to the current calibration.
78
85 //
87};
88} // namespace trd
89} // namespace o2
90#endif
uint16_t mcm
Aliases for calibration values stored on a per-pad basis.
uint32_t roc
Definition RawData.h:3
uint32_t col
Definition RawData.h:4
const ChamberStatus * getChamberStatus() const
float getOnlineGainFGAN(int det, int row, int mcm, int adc) const
void getCCDBObjects(long timestamp)
void setOnlineGainTables(std::string &tablename)
ChamberStatus * mChamberStatus
status flag for each chamber
PadStatus * mPadStatus
status flag for each readout pad
float getGainFactor(int roc, int col, int row) const
ChamberCalibrations * mChamberCalibrations
from AliRoot: vDrift, T0, ExB and Gain for each chamber
float getOnlineGainFGFN(int det, int row, int mcm, int adc) const
PadNoise * mPadNoise
noise value per readout pad
float getPadGainFactor(int roc, int col, int row) const
CalOnlineGainTables * mCalOnlineGainTables
online gain table (obtained from Kr calibration)
const PadStatus * getPadStatus() const
int getTimeStamp() const
float getOnlineGainAdcdac(int det, int row, int mcm) const
ClassDefNV(Calibrations, 1)
float getVDrift(int roc, int col, int row) const
float getExB(int roc) const
float getT0(int roc, int col, int row) const
LocalGainFactor * mLocalGainFactor
gain factor per readout pad
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< int > row
ArrayADC adc