ATLAS Offline Software
Loading...
Searching...
No Matches
CscCalcPed.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CSCCALCPED_H
6#define CSCCALCPED_H
7
11
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/ToolHandle.h"
15
21
22#include <string>
23#include <vector>
24#include <bitset>
25
26#include "TH1I.h"
27#include "TH1F.h"
28#include "TH2F.h"
29#include <algorithm>//for min_Element, max_element
30
31namespace MuonCalib{
43
45 {
46 public:
47 CscCalcPed(const std::string& name, ISvcLocator* pSvcLocator);
48 ~CscCalcPed()=default;
49
51 StatusCode initialize(void);
52 StatusCode execute(void);
53 StatusCode finalize(void);
54
55 private:
56
57 /***********Private member functions*/
59 StatusCode collectEventInfo();
61 StatusCode calculateParameters();
62 StatusCode writeCalibrationFile();
63 StatusCode storeGateRecord();
65
66 StatusCode calOutput0();
67 StatusCode calOutput1();
68 StatusCode calOutput3();
69 void outputParameter3(const CscCalibResultCollection & results, std::ofstream & out);
70
72 StatusCode hashToChamberName(IdentifierHash,std::string);
73 StatusCode fillBitHist(TH1I * bitHist, const uint16_t & val, TH2F* bitProds);
74 template <typename dataType> dataType GetMinMax(std::vector<dataType> & vec) {
75 const auto [pMin, pMax] = std::minmax_element(vec.begin(), vec.end());
76 return *pMax - *pMin;
77 }
78
79 void onlineToOfflineHashId(const unsigned int & onlineId, unsigned int &hashId) const;
80
81 /*********Private member variables*/
83 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
84 SmartIF<IChronoStatSvc> m_chronoSvc;
85 ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this,"CscRdoDecoderTool","Muon::CscRDO_Decoder"};
86 SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};
87
88
90 std::string m_outputFileName;
92 std::string m_calOutputVersion;
94
95
96 //bool m_makeHists, m_dumpAllHists;
99
100 std::string m_onlineDbFile;
101
103 unsigned int m_maxStripHash;
104
106
107 const unsigned int m_numBits;
108
111
113
115
121 std::vector<int> m_onlineThresholds;
130
131 //String for interface to patch changes
132 std::string m_cmt_parameter;
133
135
136 };//end class CscCalcPed
137
138
139 inline StatusCode CscCalcPed::fillBitHist(TH1I * bitHist, const uint16_t & val, TH2F* bitProds)
140 {
141 if(!bitHist)
142 return StatusCode::RECOVERABLE;
143
144 //Num bits should always be m_numBits
145 std::bitset<12> bitVal(val);
146
147 for(unsigned int bitIndex = 0; bitIndex < m_numBits; bitIndex++){
148 if(bitVal[bitIndex]){
149 bitHist->Fill(bitIndex);
150 if(bitProds){
151 for(unsigned int bitIndex2 = 0 ; bitIndex2 <= bitIndex ; bitIndex2++) {
152 if(bitVal[bitIndex2]){
153 bitProds->Fill(bitIndex,bitIndex2);
154 if(bitIndex != bitIndex2)
155 bitProds->Fill(bitIndex2,bitIndex);
156 }
157
158 }
159 }
160 }
161
162 }
163
164
165 return StatusCode::SUCCESS;
166 }
167
168}//end namespace:
169
170#endif
std::vector< size_t > vec
An STL vector of pointers that by default owns its pointed-to elements.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Derived DataVector<T>.
Definition DataVector.h:795
This is a "hash" representation of an Identifier.
std::string m_titlePostfix
Definition CscCalcPed.h:91
CscCalibResultCollection * m_noises
Definition CscCalcPed.h:124
CscCalibResultCollection * m_peds
Definition CscCalcPed.h:123
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Services and tools.
Definition CscCalcPed.h:83
unsigned int m_ampHistNumBins
Definition CscCalcPed.h:105
SmartIF< IChronoStatSvc > m_chronoSvc
Definition CscCalcPed.h:84
DataVector< TH1I > * m_ampHists
Definition CscCalcPed.h:116
unsigned int m_ampHistHighBound
Definition CscCalcPed.h:105
DataVector< TH2F > * m_bitProds
Definition CscCalcPed.h:119
DataVector< TH2F > * makeBitCorrelation()
StatusCode initialize(void)
basic required functions
StatusCode fillBitHist(TH1I *bitHist, const uint16_t &val, TH2F *bitProds)
Definition CscCalcPed.h:139
StatusCode hashToChamberName(IdentifierHash, std::string)
Utility functions.
const unsigned int m_numBits
Definition CscCalcPed.h:107
StatusCode execute(void)
StatusCode calOutput1()
StatusCode finalize(void)
StatusCode calculateParameters()
Finalize functions.
DataVector< TH1F > * m_bitCorrelation
Definition CscCalcPed.h:120
StatusCode storeGateRecord()
CscCalibResultCollection * m_f001s
Definition CscCalcPed.h:126
DataVector< DataVector< TH1I > > * m_sampHists
Definition CscCalcPed.h:117
std::string m_onlineDbFile
filename for file with online database information
Definition CscCalcPed.h:100
DataVector< TH1I > * m_bitHists
Definition CscCalcPed.h:118
unsigned int m_maxStripHash
Internally global variables.
Definition CscCalcPed.h:103
void onlineToOfflineHashId(const unsigned int &onlineId, unsigned int &hashId) const
CscCalcPed(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode collectEventInfo()
event loop functions
std::vector< int > m_onlineThresholdFailureCount
Definition CscCalcPed.h:122
std::vector< int > m_onlineThresholds
Definition CscCalcPed.h:121
std::string m_calOutputVersion
Definition CscCalcPed.h:92
std::string m_titlePrefix
Definition CscCalcPed.h:91
StatusCode calOutput3()
void outputParameter3(const CscCalibResultCollection &results, std::ofstream &out)
CscCalibResultCollection * m_onlineTHoldBreaches
Definition CscCalcPed.h:127
StatusCode writeCalibrationFile()
dataType GetMinMax(std::vector< dataType > &vec)
Definition CscCalcPed.h:74
SG::ReadCondHandleKey< CscCondDbData > m_readKey
Definition CscCalcPed.h:86
StatusCode calOutput0()
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
Definition CscCalcPed.h:85
unsigned int m_ampHistLowBound
Definition CscCalcPed.h:105
CscCalibResultCollection * m_rmses
Definition CscCalcPed.h:125
std::string m_cmt_parameter
Definition CscCalcPed.h:132
std::string m_outputFileName
Parameters input through joboptions.
Definition CscCalcPed.h:90
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.