ATLAS Offline Software
CscCalcSlope.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 <vector>
30 #include <string>
31 #include <map>
32 #include <set>
33 
34 class TProfile;
35 class TGraphErrors;
36 
37 namespace MuonCalib{
51  class CscCalcSlope: public AthAlgorithm
52  {
53  public:
54  CscCalcSlope(const std::string& name, ISvcLocator* pSvcLocator);
55  ~CscCalcSlope()=default;
56 
58  StatusCode initialize(void);
59  StatusCode execute(void);
60  StatusCode finalize(void);
61 
62  private:
63 
64  /***********Private member functions*/
73  double calShape(double *x, double * par);
76  void outputParameter3(const CscCalibResultCollection & results, std::ofstream & out);
77 
78  /*********Private member variables*/
80  ToolHandle<ICscCalibTool> m_cscCalibTool{this, "CscCalibTool", "CscCalibTool"};
81  ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this,"CscRDODecoder","Muon::CscRDO_Decoder"};
82  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
83  SmartIF<IChronoStatSvc> m_chronoSvc;
84  SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};
85 
87  std::string m_outputFileName;
88  std::string m_calOutputVersion;
89 
90  double m_minDeltaAdc;
91 
95 
98  unsigned int m_maxStripHash;
100 
104  std::vector<float> * m_fitReturns;
105 
106  TGraph * m_resGraph;
109  std::map<int, TProfile*> * m_ampProfs;
110  std::set<int> * m_pulsedChambers;
111 
114 
116 
117 
118  //Temporary for testing:
121  double * m_crossTalkFix;
123  std::vector<float> m_dbLevels;
124 
125  float *m_peds, *m_noises;
126  StatusCode fillBitHist(TH1I * bitHist, const uint16_t & val);
127  bool m_pedFile;
128  std::string m_pedFileName;
129 
131 
132  std::string m_calFitFunc;
133 
134  //For peaking time
138 
139  //allows linear ploting
141 
142  //String command to allow interface to patched version
143  std::string m_cmd_parameters;
144 
145  //Number of bits
146  unsigned int m_numBits;
147  };//end class CscCalcSlope
148 
149  inline StatusCode CscCalcSlope::fillBitHist(TH1I * bitHist, const uint16_t & val)
150  {
151  if(!bitHist)
152  return StatusCode::RECOVERABLE;
153 
154  //Num bits should always be m_numBits
155  std::bitset<12> bitVal(val);
156 
157  for(unsigned int bitIndex = 0; bitIndex < m_numBits; bitIndex++){
158  if(bitVal[bitIndex]){
159  bitHist->Fill(bitIndex);
160  }
161  }
162 
163 
164  return StatusCode::SUCCESS;
165  }
166 
167 }//end namespace:
168 
169 #endif
MuonCalib::CscCalcSlope::storeGateRecord
StatusCode storeGateRecord()
Definition: CscCalcSlope.cxx:858
ICSC_RDO_Decoder.h
MuonCalib::CscCalcSlope::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: CscCalcSlope.h:82
MuonCalib::CscCalcSlope::m_outputFileName
std::string m_outputFileName
Parameters input through joboptions.
Definition: CscCalcSlope.h:87
MuonCalib::CscCalcSlope::CscCalcSlope
CscCalcSlope(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CscCalcSlope.cxx:30
MuonCalib::CscCalcSlope::calShape
double calShape(double *x, double *par)
MuonCalib::CscCalcSlope::execute
StatusCode execute(void)
Definition: CscCalcSlope.cxx:252
MuonCalib::CscCalcSlope::calculateParameters
StatusCode calculateParameters()
Finalize functions.
Definition: CscCalcSlope.cxx:525
MuonCalib::CscCalcSlope::fillBitHist
StatusCode fillBitHist(TH1I *bitHist, const uint16_t &val)
Definition: CscCalcSlope.h:149
MuonCalib::CscCalcSlope::m_pulsedChambers
std::set< int > * m_pulsedChambers
Definition: CscCalcSlope.h:110
MuonCalib::CscCalcSlope::m_dbLevels
std::vector< float > m_dbLevels
Definition: CscCalcSlope.h:123
MuonCalib::CscCalcSlope
does calibration of the CSC chambers
Definition: CscCalcSlope.h:52
MuonCalib::CscCalcSlope::~CscCalcSlope
~CscCalcSlope()=default
MuonCalib::CscCalcSlope::calOutput0
StatusCode calOutput0()
Definition: CscCalcSlope.cxx:782
MuonCalib::CscCalcSlope::outputParameter3
void outputParameter3(const CscCalibResultCollection &results, std::ofstream &out)
Definition: CscCalcSlope.cxx:932
CscCondDbData.h
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
MuonCalib::CscCalcSlope::makeCalibPoints
StatusCode makeCalibPoints()
Utility functions.
MuonCalib::CscCalcSlope::writeCalibrationFile
StatusCode writeCalibrationFile()
Definition: CscCalcSlope.cxx:765
MuonCalib::CscCalcSlope::m_expectedChamberLayer
int m_expectedChamberLayer
Definition: CscCalcSlope.h:130
MuonCalib::CscCalcSlope::m_findPeakTime
bool m_findPeakTime
Definition: CscCalcSlope.h:135
MuonCalib::CscCalcSlope::m_peakTimes
CscCalibResultCollection * m_peakTimes
Definition: CscCalcSlope.h:137
ICscCalibTool.h
MuonCalib::CscCalcSlope::m_intercepts
CscCalibResultCollection * m_intercepts
Definition: CscCalcSlope.h:115
x
#define x
MuonCalib::CscCalcSlope::m_fitReturns
std::vector< float > * m_fitReturns
Definition: CscCalcSlope.h:104
MuonCalib::CscCalcSlope::m_lastPulserLevel
int m_lastPulserLevel
Definition: CscCalcSlope.h:99
MuonCalib::CscCalcSlope::m_peds
float * m_peds
Definition: CscCalcSlope.h:125
AthAlgorithm.h
MuonCalib::CscCalcSlope::m_bipolarFit
BipolarFit m_bipolarFit
Definition: CscCalcSlope.h:119
MuonCalib::CscCalcSlope::m_fracGraphs
DataVector< DataVector< TGraph > > * m_fracGraphs
Definition: CscCalcSlope.h:102
MuonCalib::CscCalcSlope::m_calFitFunc
std::string m_calFitFunc
Definition: CscCalcSlope.h:132
MuonCalib::CscCalcSlope::m_chronoSvc
SmartIF< IChronoStatSvc > m_chronoSvc
Definition: CscCalcSlope.h:83
MuonCalib::CscCalcSlope::m_pedFileName
std::string m_pedFileName
Definition: CscCalcSlope.h:128
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:115
MuonCalib::CscCalcSlope::m_doBipolarFit
bool m_doBipolarFit
Definition: CscCalcSlope.h:120
MuonCalib::CscCalcSlope::collectEventInfo
StatusCode collectEventInfo()
event loop functions
Definition: CscCalcSlope.cxx:312
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:103
MuonCalib::CscCalcSlope::m_numBits
unsigned int m_numBits
Definition: CscCalcSlope.h:146
MuonCalib::CscCalcSlope::m_peakTimeProf
TProfile * m_peakTimeProf
Definition: CscCalcSlope.h:136
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:88
BipolarFit
Definition: BipolarFit.h:24
MuonCalib::CscCalcSlope::m_dumpAllHists
bool m_dumpAllHists
Definition: CscCalcSlope.h:92
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:912
MuonCalib::CscCalcSlope::m_cmd_parameters
std::string m_cmd_parameters
Definition: CscCalcSlope.h:143
MuonCalib::CscCalcSlope::m_noises
float * m_noises
Definition: CscCalcSlope.h:125
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
MuonCalib::CscCalcSlope::m_doCrossTalkFix
bool m_doCrossTalkFix
Definition: CscCalcSlope.h:122
MuonCalib::CscCalcSlope::m_resGraph
TGraph * m_resGraph
Definition: CscCalcSlope.h:106
CscCalibResultCollection.h
AthAlgorithm
Definition: AthAlgorithm.h:47
MuonCalib::CscCalcSlope::initialize
StatusCode initialize(void)
basic required functions
Definition: CscCalcSlope.cxx:120
MuonCalib::CscCalcSlope::m_fracProfs
DataVector< DataVector< TProfile > > * m_fracProfs
Definition: CscCalcSlope.h:101
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
MuonCalib::CscCalcSlope::m_titlePrefix
std::string m_titlePrefix
Definition: CscCalcSlope.h:96
MuonCalib::CscCalcSlope::m_readKey
SG::ReadCondHandleKey< CscCondDbData > m_readKey
Definition: CscCalcSlope.h:84
MuonCalib::CscCalcSlope::m_cscRdoDecoderTool
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
Definition: CscCalcSlope.h:81
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:80
CscCalibResultCollection
Definition: CscCalibResultCollection.h:24
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
MuonCalib::CscCalcSlope::m_doLinPlot
bool m_doLinPlot
Definition: CscCalcSlope.h:140
MuonCalib::CscCalcSlope::m_currentAmpProf
TProfile * m_currentAmpProf
Definition: CscCalcSlope.h:108
MuonCalib::CscCalcSlope::m_ignoreDatabaseError
bool m_ignoreDatabaseError
Definition: CscCalcSlope.h:93
MuonCalib::CscCalcSlope::m_minDeltaAdc
double m_minDeltaAdc
Definition: CscCalcSlope.h:90
MuonCalib::CscCalcSlope::finalize
StatusCode finalize(void)
Definition: CscCalcSlope.cxx:267
MuonCalib::CscCalcSlope::m_titlePostfix
std::string m_titlePostfix
Definition: CscCalcSlope.h:96
MuonCalib::CscCalcSlope::m_crossTalkFix
double * m_crossTalkFix
Definition: CscCalcSlope.h:121
MuonCalib::CscCalcSlope::m_maxStripHash
unsigned int m_maxStripHash
Internally global variables.
Definition: CscCalcSlope.h:98
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:113
MuonCalib::CscCalcSlope::m_calGraphs
DataVector< TGraphErrors > * m_calGraphs
Definition: CscCalcSlope.h:107
IMuonIdHelperSvc.h
MuonCalib::CscCalcSlope::m_pedFile
bool m_pedFile
Definition: CscCalcSlope.h:127
MuonCalib::CscCalcSlope::m_doBitHists
bool m_doBitHists
Definition: CscCalcSlope.h:94
ServiceHandle< Muon::IMuonIdHelperSvc >
MuonCalib::CscCalcSlope::m_ampProfs
std::map< int, TProfile * > * m_ampProfs
Definition: CscCalcSlope.h:109