ATLAS Offline Software
Loading...
Searching...
No Matches
TileDigiNoiseCalibAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TILEDIGINOISECALIBALG_H
6#define TILEDIGINOISECALIBALG_H
7
8// ********************************************************************
9//
10// NAME: TileDigiNoiseCalib.h
11// PACKAGE: TileCalib
12//
13// AUTHOR: Luca Fiorini (Luca.Fiorini@cern.ch)
14//
15// February 2008
16// ********************************************************************
17
18// Gaudi includes
19#include "GaudiKernel/ToolHandle.h"
20
21// Athena includes
25
26// Tile includes
32
33#include <cmath>
34#include <vector>
35#include <string>
36#include <map>
37#include <cstdint>
38
39#define NVALS 36
40
41// Forward declaration
42class TileHWID;
45
47 public:
48 TileDigiNoiseCalibAlg(const std::string& name, ISvcLocator* pSvcLocator);
49 virtual ~TileDigiNoiseCalibAlg();
50
51 // Functions
52 virtual StatusCode initialize() override; //only array initialization is done here
53 virtual StatusCode execute() override;
54 virtual StatusCode finalize() override;
55
56 private:
57
58 enum trigtype {
60 , Phys = 1
61 , Las = 2
62 , Ped = 4
63 , Cis = 8
64 };
65
66 StatusCode FirstEvt_initialize(); // real initialization is done in this method
67
68 StatusCode fillDigits (const TileDQstatus* theDQstatus); //accumulate statistics for pedestal, lfn, hfn, noise_cov calculation
69 void finalDigits(); // pedestal, lfn, hfn, noise_cov calculation is done here
70 void StoreRunInfo (const TileDQstatus* dqStatus); // called only at the first event. General variables
71
72 inline int digiChannel2PMT(int ros, int chan) {
73 return (abs(m_cabling->channel2hole(ros, chan)) - 1);
74 }
75
76 // If data should be put in calib mode
78
79 // by default we use channels
81
82 // Toggle usage of average correlation calcualtion or rigorous
83 // Default: Rigorous
85
86 // Toggle usage of robust method to calculate covariance matrix or standard method
87 // Default: use standard
89
92 "TileDigitsContainer", "TileDigitsCnt", "Tile digits container"};
94 "EventInfo", "EventInfo", "EventInfo key"};
95
96 // Tools / storegate info
97 ToolHandle<TileRawChannelBuilderFlatFilter> m_adderFilterAlgTool{this,
98 "TileAdderFlatFilter","TileRawChannelBuilderFlatFilter/TileAdderFlatFilter","Tile adder flat filter"};
102
103 // Identifiers
106
107 const uint32_t* m_cispar;
108
109 // Name of ntuple and file
110 std::string m_ntupleID;
111 std::string m_file;
112 int64_t m_treeSize;
114// unsigned int m_nDrawers;
115
116 // Container Parameters
117 std::string m_digitsContainer;
119 /* std::string m_flatRawChannelContainer;
120 std::string m_fitRawChannelContainer;
121 std::string m_optRawChannelContainer;*/
123
125
130
131 // event number
134
135 // Trigger items
139 int m_day;
142 int m_min;
143 int m_run;
154};
155
156#endif // TILENOISECALIBALG_H
Property holding a SG store/key/clid from which a ReadHandle is made.
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
#define NVALS
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Property holding a SG store/key/clid from which a ReadHandle is made.
This AthConstConverter class provides conversion from ByteStream to TileBeamElemContainer.
Static class providing several utility functions and constants.
static const unsigned int MAX_GAIN
Number of gains per channel.
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
static const unsigned int MAX_CHAN
Number of channels in drawer.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
TileOFCorrelation * m_tileOFCorrelation
double(* m_meanAmp_ij)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_CHAN][Tile::MAX_GAIN]
ToolHandle< TileRawChannelBuilderFlatFilter > m_adderFilterAlgTool
double(* m_sumRms2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_auto_corr)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NVALS]
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
virtual StatusCode initialize() override
Only array initialization is done here All the helpers initialization is done at the first event.
uint8_t(* m_channel)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
bool(* m_gain)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
TileDigiNoiseCalibAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode execute() override
Main method.
SG::ReadHandleKey< TileDQstatus > m_dqStatusKey
float(* m_hfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
StatusCode fillDigits(const TileDQstatus *theDQstatus)
fillDigits is called at every events.
float(* m_noise_cov)[Tile::MAX_DRAWER][Tile::MAX_GAIN]
uint8_t(* m_ros)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
void finalDigits()
finalDigits is called during finalize Here the average Ped, m_lfn, m_hfn and covariance are calculate...
TileBeamElemContByteStreamCnv * m_beamCnv
virtual StatusCode finalize() override
The output ntuple is created in finalize method.
double(* m_meanAmp)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
StatusCode FirstEvt_initialize()
Initialization done at the first event.
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
void StoreRunInfo(const TileDQstatus *dqStatus)
StoreRunInfo is called only during the first event.
const TileCablingService * m_cabling
float(* m_lfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
int digiChannel2PMT(int ros, int chan)
double(* m_sumPed2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
int(* m_evt)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
uint8_t(* m_drawer)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_ped)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67