 |
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, V, H > &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 |
|
|
StatusCode | collectEventInfo () |
| event loop functions More...
|
|
StatusCode | calculateParameters () |
| Finalize functions. More...
|
|
StatusCode | writeCalibrationFile () |
|
StatusCode | storeGateRecord () |
|
StatusCode | makeCalibPoints () |
| Utility functions. More...
|
|
double | calShape (double *x, double *par) |
|
StatusCode | calOutput0 () |
|
StatusCode | calOutput3 () |
|
void | outputParameter3 (const CscCalibResultCollection &results, std::ofstream &out) |
|
StatusCode | fillBitHist (TH1I *bitHist, const uint16_t &val) |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ToolHandle< ICscCalibTool > | m_cscCalibTool {this, "CscCalibTool", "CscCalibTool"} |
| Services and tools. More...
|
|
ToolHandle< Muon::ICSC_RDO_Decoder > | m_cscRdoDecoderTool {this,"CscRDODecoder","Muon::CscRDO_Decoder"} |
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
SmartIF< IChronoStatSvc > | m_chronoSvc |
|
SG::ReadCondHandleKey< CscCondDbData > | m_readKey {this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"} |
|
std::string | m_outputFileName |
| Parameters input through joboptions. More...
|
|
std::string | m_calOutputVersion |
|
double | m_minDeltaAdc |
|
bool | m_dumpAllHists |
|
bool | m_ignoreDatabaseError |
|
bool | m_doBitHists |
|
std::string | m_titlePrefix |
|
std::string | m_titlePostfix |
|
unsigned int | m_maxStripHash |
| Internally global variables. More...
|
|
int | m_lastPulserLevel |
|
DataVector< DataVector< TProfile > > * | m_fracProfs |
|
DataVector< DataVector< TGraph > > * | m_fracGraphs |
|
DataVector< TH1I > * | m_bitHists |
|
std::vector< float > * | m_fitReturns |
|
TGraph * | m_resGraph |
|
DataVector< TGraphErrors > * | m_calGraphs |
|
TProfile * | m_currentAmpProf |
|
std::map< int, TProfile * > * | m_ampProfs |
|
std::set< int > * | m_pulsedChambers |
|
int | m_eventCnt |
| coherent correction array has the corrections to the coherently pulsed channels to get the basic channels More...
|
|
CscCalibResultCollection * | m_slopes |
|
CscCalibResultCollection * | m_intercepts |
|
BipolarFit | m_bipolarFit |
|
bool | m_doBipolarFit |
|
std::array< double, 24 > | m_crossTalkFix {} |
|
bool | m_doCrossTalkFix |
|
std::vector< float > | m_dbLevels |
|
float * | m_peds |
|
float * | m_noises |
|
bool | m_pedFile |
|
std::string | m_pedFileName |
|
int | m_expectedChamberLayer |
|
std::string | m_calFitFunc |
|
bool | m_findPeakTime |
|
TProfile * | m_peakTimeProf |
|
CscCalibResultCollection * | m_peakTimes |
|
bool | m_doLinPlot |
|
std::string | m_cmd_parameters |
|
unsigned int | m_numBits |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
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 52 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 520 of file CscCalcSlope.cxx.
528 return StatusCode::FAILURE;
530 unsigned int numCalibPoints =
m_ampProfs->size();
531 ATH_MSG_INFO(
"There are " << numCalibPoints <<
" pulser levels to evaluate.");
535 float chargeMax = 530.88;
537 int crossTalkCnt = 0;
539 for(
unsigned int stripHash = 0 ;stripHash <=
m_maxStripHash; stripHash++)
552 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(
id);
553 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
581 if(orientation !=
'X')
585 bool foundMin(
false);
593 TGraphErrors * calGraph =
new TGraphErrors(numCalibPoints);
594 char calName[20],titleSeed[500];
595 sprintf(calName,
"calGraph%u",stripHash);
596 sprintf(titleSeed,
"Calgraph for eta %d, sector %d, layer %d%c, strip %d",stationEta,(2*stationPhi+50 -
stationName),wireLayer,orientation, stripNumber);
597 calGraph->SetName(calName);
599 calGraph->SetTitle(
title.c_str());
600 calGraph->GetYaxis()->SetTitle(
"ADC counts");
601 calGraph->GetXaxis()->SetTitle(
"Attenuation (-db)");
605 bool isGoodStrip =
false;
611 for(
const auto & [pulserLevel, pAmplitudeProfile] : *
m_ampProfs)
613 if(!pAmplitudeProfile){
615 return StatusCode::FAILURE;
620 if(pAmplitudeProfile->GetBinEntries(stripHash+1))
628 float adcValue = pAmplitudeProfile->GetBinContent(stripHash+1);
629 float adcError = pAmplitudeProfile->GetBinError(stripHash+1);
636 if(adcError != adcError)
648 ATH_MSG_DEBUG(
"\tStoring at db of " <<
db <<
" with attenValue " << attenValue <<
" from pulser level of " << pulserLevel <<
" and adcValue " << adcValue);
654 thisDrop = lastVal - adcValue;
656 <<
"\tlastVal = " << lastVal
657 <<
";lastDrop " << lastDrop <<
"; thisDrop " << thisDrop);
661 fitMinX = attenValue;
671 if(attenValue > fitMaxX)
672 fitMaxX = attenValue;
674 calGraph->SetPoint(calPointItr,attenValue,adcValue);
675 calGraph->SetPointError(calPointItr,0.01,adcError);
681 if(!foundMin && isGoodStrip){
689 ATH_MSG_INFO(
"we have a good stripHash at " << stripHash);
693 float slope, slopeError, intercept, interceptError,
chiSquared;
698 TF1 myFunc(
"myFunction",
m_calFitFunc.c_str(), fitMinX, fitMaxX);
699 myFunc.SetLineColor(kRed);
702 myFunc.SetParameters(0,5);
703 slope = myFunc.GetParameter(1);
704 slopeError = myFunc.GetParError(1);
705 intercept = myFunc.GetParameter(0);
706 interceptError = myFunc.GetParError(0);
708 ndf = myFunc.GetNDF();
712 myFunc.SetParameters(0.1,2000);
714 fitRet = calGraph->Fit(&myFunc,
"RV");
716 slope = myFunc.GetParameter(1)/chargeMax;
717 slopeError = myFunc.GetParError(1);
718 intercept = myFunc.GetParameter(0);
719 interceptError = myFunc.GetParError(0);
721 ndf = myFunc.GetNDF();
725 if(std::abs(slope) < 0.00001 || slope == -999)
731 invertedSlope = 1/slope;
733 ATH_MSG_ERROR(
"Inserting calgraph in for hash " << stripHash);
734 (*m_calGraphs)[stripHash] = calGraph;
736 ATH_MSG_DEBUG(
"StripHash: " << stripHash <<
"; slope: " <<slope
737 <<
"; intercept: " << intercept
744 (*m_fitReturns)[stripHash] = fitRet;
749 if(crossTalkCnt == 23)
755 ATH_MSG_INFO(
"Completed calculating parameters for each strip");
756 return StatusCode::SUCCESS;
◆ calOutput0()
StatusCode MuonCalib::CscCalcSlope::calOutput0 |
( |
| ) |
|
|
private |
Definition at line 777 of file CscCalcSlope.cxx.
785 return StatusCode::FAILURE;
794 out <<
"END_HEADER\n";
809 for(; slopeItr != slopeEnd; ++slopeItr)
813 ATH_MSG_FATAL(
"Peaktimes out of sync with slopes. Quiting write.");
815 return StatusCode::FAILURE;
819 out << (*slopeItr)->hashId();
824 m_idHelperSvc->cscIdHelper().get_id((*slopeItr)->hashId(),
id, &channelContext);
833 return StatusCode::FAILURE;
836 m_idHelperSvc->cscIdHelper().get_module_hash(
id,chamberHash);
837 out <<
" " << chamberHash;
843 out <<
" " << (*slopeItr)->value();
850 return StatusCode::SUCCESS;
◆ calOutput3()
StatusCode MuonCalib::CscCalcSlope::calOutput3 |
( |
| ) |
|
|
private |
Definition at line 907 of file CscCalcSlope.cxx.
913 return StatusCode::RECOVERABLE;
915 out <<
"03-00 <END_HEADER>";
918 out <<
"\n<END_FILE>";
923 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 307 of file CscCalcSlope.cxx.
319 if (sc_read != StatusCode::SUCCESS)
322 return StatusCode::FAILURE;
332 for(
const auto rod:*fullRDO)
339 int pulserLevel =
rod->calAmplitude();
343 ATH_MSG_INFO(
"New pulser level found. (" << pulserLevel <<
").");
347 if(alreadyExistingProfile ==
m_ampProfs->end())
352 name <<
"ampProf_" << pulserLevel;
370 unsigned int samplingPhase =
rod->samplingPhase();
377 for(
const auto cluster: *
rod)
381 int numStrips = cluster->width();
382 int samplesPerStrip = (cluster->samples()).
size()/numStrips;
386 for(
int stripItr = 0; stripItr <numStrips; stripItr++)
390 m_idHelperSvc->cscIdHelper().get_channel_hash(stripId, cscChannelHashId);
391 int stripHash = cscChannelHashId;
394 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(stripId);
400 return StatusCode::FAILURE;
403 int currentWireLayer =
m_idHelperSvc->cscIdHelper().wireLayer(stripId) - 1;
404 if( currentWireLayer < 0 || currentWireLayer > 3)
406 ATH_MSG_FATAL(
"Problem in getting wire layer! - Current value is "
407 <<
m_idHelperSvc->cscIdHelper().wireLayer(stripId) <<
" while only values between 1-4 are allowed.");
408 return StatusCode::FAILURE;
410 bool isThisLayerPulsed = (pulsedWireLayer >> currentWireLayer)&0
x1;
411 if(isThisLayerPulsed)
414 std::vector<uint16_t> samples;
415 cluster->samples(stripItr,samplesPerStrip,samples);
426 if(!readCdo->readChannelPed(stripHash,
ped).isSuccess()){
429 else ATH_MSG_ERROR(
"Failed at getting pedestal from COOL for hash " << stripHash);
431 return StatusCode::RECOVERABLE;
436 if(!readCdo->readChannelNoise(stripHash,
noise).isSuccess())
440 else ATH_MSG_ERROR(
"Failed at getting noise from COOL for hash " << stripHash);
442 return StatusCode::FAILURE;
448 double peakAmp{}, peakTime{};
453 std::vector<float> floatSamples;
454 for(
const auto & thisSample:samples){
456 floatSamples.push_back(thisSample-
ped);
465 success =
m_cscCalibTool->findCharge((
float)samplingPeriod, samplingPhase,floatSamples,peakAmp,peakTime);
471 double adcSamples[4];
472 for(
int i = 0;
i < 4;
i++) adcSamples[
i] = samples[
i] -
ped;
473 double fitResult[3],fitErrors[3],
chi2;
474 double width = samplingPeriod == 50 ? 7.2:14.4;
478 peakAmp = fitResult[0];
479 peakTime = fitResult[1] - (samplingPhase ? 25 : 0);
497 ATH_MSG_WARNING(
"Pulsed layer " << pulsedWireLayer<<
", Samples: " << samples[0] <<
", " << samples[1] <<
", " << samples[2] <<
", " << samples[3]);
514 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);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ 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 248 of file CscCalcSlope.cxx.
256 ATH_MSG_WARNING(
"There was an error collecting information from the RDO this event.");
260 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 148 of file CscCalcSlope.h.
151 return StatusCode::RECOVERABLE;
154 std::bitset<12> bitVal(
val);
156 for(
unsigned int bitIndex = 0; bitIndex <
m_numBits; bitIndex++){
157 if(bitVal[bitIndex]){
158 bitHist->Fill(bitIndex);
163 return StatusCode::SUCCESS;
◆ finalize()
StatusCode MuonCalib::CscCalcSlope::finalize |
( |
void |
| ) |
|
m_adcValues and/or m_allPeaktsHist
Definition at line 263 of file CscCalcSlope.cxx.
269 bool thereIsAFatal=
false;
285 thereIsAFatal =
true;
292 thereIsAFatal =
true;
300 return StatusCode::FAILURE;
302 return StatusCode::SUCCESS;
◆ initialize()
StatusCode MuonCalib::CscCalcSlope::initialize |
( |
void |
| ) |
|
basic required functions
Definition at line 116 of file CscCalcSlope.cxx.
135 for(
unsigned int pulserLevel=0; pulserLevel < 64; pulserLevel++)
143 const std::vector<Identifier> &
ids =
m_idHelperSvc->cscIdHelper().idVector();
147 for(
const auto & thisChamberId:
ids)
149 std::vector<Identifier> stripVect;
150 m_idHelperSvc->cscIdHelper().idChannels(thisChamberId,stripVect);
154 for(
const auto & thisStripId:stripVect)
157 m_idHelperSvc->cscIdHelper().get_channel_hash(thisStripId,stripHash);
167 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
175 char bitName[200], titleSeed[500];
177 sprintf(bitName,
"bitHist%d",(
int)stripHash);
178 sprintf(titleSeed,
"Bit histogram for eta %d, sector %d, layer %d%c strip %d",
179 stationEta,(2*stationPhi+50 -
stationName),wireLayer,orientation,stripNumber);
182 hist->GetXaxis()->SetTitle(
"Bit");
183 hist->GetYaxis()->SetTitle(
"Counts");
193 for(
unsigned int chanItr =0; chanItr <=
m_maxStripHash; chanItr++)
214 if( stripHash < 0 || (
unsigned int) stripHash >
m_maxStripHash ) {
216 ATH_MSG_FATAL(
"The hash "<< (
int) stripHash <<
" is out of range for the Ped-Vector - Crashing!");
217 return StatusCode::FAILURE;
244 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 927 of file CscCalcSlope.cxx.
934 out <<
"<NEW_PAR> " <<
results.parName() <<
"\n";
935 std::string idString;
939 for(; resItr != resEnd; ++resItr){
940 unsigned int hashId = (*resItr)->hashId();
941 double value = (*resItr)->value();
942 std::string idString;
944 readCdo->indexToStringId(&
m_idHelperSvc->cscIdHelper(), hashId,
"CHANNEL", idString).ignore();
946 out << idString <<
" " <<
value <<
"\n";
◆ renounce()
◆ renounceArray()
◆ storeGateRecord()
StatusCode MuonCalib::CscCalcSlope::storeGateRecord |
( |
| ) |
|
|
private |
Definition at line 853 of file CscCalcSlope.cxx.
859 bool thereIsAnError =
false;
861 std::string histKey =
"cscSlopeCalibReport";
862 ATH_MSG_DEBUG(
"Recording calibration graphs to TDS with key " << histKey);
878 ATH_MSG_ERROR(
"Failed to record CscCalibReportSlope to storegate");
879 thereIsAnError =
true;
890 sc =
evtStore()->record(calibResults,
"CscCalibResultSlope");
894 thereIsAnError =
true;
900 return StatusCode::RECOVERABLE;
902 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
DataVector<TH1I>* MuonCalib::CscCalcSlope::m_bitHists |
|
private |
◆ 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
SmartIF<IChronoStatSvc> MuonCalib::CscCalcSlope::m_chronoSvc |
|
private |
◆ m_cmd_parameters
std::string MuonCalib::CscCalcSlope::m_cmd_parameters |
|
private |
◆ m_crossTalkFix
std::array<double, 24> 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 112 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 86 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_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 storeGateRecord()
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
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)
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
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
DataVector< DataVector< TGraph > > * m_fracGraphs
virtual StatusCode sysInitialize() override
Override sysInitialize.
SmartIF< IChronoStatSvc > m_chronoSvc
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
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
double chi2(TH1 *h0, TH1 *h1)
TProfile * m_peakTimeProf
std::string m_calOutputVersion
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::array< double, 24 > m_crossTalkFix
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.
ToolHandle< ICscCalibTool > m_cscCalibTool
Services and tools.
#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
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
std::string m_titlePostfix
int Fit(double *x, const double ex, const double pedestal, const double predefinedwidth, double *result, double *errors, double *chi2)
constexpr int pow(int base, int exp) noexcept
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
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...
DataVector< TGraphErrors > * m_calGraphs
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
std::map< int, TProfile * > * m_ampProfs