ATLAS Offline Software
CscCalcSlope.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CSCCALCSLOPE_H
6 #define CSCCALCSLOPE_H
7 
15 #include "GaudiKernel/ServiceHandle.h"
16 #include "GaudiKernel/ToolHandle.h"
17 
24 #include "BipolarFit.h"
25 
26 #include "TGraph.h"
27 #include "TH1I.h"
28 
29 #include <array>
30 #include <vector>
31 #include <string>
32 #include <map>
33 #include <set>
34 
35 class TProfile;
36 class TGraphErrors;
37 
38 namespace MuonCalib{
52  class CscCalcSlope: public AthAlgorithm
53  {
54  public:
55  CscCalcSlope(const std::string& name, ISvcLocator* pSvcLocator);
56  ~CscCalcSlope()=default;
57 
59  StatusCode initialize(void);
60  StatusCode execute(void);
61  StatusCode finalize(void);
62 
63  private:
64 
73  double calShape(double *x, double * par);
76  void outputParameter3(const CscCalibResultCollection & results, std::ofstream & out);
77 
79  ToolHandle<ICscCalibTool> m_cscCalibTool{this, "CscCalibTool", "CscCalibTool"};
80  ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this,"CscRDODecoder","Muon::CscRDO_Decoder"};
81  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
82  SmartIF<IChronoStatSvc> m_chronoSvc;
83  SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};
84 
86  std::string m_outputFileName;
87  std::string m_calOutputVersion;
88 
89  double m_minDeltaAdc;
90 
94 
97  unsigned int m_maxStripHash;
99 
103  std::vector<float> * m_fitReturns;
104 
105  TGraph * m_resGraph;
108  std::map<int, TProfile*> * m_ampProfs;
109  std::set<int> * m_pulsedChambers;
110 
113 
115 
116 
117  //Temporary for testing:
120  std::array<double, 24> m_crossTalkFix{};
122  std::vector<float> m_dbLevels;
123 
124  float *m_peds, *m_noises;
125  StatusCode fillBitHist(TH1I * bitHist, const uint16_t & val);
126  bool m_pedFile;
127  std::string m_pedFileName;
128 
130 
131  std::string m_calFitFunc;
132 
133  //For peaking time
137 
138  //allows linear ploting
140 
141  //String command to allow interface to patched version
142  std::string m_cmd_parameters;
143 
144  //Number of bits
145  unsigned int m_numBits;
146  };//end class CscCalcSlope
147 
148  inline StatusCode CscCalcSlope::fillBitHist(TH1I * bitHist, const uint16_t & val)
149  {
150  if(!bitHist)
151  return StatusCode::RECOVERABLE;
152 
153  //Num bits should always be m_numBits
154  std::bitset<12> bitVal(val);
155 
156  for(unsigned int bitIndex = 0; bitIndex < m_numBits; bitIndex++){
157  if(bitVal[bitIndex]){
158  bitHist->Fill(bitIndex);
159  }
160  }
161 
162 
163  return StatusCode::SUCCESS;
164  }
165 
166 }//end namespace:
167 
168 #endif
MuonCalib::CscCalcSlope::storeGateRecord
StatusCode storeGateRecord()
Definition: CscCalcSlope.cxx:853
ICSC_RDO_Decoder.h
MuonCalib::CscCalcSlope::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: CscCalcSlope.h:81
MuonCalib::CscCalcSlope::m_outputFileName
std::string m_outputFileName
Parameters input through joboptions.
Definition: CscCalcSlope.h:86
MuonCalib::CscCalcSlope::CscCalcSlope
CscCalcSlope(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CscCalcSlope.cxx:27
MuonCalib::CscCalcSlope::calShape
double calShape(double *x, double *par)
MuonCalib::CscCalcSlope::execute
StatusCode execute(void)
Definition: CscCalcSlope.cxx:248
MuonCalib::CscCalcSlope::calculateParameters
StatusCode calculateParameters()
Finalize functions.
Definition: CscCalcSlope.cxx:520
MuonCalib::CscCalcSlope::fillBitHist
StatusCode fillBitHist(TH1I *bitHist, const uint16_t &val)
Definition: CscCalcSlope.h:148
MuonCalib::CscCalcSlope::m_pulsedChambers
std::set< int > * m_pulsedChambers
Definition: CscCalcSlope.h:109
MuonCalib::CscCalcSlope::m_dbLevels
std::vector< float > m_dbLevels
Definition: CscCalcSlope.h:122
MuonCalib::CscCalcSlope
does calibration of the CSC chambers
Definition: CscCalcSlope.h:53
MuonCalib::CscCalcSlope::~CscCalcSlope
~CscCalcSlope()=default
MuonCalib::CscCalcSlope::calOutput0
StatusCode calOutput0()
Definition: CscCalcSlope.cxx:777
MuonCalib::CscCalcSlope::outputParameter3
void outputParameter3(const CscCalibResultCollection &results, std::ofstream &out)
Definition: CscCalcSlope.cxx:927
CscCondDbData.h
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
MuonCalib::CscCalcSlope::makeCalibPoints
StatusCode makeCalibPoints()
Utility functions.
MuonCalib::CscCalcSlope::writeCalibrationFile
StatusCode writeCalibrationFile()
Definition: CscCalcSlope.cxx:760
MuonCalib::CscCalcSlope::m_expectedChamberLayer
int m_expectedChamberLayer
Definition: CscCalcSlope.h:129
MuonCalib::CscCalcSlope::m_findPeakTime
bool m_findPeakTime
Definition: CscCalcSlope.h:134
MuonCalib::CscCalcSlope::m_peakTimes
CscCalibResultCollection * m_peakTimes
Definition: CscCalcSlope.h:136
ICscCalibTool.h
MuonCalib::CscCalcSlope::m_intercepts
CscCalibResultCollection * m_intercepts
Definition: CscCalcSlope.h:114
x
#define x
MuonCalib::CscCalcSlope::m_fitReturns
std::vector< float > * m_fitReturns
Definition: CscCalcSlope.h:103
MuonCalib::CscCalcSlope::m_lastPulserLevel
int m_lastPulserLevel
Definition: CscCalcSlope.h:98
MuonCalib::CscCalcSlope::m_peds
float * m_peds
Definition: CscCalcSlope.h:124
AthAlgorithm.h
MuonCalib::CscCalcSlope::m_bipolarFit
BipolarFit m_bipolarFit
Definition: CscCalcSlope.h:118
MuonCalib::CscCalcSlope::m_fracGraphs
DataVector< DataVector< TGraph > > * m_fracGraphs
Definition: CscCalcSlope.h:101
MuonCalib::CscCalcSlope::m_calFitFunc
std::string m_calFitFunc
Definition: CscCalcSlope.h:131
MuonCalib::CscCalcSlope::m_chronoSvc
SmartIF< IChronoStatSvc > m_chronoSvc
Definition: CscCalcSlope.h:82
MuonCalib::CscCalcSlope::m_pedFileName
std::string m_pedFileName
Definition: CscCalcSlope.h:127
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
MuonCalib::CscCalcSlope::m_slopes
CscCalibResultCollection * m_slopes
Definition: CscCalcSlope.h:114
MuonCalib::CscCalcSlope::m_doBipolarFit
bool m_doBipolarFit
Definition: CscCalcSlope.h:119
MuonCalib::CscCalcSlope::collectEventInfo
StatusCode collectEventInfo()
event loop functions
Definition: CscCalcSlope.cxx:307
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonCalib::CscCalcSlope::m_bitHists
DataVector< TH1I > * m_bitHists
Definition: CscCalcSlope.h:102
MuonCalib::CscCalcSlope::m_numBits
unsigned int m_numBits
Definition: CscCalcSlope.h:145
MuonCalib::CscCalcSlope::m_peakTimeProf
TProfile * m_peakTimeProf
Definition: CscCalcSlope.h:135
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
MuonCalib::CscCalcSlope::m_calOutputVersion
std::string m_calOutputVersion
Definition: CscCalcSlope.h:87
BipolarFit
Definition: BipolarFit.h:24
MuonCalib::CscCalcSlope::m_dumpAllHists
bool m_dumpAllHists
Definition: CscCalcSlope.h:91
BipolarFit.h
add-xsec-uncert-quadrature-N.results
dictionary results
Definition: add-xsec-uncert-quadrature-N.py:39
MuonCalib::CscCalcSlope::calOutput3
StatusCode calOutput3()
Definition: CscCalcSlope.cxx:907
MuonCalib::CscCalcSlope::m_cmd_parameters
std::string m_cmd_parameters
Definition: CscCalcSlope.h:142
MuonCalib::CscCalcSlope::m_noises
float * m_noises
Definition: CscCalcSlope.h:124
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
MuonCalib::CscCalcSlope::m_doCrossTalkFix
bool m_doCrossTalkFix
Definition: CscCalcSlope.h:121
MuonCalib::CscCalcSlope::m_resGraph
TGraph * m_resGraph
Definition: CscCalcSlope.h:105
CscCalibResultCollection.h
AthAlgorithm
Definition: AthAlgorithm.h:47
MuonCalib::CscCalcSlope::initialize
StatusCode initialize(void)
basic required functions
Definition: CscCalcSlope.cxx:116
MuonCalib::CscCalcSlope::m_crossTalkFix
std::array< double, 24 > m_crossTalkFix
Definition: CscCalcSlope.h:120
MuonCalib::CscCalcSlope::m_fracProfs
DataVector< DataVector< TProfile > > * m_fracProfs
Definition: CscCalcSlope.h:100
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:28
MuonCalib::CscCalcSlope::m_titlePrefix
std::string m_titlePrefix
Definition: CscCalcSlope.h:95
MuonCalib::CscCalcSlope::m_readKey
SG::ReadCondHandleKey< CscCondDbData > m_readKey
Definition: CscCalcSlope.h:83
MuonCalib::CscCalcSlope::m_cscRdoDecoderTool
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
Definition: CscCalcSlope.h:80
SG::ReadCondHandleKey< CscCondDbData >
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
MuonCalib::CscCalcSlope::m_cscCalibTool
ToolHandle< ICscCalibTool > m_cscCalibTool
Services and tools.
Definition: CscCalcSlope.h:79
CscCalibResultCollection
Definition: CscCalibResultCollection.h:24
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
MuonCalib::CscCalcSlope::m_doLinPlot
bool m_doLinPlot
Definition: CscCalcSlope.h:139
MuonCalib::CscCalcSlope::m_currentAmpProf
TProfile * m_currentAmpProf
Definition: CscCalcSlope.h:107
MuonCalib::CscCalcSlope::m_ignoreDatabaseError
bool m_ignoreDatabaseError
Definition: CscCalcSlope.h:92
MuonCalib::CscCalcSlope::m_minDeltaAdc
double m_minDeltaAdc
Definition: CscCalcSlope.h:89
MuonCalib::CscCalcSlope::finalize
StatusCode finalize(void)
Definition: CscCalcSlope.cxx:263
MuonCalib::CscCalcSlope::m_titlePostfix
std::string m_titlePostfix
Definition: CscCalcSlope.h:95
MuonCalib::CscCalcSlope::m_maxStripHash
unsigned int m_maxStripHash
Internally global variables.
Definition: CscCalcSlope.h:97
MuonCalib::CscCalcSlope::m_eventCnt
int m_eventCnt
coherent correction array has the corrections to the coherently pulsed channels to get the basic chan...
Definition: CscCalcSlope.h:112
MuonCalib::CscCalcSlope::m_calGraphs
DataVector< TGraphErrors > * m_calGraphs
Definition: CscCalcSlope.h:106
IMuonIdHelperSvc.h
MuonCalib::CscCalcSlope::m_pedFile
bool m_pedFile
Definition: CscCalcSlope.h:126
MuonCalib::CscCalcSlope::m_doBitHists
bool m_doBitHists
Definition: CscCalcSlope.h:93
ServiceHandle< Muon::IMuonIdHelperSvc >
MuonCalib::CscCalcSlope::m_ampProfs
std::map< int, TProfile * > * m_ampProfs
Definition: CscCalcSlope.h:108