|
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 |
|
|
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 |
|
double * | 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 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 525 of file CscCalcSlope.cxx.
533 return StatusCode::FAILURE;
535 unsigned int numCalibPoints =
m_ampProfs->size();
536 ATH_MSG_INFO(
"There are " << numCalibPoints <<
" pulser levels to evaluate.");
540 float chargeMax = 530.88;
542 int crossTalkCnt = 0;
544 for(
unsigned int stripHash = 0 ;stripHash <=
m_maxStripHash; stripHash++)
557 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(
id);
558 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
586 if(orientation !=
'X')
590 bool foundMin(
false);
598 TGraphErrors * calGraph =
new TGraphErrors(numCalibPoints);
599 char calName[20],titleSeed[500];
600 sprintf(calName,
"calGraph%u",stripHash);
601 sprintf(titleSeed,
"Calgraph for eta %d, sector %d, layer %d%c, strip %d",
stationEta,(2*
stationPhi+50 -
stationName),wireLayer,orientation, stripNumber);
602 calGraph->SetName(calName);
604 calGraph->SetTitle(
title.c_str());
605 calGraph->GetYaxis()->SetTitle(
"ADC counts");
606 calGraph->GetXaxis()->SetTitle(
"Attenuation (-db)");
610 bool isGoodStrip =
false;
616 for(
const auto & [pulserLevel, pAmplitudeProfile] : *
m_ampProfs)
618 if(!pAmplitudeProfile){
620 return StatusCode::FAILURE;
625 if(pAmplitudeProfile->GetBinEntries(stripHash+1))
633 float adcValue = pAmplitudeProfile->GetBinContent(stripHash+1);
634 float adcError = pAmplitudeProfile->GetBinError(stripHash+1);
641 if(adcError != adcError)
653 ATH_MSG_DEBUG(
"\tStoring at db of " <<
db <<
" with attenValue " << attenValue <<
" from pulser level of " << pulserLevel <<
" and adcValue " << adcValue);
659 thisDrop = lastVal - adcValue;
661 <<
"\tlastVal = " << lastVal
662 <<
";lastDrop " << lastDrop <<
"; thisDrop " << thisDrop);
666 fitMinX = attenValue;
676 if(attenValue > fitMaxX)
677 fitMaxX = attenValue;
679 calGraph->SetPoint(calPointItr,attenValue,adcValue);
680 calGraph->SetPointError(calPointItr,0.01,adcError);
686 if(!foundMin && isGoodStrip){
694 ATH_MSG_INFO(
"we have a good stripHash at " << stripHash);
698 float slope, slopeError, intercept, interceptError,
chiSquared;
703 TF1 myFunc(
"myFunction",
m_calFitFunc.c_str(), fitMinX, fitMaxX);
704 myFunc.SetLineColor(kRed);
707 myFunc.SetParameters(0,5);
708 slope = myFunc.GetParameter(1);
709 slopeError = myFunc.GetParError(1);
710 intercept = myFunc.GetParameter(0);
711 interceptError = myFunc.GetParError(0);
713 ndf = myFunc.GetNDF();
717 myFunc.SetParameters(0.1,2000);
719 fitRet = calGraph->Fit(&myFunc,
"RV");
721 slope = myFunc.GetParameter(1)/chargeMax;
722 slopeError = myFunc.GetParError(1);
723 intercept = myFunc.GetParameter(0);
724 interceptError = myFunc.GetParError(0);
726 ndf = myFunc.GetNDF();
730 if(std::abs(slope) < 0.00001 || slope == -999)
736 invertedSlope = 1/slope;
738 ATH_MSG_ERROR(
"Inserting calgraph in for hash " << stripHash);
739 (*m_calGraphs)[stripHash] = calGraph;
741 ATH_MSG_DEBUG(
"StripHash: " << stripHash <<
"; slope: " <<slope
742 <<
"; intercept: " << intercept
749 (*m_fitReturns)[stripHash] = fitRet;
754 if(crossTalkCnt == 23)
760 ATH_MSG_INFO(
"Completed calculating parameters for each strip");
761 return StatusCode::SUCCESS;
◆ calOutput0()
StatusCode MuonCalib::CscCalcSlope::calOutput0 |
( |
| ) |
|
|
private |
Definition at line 782 of file CscCalcSlope.cxx.
790 return StatusCode::FAILURE;
799 out <<
"END_HEADER\n";
814 for(; slopeItr != slopeEnd; ++slopeItr)
818 ATH_MSG_FATAL(
"Peaktimes out of sync with slopes. Quiting write.");
820 return StatusCode::FAILURE;
824 out << (*slopeItr)->hashId();
829 m_idHelperSvc->cscIdHelper().get_id((*slopeItr)->hashId(),
id, &channelContext);
838 return StatusCode::FAILURE;
841 m_idHelperSvc->cscIdHelper().get_module_hash(
id,chamberHash);
842 out <<
" " << chamberHash;
848 out <<
" " << (*slopeItr)->value();
855 return StatusCode::SUCCESS;
◆ calOutput3()
StatusCode MuonCalib::CscCalcSlope::calOutput3 |
( |
| ) |
|
|
private |
Definition at line 912 of file CscCalcSlope.cxx.
918 return StatusCode::RECOVERABLE;
920 out <<
"03-00 <END_HEADER>";
923 out <<
"\n<END_FILE>";
928 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 312 of file CscCalcSlope.cxx.
324 if (sc_read != StatusCode::SUCCESS)
327 return StatusCode::FAILURE;
337 for(
const auto rod:*fullRDO)
344 int pulserLevel =
rod->calAmplitude();
348 ATH_MSG_INFO(
"New pulser level found. (" << pulserLevel <<
").");
352 if(alreadyExistingProfile ==
m_ampProfs->end())
357 name <<
"ampProf_" << pulserLevel;
375 unsigned int samplingPhase =
rod->samplingPhase();
382 for(
const auto cluster: *
rod)
386 int numStrips = cluster->width();
387 int samplesPerStrip = (cluster->samples()).
size()/numStrips;
391 for(
int stripItr = 0; stripItr <numStrips; stripItr++)
395 m_idHelperSvc->cscIdHelper().get_channel_hash(stripId, cscChannelHashId);
396 int stripHash = cscChannelHashId;
399 int chamberLayer =
m_idHelperSvc->cscIdHelper().chamberLayer(stripId);
405 return StatusCode::FAILURE;
408 int currentWireLayer =
m_idHelperSvc->cscIdHelper().wireLayer(stripId) - 1;
409 if( currentWireLayer < 0 || currentWireLayer > 3)
411 ATH_MSG_FATAL(
"Problem in getting wire layer! - Current value is "
412 <<
m_idHelperSvc->cscIdHelper().wireLayer(stripId) <<
" while only values between 1-4 are allowed.");
413 return StatusCode::FAILURE;
415 bool isThisLayerPulsed = (pulsedWireLayer >> currentWireLayer)&0
x1;
416 if(isThisLayerPulsed)
419 std::vector<uint16_t> samples;
420 cluster->samples(stripItr,samplesPerStrip,samples);
431 if(!readCdo->readChannelPed(stripHash,
ped).isSuccess()){
434 else ATH_MSG_ERROR(
"Failed at getting pedestal from COOL for hash " << stripHash);
436 return StatusCode::RECOVERABLE;
441 if(!readCdo->readChannelNoise(stripHash,
noise).isSuccess())
445 else ATH_MSG_ERROR(
"Failed at getting noise from COOL for hash " << stripHash);
447 return StatusCode::FAILURE;
453 double peakAmp{}, peakTime{};
458 std::vector<float> floatSamples;
459 for(
const auto & thisSample:samples){
461 floatSamples.push_back(thisSample-
ped);
470 success =
m_cscCalibTool->findCharge((
float)samplingPeriod, samplingPhase,floatSamples,peakAmp,peakTime);
476 double adcSamples[4];
477 for(
int i = 0;
i < 4;
i++) adcSamples[
i] = samples[
i] -
ped;
478 double fitResult[3],fitErrors[3],
chi2;
479 double width = samplingPeriod == 50 ? 7.2:14.4;
483 peakAmp = fitResult[0];
484 peakTime = fitResult[1] - (samplingPhase ? 25 : 0);
502 ATH_MSG_WARNING(
"Pulsed layer " << pulsedWireLayer<<
", Samples: " << samples[0] <<
", " << samples[1] <<
", " << samples[2] <<
", " << samples[3]);
519 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 252 of file CscCalcSlope.cxx.
260 ATH_MSG_WARNING(
"There was an error collecting information from the RDO this event.");
264 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 149 of file CscCalcSlope.h.
152 return StatusCode::RECOVERABLE;
155 std::bitset<12> bitVal(
val);
157 for(
unsigned int bitIndex = 0; bitIndex <
m_numBits; bitIndex++){
158 if(bitVal[bitIndex]){
159 bitHist->Fill(bitIndex);
164 return StatusCode::SUCCESS;
◆ finalize()
StatusCode MuonCalib::CscCalcSlope::finalize |
( |
void |
| ) |
|
m_adcValues and/or m_allPeaktsHist
Definition at line 267 of file CscCalcSlope.cxx.
273 bool thereIsAFatal=
false;
289 thereIsAFatal =
true;
296 thereIsAFatal =
true;
305 return StatusCode::FAILURE;
307 return StatusCode::SUCCESS;
◆ initialize()
StatusCode MuonCalib::CscCalcSlope::initialize |
( |
void |
| ) |
|
basic required functions
Definition at line 120 of file CscCalcSlope.cxx.
139 for(
unsigned int pulserLevel=0; pulserLevel < 64; pulserLevel++)
147 const std::vector<Identifier> &
ids =
m_idHelperSvc->cscIdHelper().idVector();
151 for(
const auto & thisChamberId:
ids)
153 std::vector<Identifier> stripVect;
154 m_idHelperSvc->cscIdHelper().idChannels(thisChamberId,stripVect);
158 for(
const auto & thisStripId:stripVect)
161 m_idHelperSvc->cscIdHelper().get_channel_hash(thisStripId,stripHash);
171 char orientation = (
m_idHelperSvc->cscIdHelper().measuresPhi(
id) ?
'Y':
'X');
179 char bitName[200], titleSeed[500];
181 sprintf(bitName,
"bitHist%d",(
int)stripHash);
182 sprintf(titleSeed,
"Bit histogram for eta %d, sector %d, layer %d%c strip %d",
186 hist->GetXaxis()->SetTitle(
"Bit");
187 hist->GetYaxis()->SetTitle(
"Counts");
197 for(
unsigned int chanItr =0; chanItr <=
m_maxStripHash; chanItr++)
218 if( stripHash < 0 || (
unsigned int) stripHash >
m_maxStripHash ) {
220 ATH_MSG_FATAL(
"The hash "<< (
int) stripHash <<
" is out of range for the Ped-Vector - Crashing!");
221 return StatusCode::FAILURE;
248 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 932 of file CscCalcSlope.cxx.
939 out <<
"<NEW_PAR> " <<
results.parName() <<
"\n";
940 std::string idString;
944 for(; resItr != resEnd; ++resItr){
945 unsigned int hashId = (*resItr)->hashId();
946 double value = (*resItr)->value();
947 std::string idString;
949 readCdo->indexToStringId(&
m_idHelperSvc->cscIdHelper(), hashId,
"CHANNEL", idString).ignore();
951 out << idString <<
" " <<
value <<
"\n";
◆ renounce()
◆ renounceArray()
◆ storeGateRecord()
StatusCode MuonCalib::CscCalcSlope::storeGateRecord |
( |
| ) |
|
|
private |
Definition at line 858 of file CscCalcSlope.cxx.
864 bool thereIsAnError =
false;
866 std::string histKey =
"cscSlopeCalibReport";
867 ATH_MSG_DEBUG(
"Recording calibration graphs to TDS with key " << histKey);
883 ATH_MSG_ERROR(
"Failed to record CscCalibReportSlope to storegate");
884 thereIsAnError =
true;
895 sc =
evtStore()->record(calibResults,
"CscCalibResultSlope");
899 thereIsAnError =
true;
905 return StatusCode::RECOVERABLE;
907 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
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 113 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 87 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)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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
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
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
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...
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.
std::map< int, TProfile * > * m_ampProfs