![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
does calibration of the CSC chambers
More...
#include <CscCalcSlope.h>
|
| CscCalcSlope (const std::string &name, ISvcLocator *pSvcLocator) |
|
| ~CscCalcSlope ()=default |
|
StatusCode | initialize (void) |
| basic required functions More...
|
|
StatusCode | execute (void) |
|
StatusCode | finalize (void) |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
does calibration of the CSC chambers
- Author
- lampe.nosp@m.n@ph.nosp@m.ysics.nosp@m..ari.nosp@m.zona..nosp@m.edu
Description
CscCalcSlope is an algorithm that cycles through calibration events and generates the calibration constants. A root file is also generated where the user can view the validity of the constants.
Definition at line 51 of file CscCalcSlope.h.
◆ StoreGateSvc_t
◆ CscCalcSlope()
MuonCalib::CscCalcSlope::CscCalcSlope |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~CscCalcSlope()
MuonCalib::CscCalcSlope::~CscCalcSlope |
( |
| ) |
|
|
default |
◆ calculateParameters()
StatusCode MuonCalib::CscCalcSlope::calculateParameters |
( |
| ) |
|
|
private |
Finalize functions.
Definition at line 534 of file CscCalcSlope.cxx.
542 return StatusCode::FAILURE;
544 unsigned int numCalibPoints =
m_ampProfs->size();
545 ATH_MSG_INFO(
"There are " << numCalibPoints <<
" pulser levels to evaluate.");
549 float chargeMax = 530.88;
551 int crossTalkCnt = 0;
553 for(
unsigned int stripHash = 0 ;stripHash <=
m_maxStripHash; stripHash++)
566 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(
id);
567 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
595 if(orientation !=
'X')
599 bool foundMin(
false);
607 TGraphErrors * calGraph =
new TGraphErrors(numCalibPoints);
608 char calName[20],titleSeed[500];
609 sprintf(calName,
"calGraph%u",stripHash);
610 sprintf(titleSeed,
"Calgraph for eta %d, sector %d, layer %d%c, strip %d",
stationEta,(2*
stationPhi+50 -
stationName),wireLayer,orientation, stripNumber);
611 calGraph->SetName(calName);
613 calGraph->SetTitle(
title.c_str());
614 calGraph->GetYaxis()->SetTitle(
"ADC counts");
615 calGraph->GetXaxis()->SetTitle(
"Attenuation (-db)");
619 bool isGoodStrip =
false;
625 for(
const auto & [pulserLevel, pAmplitudeProfile] : *
m_ampProfs)
627 if(!pAmplitudeProfile){
629 return StatusCode::FAILURE;
634 if(pAmplitudeProfile->GetBinEntries(stripHash+1))
642 float adcValue = pAmplitudeProfile->GetBinContent(stripHash+1);
643 float adcError = pAmplitudeProfile->GetBinError(stripHash+1);
650 if(adcError != adcError)
662 ATH_MSG_DEBUG(
"\tStoring at db of " <<
db <<
" with attenValue " << attenValue <<
" from pulser level of " << pulserLevel <<
" and adcValue " << adcValue);
668 thisDrop = lastVal - adcValue;
670 <<
"\tlastVal = " << lastVal
671 <<
";lastDrop " << lastDrop <<
"; thisDrop " << thisDrop);
675 fitMinX = attenValue;
685 if(attenValue > fitMaxX)
686 fitMaxX = attenValue;
688 calGraph->SetPoint(calPointItr,attenValue,adcValue);
689 calGraph->SetPointError(calPointItr,0.01,adcError);
695 if(!foundMin && isGoodStrip){
703 ATH_MSG_INFO(
"we have a good stripHash at " << stripHash);
707 float slope, slopeError, intercept, interceptError,
chiSquared;
712 TF1 myFunc(
"myFunction",
m_calFitFunc.c_str(), fitMinX, fitMaxX);
713 myFunc.SetLineColor(kRed);
716 myFunc.SetParameters(0,5);
717 slope = myFunc.GetParameter(1);
718 slopeError = myFunc.GetParError(1);
719 intercept = myFunc.GetParameter(0);
720 interceptError = myFunc.GetParError(0);
722 ndf = myFunc.GetNDF();
726 myFunc.SetParameters(0.1,2000);
728 fitRet = calGraph->Fit(&myFunc,
"RV");
730 slope = myFunc.GetParameter(1)/chargeMax;
731 slopeError = myFunc.GetParError(1);
732 intercept = myFunc.GetParameter(0);
733 interceptError = myFunc.GetParError(0);
735 ndf = myFunc.GetNDF();
739 if(std::abs(slope) < 0.00001 || slope == -999)
745 invertedSlope = 1/slope;
747 ATH_MSG_ERROR(
"Inserting calgraph in for hash " << stripHash);
748 (*m_calGraphs)[stripHash] = calGraph;
750 ATH_MSG_DEBUG(
"StripHash: " << stripHash <<
"; slope: " <<slope
751 <<
"; intercept: " << intercept
758 (*m_fitReturns)[stripHash] = fitRet;
763 if(crossTalkCnt == 23)
769 ATH_MSG_INFO(
"Completed calculating parameters for each strip");
770 return StatusCode::SUCCESS;
◆ calOutput0()
StatusCode MuonCalib::CscCalcSlope::calOutput0 |
( |
| ) |
|
|
private |
Definition at line 791 of file CscCalcSlope.cxx.
799 return StatusCode::FAILURE;
808 out <<
"END_HEADER\n";
823 for(; slopeItr != slopeEnd; ++slopeItr)
827 ATH_MSG_FATAL(
"Peaktimes out of sync with slopes. Quiting write.");
829 return StatusCode::FAILURE;
833 out << (*slopeItr)->hashId();
838 m_idHelperSvc->cscIdHelper().get_id((*slopeItr)->hashId(),
id, &channelContext);
847 return StatusCode::FAILURE;
850 m_idHelperSvc->cscIdHelper().get_module_hash(
id,chamberHash);
851 out <<
" " << chamberHash;
857 out <<
" " << (*slopeItr)->value();
864 return StatusCode::SUCCESS;
◆ calOutput3()
StatusCode MuonCalib::CscCalcSlope::calOutput3 |
( |
| ) |
|
|
private |
Definition at line 921 of file CscCalcSlope.cxx.
927 return StatusCode::RECOVERABLE;
929 out <<
"03-00 <END_HEADER>";
932 out <<
"\n<END_FILE>";
937 return StatusCode::SUCCESS;
◆ calShape()
double MuonCalib::CscCalcSlope::calShape |
( |
double * |
x, |
|
|
double * |
par |
|
) |
| |
|
private |
◆ collectEventInfo()
StatusCode MuonCalib::CscCalcSlope::collectEventInfo |
( |
| ) |
|
|
private |
event loop functions
Definition at line 321 of file CscCalcSlope.cxx.
333 if (sc_read != StatusCode::SUCCESS)
336 return StatusCode::FAILURE;
346 for(
const auto rod:*fullRDO)
353 int pulserLevel =
rod->calAmplitude();
357 ATH_MSG_INFO(
"New pulser level found. (" << pulserLevel <<
").");
361 if(alreadyExistingProfile ==
m_ampProfs->end())
366 name <<
"ampProf_" << pulserLevel;
384 unsigned int samplingPhase =
rod->samplingPhase();
391 for(
const auto cluster: *
rod)
395 int numStrips = cluster->width();
396 int samplesPerStrip = (cluster->samples()).
size()/numStrips;
400 for(
int stripItr = 0; stripItr <numStrips; stripItr++)
404 m_idHelperSvc->cscIdHelper().get_channel_hash(stripId, cscChannelHashId);
405 int stripHash = cscChannelHashId;
408 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(stripId);
414 return StatusCode::FAILURE;
417 int currentWireLayer =
m_idHelperSvc->cscIdHelper().wireLayer(stripId) - 1;
418 if( currentWireLayer < 0 || currentWireLayer > 3)
420 ATH_MSG_FATAL(
"Problem in getting wire layer! - Current value is "
421 <<
m_idHelperSvc->cscIdHelper().wireLayer(stripId) <<
" while only values between 1-4 are allowed.");
422 return StatusCode::FAILURE;
424 bool isThisLayerPulsed = (pulsedWireLayer >> currentWireLayer)&0
x1;
425 if(isThisLayerPulsed)
429 cluster->samples(stripItr,samplesPerStrip,
samples);
440 if(!readCdo->readChannelPed(stripHash,
ped).isSuccess()){
443 else ATH_MSG_ERROR(
"Failed at getting pedestal from COOL for hash " << stripHash);
445 return StatusCode::RECOVERABLE;
450 if(!readCdo->readChannelNoise(stripHash,
noise).isSuccess())
454 else ATH_MSG_ERROR(
"Failed at getting noise from COOL for hash " << stripHash);
456 return StatusCode::FAILURE;
462 double peakAmp{}, peakTime{};
467 std::vector<float> floatSamples;
468 for(
const auto & thisSample:
samples){
470 floatSamples.push_back(thisSample-
ped);
485 double adcSamples[4];
487 double fitResult[3],fitErrors[3],
chi2;
488 double width = samplingPeriod == 50 ? 7.2:14.4;
492 peakAmp = fitResult[0];
493 peakTime = fitResult[1] - (samplingPhase ? 25 : 0);
528 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode MuonCalib::CscCalcSlope::execute |
( |
void |
| ) |
|
Definition at line 261 of file CscCalcSlope.cxx.
269 ATH_MSG_WARNING(
"There was an error collecting information from the RDO this event.");
273 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ fillBitHist()
StatusCode MuonCalib::CscCalcSlope::fillBitHist |
( |
TH1I * |
bitHist, |
|
|
const uint16_t & |
val |
|
) |
| |
|
inlineprivate |
Definition at line 150 of file CscCalcSlope.h.
153 return StatusCode::RECOVERABLE;
156 std::bitset<12> bitVal(
val);
158 for(
unsigned int bitIndex = 0; bitIndex <
m_numBits; bitIndex++){
159 if(bitVal[bitIndex]){
160 bitHist->Fill(bitIndex);
165 return StatusCode::SUCCESS;
◆ finalize()
StatusCode MuonCalib::CscCalcSlope::finalize |
( |
void |
| ) |
|
m_adcValues and/or m_allPeaktsHist
Definition at line 276 of file CscCalcSlope.cxx.
282 bool thereIsAFatal=
false;
298 thereIsAFatal =
true;
305 thereIsAFatal =
true;
314 return StatusCode::FAILURE;
316 return StatusCode::SUCCESS;
◆ initialize()
StatusCode MuonCalib::CscCalcSlope::initialize |
( |
void |
| ) |
|
basic required functions
Definition at line 124 of file CscCalcSlope.cxx.
136 IToolSvc* toolSvc=
nullptr;
148 for(
unsigned int pulserLevel=0; pulserLevel < 64; pulserLevel++)
156 const std::vector<Identifier> &
ids =
m_idHelperSvc->cscIdHelper().idVector();
160 for(
const auto & thisChamberId:
ids)
162 std::vector<Identifier> stripVect;
163 m_idHelperSvc->cscIdHelper().idChannels(thisChamberId,stripVect);
167 for(
const auto & thisStripId:stripVect)
170 m_idHelperSvc->cscIdHelper().get_channel_hash(thisStripId,stripHash);
180 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
188 char bitName[200], titleSeed[500];
190 sprintf(bitName,
"bitHist%d",(
int)stripHash);
191 sprintf(titleSeed,
"Bit histogram for eta %d, sector %d, layer %d%c strip %d",
195 hist->GetXaxis()->SetTitle(
"Bit");
196 hist->GetYaxis()->SetTitle(
"Counts");
206 for(
unsigned int chanItr =0; chanItr <=
m_maxStripHash; chanItr++)
227 if( stripHash < 0 || (
unsigned int) stripHash >
m_maxStripHash ) {
229 ATH_MSG_FATAL(
"The hash "<< (
int) stripHash <<
" is out of range for the Ped-Vector - Crashing!");
230 return StatusCode::FAILURE;
257 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ makeCalibPoints()
StatusCode MuonCalib::CscCalcSlope::makeCalibPoints |
( |
| ) |
|
|
private |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ outputParameter3()
Definition at line 941 of file CscCalcSlope.cxx.
948 out <<
"<NEW_PAR> " <<
results.parName() <<
"\n";
949 std::string idString;
953 for(; resItr != resEnd; ++resItr){
954 unsigned int hashId = (*resItr)->hashId();
955 double value = (*resItr)->value();
956 std::string idString;
958 readCdo->indexToStringId(&
m_idHelperSvc->cscIdHelper(), hashId,
"CHANNEL", idString).ignore();
960 out << idString <<
" " <<
value <<
"\n";
◆ renounce()
◆ renounceArray()
◆ storeGateRecord()
StatusCode MuonCalib::CscCalcSlope::storeGateRecord |
( |
| ) |
|
|
private |
Definition at line 867 of file CscCalcSlope.cxx.
873 bool thereIsAnError =
false;
875 std::string histKey =
"cscSlopeCalibReport";
876 ATH_MSG_DEBUG(
"Recording calibration graphs to TDS with key " << histKey);
892 ATH_MSG_ERROR(
"Failed to record CscCalibReportSlope to storegate");
893 thereIsAnError =
true;
908 thereIsAnError =
true;
914 return StatusCode::RECOVERABLE;
916 return StatusCode::SUCCESS;
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ writeCalibrationFile()
StatusCode MuonCalib::CscCalcSlope::writeCalibrationFile |
( |
| ) |
|
|
private |
◆ m_ampProfs
std::map<int, TProfile*>* MuonCalib::CscCalcSlope::m_ampProfs |
|
private |
◆ m_bipolarFit
◆ m_bitHists
◆ m_calFitFunc
std::string MuonCalib::CscCalcSlope::m_calFitFunc |
|
private |
◆ m_calGraphs
DataVector<TGraphErrors>* MuonCalib::CscCalcSlope::m_calGraphs |
|
private |
◆ m_calOutputVersion
std::string MuonCalib::CscCalcSlope::m_calOutputVersion |
|
private |
◆ m_chronoSvc
IChronoStatSvc* MuonCalib::CscCalcSlope::m_chronoSvc |
|
private |
◆ m_cmd_parameters
std::string MuonCalib::CscCalcSlope::m_cmd_parameters |
|
private |
◆ m_crossTalkFix
double* MuonCalib::CscCalcSlope::m_crossTalkFix |
|
private |
◆ m_cscCalibTool
◆ m_cscRdoDecoderTool
◆ m_currentAmpProf
TProfile* MuonCalib::CscCalcSlope::m_currentAmpProf |
|
private |
◆ m_dbLevels
std::vector<float> MuonCalib::CscCalcSlope::m_dbLevels |
|
private |
◆ m_detStore
◆ m_doBipolarFit
bool MuonCalib::CscCalcSlope::m_doBipolarFit |
|
private |
◆ m_doBitHists
bool MuonCalib::CscCalcSlope::m_doBitHists |
|
private |
◆ m_doCrossTalkFix
bool MuonCalib::CscCalcSlope::m_doCrossTalkFix |
|
private |
◆ m_doLinPlot
bool MuonCalib::CscCalcSlope::m_doLinPlot |
|
private |
◆ m_dumpAllHists
bool MuonCalib::CscCalcSlope::m_dumpAllHists |
|
private |
◆ m_eventCnt
int MuonCalib::CscCalcSlope::m_eventCnt |
|
private |
coherent correction array has the corrections to the coherently pulsed channels to get the basic channels
Definition at line 114 of file CscCalcSlope.h.
◆ m_evtStore
◆ m_expectedChamberLayer
int MuonCalib::CscCalcSlope::m_expectedChamberLayer |
|
private |
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_findPeakTime
bool MuonCalib::CscCalcSlope::m_findPeakTime |
|
private |
◆ m_fitReturns
std::vector<float>* MuonCalib::CscCalcSlope::m_fitReturns |
|
private |
◆ m_fracGraphs
◆ m_fracProfs
◆ m_idHelperSvc
◆ m_ignoreDatabaseError
bool MuonCalib::CscCalcSlope::m_ignoreDatabaseError |
|
private |
◆ m_intercepts
◆ m_lastPulserLevel
int MuonCalib::CscCalcSlope::m_lastPulserLevel |
|
private |
◆ m_maxStripHash
unsigned int MuonCalib::CscCalcSlope::m_maxStripHash |
|
private |
◆ m_minDeltaAdc
double MuonCalib::CscCalcSlope::m_minDeltaAdc |
|
private |
◆ m_noises
float * MuonCalib::CscCalcSlope::m_noises |
|
private |
◆ m_numBits
unsigned int MuonCalib::CscCalcSlope::m_numBits |
|
private |
◆ m_outputFileName
std::string MuonCalib::CscCalcSlope::m_outputFileName |
|
private |
Parameters input through joboptions.
Definition at line 88 of file CscCalcSlope.h.
◆ m_peakTimeProf
TProfile* MuonCalib::CscCalcSlope::m_peakTimeProf |
|
private |
◆ m_peakTimes
◆ m_pedFile
bool MuonCalib::CscCalcSlope::m_pedFile |
|
private |
◆ m_pedFileName
std::string MuonCalib::CscCalcSlope::m_pedFileName |
|
private |
◆ m_peds
float* MuonCalib::CscCalcSlope::m_peds |
|
private |
◆ m_pulsedChambers
std::set<int>* MuonCalib::CscCalcSlope::m_pulsedChambers |
|
private |
◆ m_readKey
◆ m_resGraph
TGraph* MuonCalib::CscCalcSlope::m_resGraph |
|
private |
◆ m_slopes
◆ m_storeGate
◆ m_titlePostfix
std::string MuonCalib::CscCalcSlope::m_titlePostfix |
|
private |
◆ m_titlePrefix
std::string MuonCalib::CscCalcSlope::m_titlePrefix |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
StatusCode record(T *p2BRegistered, const TKEY &key)
Record an object with a key.
StatusCode storeGateRecord()
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
IChronoStatSvc * m_chronoSvc
constexpr uint8_t stationPhi
station Phi 1 to 8
Const iterator class for DataVector/DataList.
std::string m_outputFileName
Parameters input through joboptions.
StatusCode calculateParameters()
Finalize functions.
StatusCode fillBitHist(TH1I *bitHist, const uint16_t &val)
std::set< int > * m_pulsedChambers
std::vector< float > m_dbLevels
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
void outputParameter3(const CscCalibResultCollection &results, std::ofstream &out)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
ICscCalibTool * m_cscCalibTool
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
StatusCode writeCalibrationFile()
std::vector< SG::VarHandleKeyArray * > m_vhka
int m_expectedChamberLayer
CscCalibResultCollection * m_peakTimes
CscCalibResultCollection * m_intercepts
#define ATH_MSG_VERBOSE(x)
std::vector< float > * m_fitReturns
virtual void setOwner(IDataHandleHolder *o)=0
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
DataVector< DataVector< TGraph > > * m_fracGraphs
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::string m_pedFileName
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
msgSvc
Provide convenience handles for various services.
(Non-const) Iterator class for DataVector/DataList.
def TProfile(*args, **kwargs)
CscCalibResultCollection * m_slopes
StatusCode collectEventInfo()
event loop functions
::StatusCode StatusCode
StatusCode definition for legacy code.
DataVector< TH1I > * m_bitHists
double chi2(TH1 *h0, TH1 *h1)
TProfile * m_peakTimeProf
std::string m_calOutputVersion
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StoreGateSvc * m_storeGate
Services and tools.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
DataVector< DataVector< TProfile > > * m_fracProfs
std::string m_titlePrefix
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::ReadCondHandleKey< CscCondDbData > m_readKey
StatusCode initialize(bool used=true)
ToolHandle< Muon::ICSC_RDO_Decoder > m_cscRdoDecoderTool
float chiSquared(const U &p)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DataObjIDColl m_extendedExtraObjects
std::string getString() const
Provide a string form of the identifier - hexadecimal.
#define ATH_MSG_WARNING(x)
This container provides access to collections of CSC RDOs and a mechanism for recording them.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
TProfile * m_currentAmpProf
AthAlgorithm()
Default constructor:
bool m_ignoreDatabaseError
constexpr uint8_t stationEta
1 to 3
std::string m_titlePostfix
int Fit(double *x, const double ex, const double pedestal, const double predefinedwidth, double *result, double *errors, double *chi2)
unsigned int m_maxStripHash
Internally global variables.
size_type size() const noexcept
Returns the number of elements in the collection.
int m_eventCnt
coherent correction array has the corrections to the coherently pulsed channels to get the basic chan...
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
DataVector< TGraphErrors > * m_calGraphs
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
double GetBinContent(int) const
std::map< int, TProfile * > * m_ampProfs