ATLAS Offline Software
CscCalcSlope.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 CSCCALCSLOPE_H
6 #define CSCCALCSLOPE_H
7 
15 #include "GaudiKernel/ServiceHandle.h"
16 #include "GaudiKernel/ToolHandle.h"
17 
23 #include "BipolarFit.h"
24 
25 #include "TGraph.h"
26 #include "TH1I.h"
27 
28 #include <vector>
29 #include <string>
30 #include <map>
31 #include <set>
32 
33 class TProfile;
34 class ICscCalibTool;
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*/
82  ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this,"CscRDODecoder","Muon::CscRDO_Decoder"};
83  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
84  IChronoStatSvc* m_chronoSvc;
85  SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};
86 
88  std::string m_outputFileName;
89  std::string m_calOutputVersion;
90 
91  double m_minDeltaAdc;
92 
96 
99  unsigned int m_maxStripHash;
101 
105  std::vector<float> * m_fitReturns;
106 
107  TGraph * m_resGraph;
110  std::map<int, TProfile*> * m_ampProfs;
111  std::set<int> * m_pulsedChambers;
112 
115 
117 
118 
119  //Temporary for testing:
122  double * m_crossTalkFix;
124  std::vector<float> m_dbLevels;
125 
126  float *m_peds, *m_noises;
127  StatusCode fillBitHist(TH1I * bitHist, const uint16_t & val);
128  bool m_pedFile;
129  std::string m_pedFileName;
130 
132 
133  std::string m_calFitFunc;
134 
135  //For peaking time
139 
140  //allows linear ploting
142 
143  //String command to allow interface to patched version
144  std::string m_cmd_parameters;
145 
146  //Number of bits
147  unsigned int m_numBits;
148  };//end class CscCalcSlope
149 
151  {
152  if(!bitHist)
153  return StatusCode::RECOVERABLE;
154 
155  //Num bits should always be m_numBits
156  std::bitset<12> bitVal(val);
157 
158  for(unsigned int bitIndex = 0; bitIndex < m_numBits; bitIndex++){
159  if(bitVal[bitIndex]){
160  bitHist->Fill(bitIndex);
161  }
162  }
163 
164 
165  return StatusCode::SUCCESS;
166  }
167 
168 }//end namespace:
169 
170 #endif
MuonCalib::CscCalcSlope::storeGateRecord
StatusCode storeGateRecord()
Definition: CscCalcSlope.cxx:867
ICSC_RDO_Decoder.h
MuonCalib::CscCalcSlope::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: CscCalcSlope.h:83
MuonCalib::CscCalcSlope::m_chronoSvc
IChronoStatSvc * m_chronoSvc
Definition: CscCalcSlope.h:84
MuonCalib::CscCalcSlope::m_outputFileName
std::string m_outputFileName
Parameters input through joboptions.
Definition: CscCalcSlope.h:88
MuonCalib::CscCalcSlope::CscCalcSlope
CscCalcSlope(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CscCalcSlope.cxx:31
MuonCalib::CscCalcSlope::calShape
double calShape(double *x, double *par)
MuonCalib::CscCalcSlope::execute
StatusCode execute(void)
Definition: CscCalcSlope.cxx:261
MuonCalib::CscCalcSlope::calculateParameters
StatusCode calculateParameters()
Finalize functions.
Definition: CscCalcSlope.cxx:534
MuonCalib::CscCalcSlope::fillBitHist
StatusCode fillBitHist(TH1I *bitHist, const uint16_t &val)
Definition: CscCalcSlope.h:150
MuonCalib::CscCalcSlope::m_pulsedChambers
std::set< int > * m_pulsedChambers
Definition: CscCalcSlope.h:111
MuonCalib::CscCalcSlope::m_dbLevels
std::vector< float > m_dbLevels
Definition: CscCalcSlope.h:124
MuonCalib::CscCalcSlope
does calibration of the CSC chambers
Definition: CscCalcSlope.h:52
MuonCalib::CscCalcSlope::~CscCalcSlope
~CscCalcSlope()=default
TH1I
Definition: rootspy.cxx:332
MuonCalib::CscCalcSlope::calOutput0
StatusCode calOutput0()
Definition: CscCalcSlope.cxx:791
MuonCalib::CscCalcSlope::outputParameter3
void outputParameter3(const CscCalibResultCollection &results, std::ofstream &out)
Definition: CscCalcSlope.cxx:941
CscCondDbData.h
MuonCalib::CscCalcSlope::m_cscCalibTool
ICscCalibTool * m_cscCalibTool
Definition: CscCalcSlope.h:81
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
MuonCalib::CscCalcSlope::makeCalibPoints
StatusCode makeCalibPoints()
Utility functions.
MuonCalib::CscCalcSlope::writeCalibrationFile
StatusCode writeCalibrationFile()
Definition: CscCalcSlope.cxx:774
MuonCalib::CscCalcSlope::m_expectedChamberLayer
int m_expectedChamberLayer
Definition: CscCalcSlope.h:131
MuonCalib::CscCalcSlope::m_findPeakTime
bool m_findPeakTime
Definition: CscCalcSlope.h:136
MuonCalib::CscCalcSlope::m_peakTimes
CscCalibResultCollection * m_peakTimes
Definition: CscCalcSlope.h:138
MuonCalib::CscCalcSlope::m_intercepts
CscCalibResultCollection * m_intercepts
Definition: CscCalcSlope.h:116
x
#define x
MuonCalib::CscCalcSlope::m_fitReturns
std::vector< float > * m_fitReturns
Definition: CscCalcSlope.h:105
MuonCalib::CscCalcSlope::m_lastPulserLevel
int m_lastPulserLevel
Definition: CscCalcSlope.h:100
MuonCalib::CscCalcSlope::m_peds
float * m_peds
Definition: CscCalcSlope.h:126
AthAlgorithm.h
MuonCalib::CscCalcSlope::m_bipolarFit
BipolarFit m_bipolarFit
Definition: CscCalcSlope.h:120
MuonCalib::CscCalcSlope::m_fracGraphs
DataVector< DataVector< TGraph > > * m_fracGraphs
Definition: CscCalcSlope.h:103
MuonCalib::CscCalcSlope::m_calFitFunc
std::string m_calFitFunc
Definition: CscCalcSlope.h:133
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
MuonCalib::CscCalcSlope::m_pedFileName
std::string m_pedFileName
Definition: CscCalcSlope.h:129
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
MuonCalib::CscCalcSlope::m_slopes
CscCalibResultCollection * m_slopes
Definition: CscCalcSlope.h:116
MuonCalib::CscCalcSlope::m_doBipolarFit
bool m_doBipolarFit
Definition: CscCalcSlope.h:121
MuonCalib::CscCalcSlope::collectEventInfo
StatusCode collectEventInfo()
event loop functions
Definition: CscCalcSlope.cxx:321
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:104
MuonCalib::CscCalcSlope::m_numBits
unsigned int m_numBits
Definition: CscCalcSlope.h:147
MuonCalib::CscCalcSlope::m_peakTimeProf
TProfile * m_peakTimeProf
Definition: CscCalcSlope.h:137
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:89
BipolarFit
Definition: BipolarFit.h:24
MuonCalib::CscCalcSlope::m_dumpAllHists
bool m_dumpAllHists
Definition: CscCalcSlope.h:93
BipolarFit.h
ICscCalibTool
Definition: ICscCalibTool.h:24
MuonCalib::CscCalcSlope::calOutput3
StatusCode calOutput3()
Definition: CscCalcSlope.cxx:921
MuonCalib::CscCalcSlope::m_cmd_parameters
std::string m_cmd_parameters
Definition: CscCalcSlope.h:144
MuonCalib::CscCalcSlope::m_noises
float * m_noises
Definition: CscCalcSlope.h:126
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
MuonCalib::CscCalcSlope::m_storeGate
StoreGateSvc * m_storeGate
Services and tools.
Definition: CscCalcSlope.h:80
MuonCalib::CscCalcSlope::m_doCrossTalkFix
bool m_doCrossTalkFix
Definition: CscCalcSlope.h:123
MuonCalib::CscCalcSlope::m_resGraph
TGraph * m_resGraph
Definition: CscCalcSlope.h:107
CscCalibResultCollection.h
AthAlgorithm
Definition: AthAlgorithm.h:47
MuonCalib::CscCalcSlope::initialize
StatusCode initialize(void)
basic required functions
Definition: CscCalcSlope.cxx:124
MuonCalib::CscCalcSlope::m_fracProfs
DataVector< DataVector< TProfile > > * m_fracProfs
Definition: CscCalcSlope.h:102
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
MuonCalib::CscCalcSlope::m_titlePrefix
std::string m_titlePrefix
Definition: CscCalcSlope.h:97
MuonCalib::CscCalcSlope::m_readKey
SG::ReadCondHandleKey< CscCondDbData > m_readKey
Definition: CscCalcSlope.h:85
TProfile
Definition: rootspy.cxx:515
python.ami.results
def results
Definition: ami.py:386
MuonCalib::CscCalcSlope::m_cscRdoDecoderTool
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
Definition: CscCalcSlope.h:82
SG::ReadCondHandleKey< CscCondDbData >
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
CscCalibResultCollection
Definition: CscCalibResultCollection.h:24
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
MuonCalib::CscCalcSlope::m_doLinPlot
bool m_doLinPlot
Definition: CscCalcSlope.h:141
MuonCalib::CscCalcSlope::m_currentAmpProf
TProfile * m_currentAmpProf
Definition: CscCalcSlope.h:109
MuonCalib::CscCalcSlope::m_ignoreDatabaseError
bool m_ignoreDatabaseError
Definition: CscCalcSlope.h:94
MuonCalib::CscCalcSlope::m_minDeltaAdc
double m_minDeltaAdc
Definition: CscCalcSlope.h:91
MuonCalib::CscCalcSlope::finalize
StatusCode finalize(void)
Definition: CscCalcSlope.cxx:276
MuonCalib::CscCalcSlope::m_titlePostfix
std::string m_titlePostfix
Definition: CscCalcSlope.h:97
MuonCalib::CscCalcSlope::m_crossTalkFix
double * m_crossTalkFix
Definition: CscCalcSlope.h:122
MuonCalib::CscCalcSlope::m_maxStripHash
unsigned int m_maxStripHash
Internally global variables.
Definition: CscCalcSlope.h:99
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:114
MuonCalib::CscCalcSlope::m_calGraphs
DataVector< TGraphErrors > * m_calGraphs
Definition: CscCalcSlope.h:108
IMuonIdHelperSvc.h
MuonCalib::CscCalcSlope::m_pedFile
bool m_pedFile
Definition: CscCalcSlope.h:128
MuonCalib::CscCalcSlope::m_doBitHists
bool m_doBitHists
Definition: CscCalcSlope.h:95
ServiceHandle< Muon::IMuonIdHelperSvc >
MuonCalib::CscCalcSlope::m_ampProfs
std::map< int, TProfile * > * m_ampProfs
Definition: CscCalcSlope.h:110