ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib Namespace Reference

CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO. More...

Namespaces

namespace  Legendre

Classes

class  AdaptiveResidualSmoothing
class  ADCMTHistos
 Histogram and fitter class for drift time and pulsehight spectra The rising slope is fitted by a fermi-function: \(f(t)=r_{u,0} + \frac{A}{1+exp((t_0 - t)/T_0}\). More...
class  BaseFunction
 This is an abstract base class for a set of base functions for fits to sample points. More...
class  BaseFunctionFitter
 This class performs a fit of a linear combination of base functions to a set of sample points. More...
class  BFieldCorFunc
 This class allows the user to get the difference between the drift time measured by a tube operated in a magnetic field \( \vec{B} \) and the drift time which would be measured by this tube if \( \vec{B} \) vanished. More...
class  CalibDbConnection
class  CalibFunc
 generic interface for a calibration function. More...
class  CalibHeadOperations
struct  CalibParamSorter
 Helper struct to group Mdt calibration constants which are equivalent within the target precision. More...
class  CalibrationDbIOTool
class  CalibrationTeeIOTool
 Wites to two calibtaion IO Tools. More...
class  CalibRtDbOperations
class  CalibT0DbOperations
class  ChebyshevPolynomial
 This class class provides a Chebyshev polynomial of order k. More...
class  Combination
class  ConstantContentBinMaker
class  CoolInserter
class  CscCalcPed
 does calibration of the CSC chambers More...
class  CscCalcSlope
 does calibration of the CSC chambers More...
class  CscCalibHitBase
 Athena-independent part of the CscCalibHit. More...
class  CscCondData
class  CscCondDataCollection
class  CscCondDataCollectionBase
class  CscCondDataContainer
class  CscCondParType
class  CurvedCandidateFinder
class  CurvedLine
class  CurvedPatRec
class  DataBin
class  DataPoint
class  DCSLFitter
 Straight line fitter for drift circles. More...
class  EventHandler
class  FixedIdDecoder
class  GlobalTimeFitter
 Provides the operator to fit .... More...
class  HistogramId
 Identifier class for drift time histograms. More...
class  ICalibPatternSelector
 Interface to MuonCalibPatternSelectors. More...
class  ICalibrationIOTool
class  ICalibSegmentPreparationTool
class  IConditionsStorage
class  IdToFixedIdTool
 Tool responsible for wrapping the athena dependent Identifier class to a standalone Calib-EDM MuonFixedId identifier. More...
class  IIdToFixedIdTool
 Interface for tools performing the conversion between Athena Identifiers and Muon Calibration Standalone Fixed ones. More...
class  IMdtBackgroundCorFunc
 generic interface for cavern background correction functions More...
class  IMdtBFieldCorFunc
 generic interface for b-field correction functions More...
class  IMdtCalibration
 Interface to Mdt calibration algortihms. More...
class  IMdtCalibrationOutput
 Interface to pass calibration output during calibration. More...
class  IMdtPatRecFitter
 Interface class for MdtSegment fitters performing a pattern recognition. More...
class  IMdtSegmentFitter
 Interface for MdtSegment fitters. More...
class  IMdtSegmentSelector
 Interface class for MdtSegmentSelectors. More...
class  IMdtSlewCorFunc
 generic interface for slewing correction functions More...
class  IMdtTempCorFunc
 generic interface for temperature correction functions More...
class  IMooPatternForCalibrationTool
 Interface class IMooPatternForCalibrationTool (obsolete) More...
class  IMuonCalibConditionsSource
class  IMuonCalibTool
 Interface class IMuonCalibTool. More...
class  IndexSet
class  INtupleCalibrationTool
class  IRegionSelectorTool
 Interface class IRegionSelectorTool. More...
class  IRtRelation
 generic interface for a rt-relation More...
class  IRtResolution
 Generic interface to retrieve the resolution on the drift radius as a function of the drift time. More...
class  IShiftMapTools
 Interface for the ShiftMapTools inheriting from MdtCalibrationShiftMapBase. More...
class  ITrRelation
class  LegendrePolynomial
 This class provides a legendre polynomial of order k. More...
class  LocalSegmentResolver
 Class calculates the local position and direction of the segment using the hits on track. More...
class  LocalToPrecision
 Provides transformation between local and presicion reference frames. More...
class  MdtCalibDataContainer
class  MdtCalibEventLoop
 Class collects segments for a given chamber and performs several loops over the sample until the calibration algorithm thinks it converged. More...
class  MdtCalibHitBase
 Athena-independent part of the MdtCalibHit. More...
class  MdtCorFuncSet
 Class which holds all correction functions for a given region. More...
struct  MdtFullCalibData
 class which holds the full set of calibration constants for a given tube More...
class  MdtRelativeTubeT0
class  MdtRtRelation
 class which holds calibration constants per rt-region More...
class  MdtSlewCorFuncHardcoded
 An implementation of a time slew correction function for AMT digitization chip. More...
class  MdtStationT0Container
class  MdtTubeCalibContainer
 Holds single-tube calibration constants of one chamber. More...
class  MdtTubeFitContainer
 Holds single-tube full calibration information of one chamber. More...
class  MdtTubeFullInfoContainer
 Holds single-tube full calibration information of one chamber. More...
class  MeanRMS
class  MTStraightLine
class  MTT0PatternRecognition
class  MTTmaxPatternRecognition
class  MuCCaFitter
 Interface to the straight line fitter for drift circles used by Calib. More...
class  MuCCaFitterImplementation
 The straight line fitter for drift circles used by Calib. More...
struct  MultilayerId
 Holds the station, eta, phi and multilayer Ids for a given multilayer. More...
class  MultilayerRtDifference
class  MultilayerRtDifference_Histograms
class  MuonCalibCaloHit
 Simplified class designed to store information of a MBTS hit. More...
class  MuonCalibCscTruthHit
 Class with truth information of a RPC hit, containing: More...
class  MuonCalibCylinder
class  MuonCalibDbCalibrationSource
class  MuonCalibDefaultCalibrationSource
class  MuonCalibDisk
class  MuonCalibEvent
 Container class storing all entries of the CalibrationNtuple. More...
class  MuonCalibEvent_E
 Extension to the 'original' MuonCalib::MuonCalibEvent class. More...
class  MuonCalibEventInfo
 MuonCalib::MuonCalibEventInfo: a class which stores the following information of an event: More...
class  MuonCalibExtendedRawHits
 Access to all raw hits with layer/station granularity. More...
class  MuonCalibExtendedSegment
 A segment plus everything one can dream of knowing about it. More...
class  MuonCalibExtendedTrack
 A track plus everything one can dream of knowing about a track. More...
struct  MuonCalibExtendedTrackOverlap
class  MuonCalibHit_E
 Simplified class designed to store information of a MDT hit. More...
class  MuonCalibHole_E
 class describing a Hole on track. More...
class  MuonCalibMdtTruthHit
 Class with truth information of a MDT hit, containing: More...
class  MuonCalibMUCTPI
 Simplified class designed to store information from MuCTPi processor. More...
class  MuonCalibPattern
 Class to store the information belonging to a global pattern in the muon system. More...
class  MuonCalibRawCscHit
 Calib-EDM version of CscPrepData class, containing uncalibrated information. More...
class  MuonCalibRawHitAssociationMap
 Association map between MuonFixedId and raw hits. More...
class  MuonCalibRawHitCollection
 A MuonCalibRawHitcollections is a container class within the Calibration EDM holding the MuonCalibXxxRawHits from the different technologies: More...
class  MuonCalibRawMdtHit
 Calib-EDM version of MdtPrepData class, containing uncalibrated information. More...
class  MuonCalibRawRpcCoin
 Calib-EDM version of RpcCoinData class. More...
class  MuonCalibRawRpcHit
 Calib-EDM version of RpcPrepData class, containing uncalibrated information. More...
class  MuonCalibRawRpcTriggerHit
 Calib-EDM version of RpcRawData class. More...
class  MuonCalibRawTgcCoin
 Calib-EDM version of TgcPrepData class, containing uncalibrated information. More...
class  MuonCalibRawTgcHit
 Calib-EDM version of TgcPrepData class, containing uncalibrated information. More...
class  MuonCalibRawTriggerHitCollection
class  MuonCalibRpcSectorLogic
 Simplified class designed to store information from RpcSectorLogic. More...
class  MuonCalibRpcTruthHit
 Class with truth information of a RPC hit, containing: More...
class  MuonCalibSegment
 A MuonCalibSegment is a reconstructed three dimensional track segment in the MuonSpectrometer. More...
class  MuonCalibSelector
class  MuonCalibSimpleGeometry
class  MuonCalibSimpleHoleSearch
class  MuonCalibSLPropagator
 straight line propagator More...
class  MuonCalibSurface
class  MuonCalibTgcTruthHit
 Class with truth information of a RPC hit, containing: More...
class  MuonCalibTrack_E
 Simplified class designed to store information of a Track. More...
class  MuonCalibTrackSummary
class  MuonCalibTriggerInfo
 Simplified class designed to store information of a trigger. More...
class  MuonCalibTriggerTimeInfo
class  MuonCalibTriggerTypeHelper
 helper class to for MuonCalibTriggerType which provides a mapping to the actual bit number More...
class  MuonCalibTruth
 Calib-EDM version of TrackRecord, given at the MuonSpectrometer entrance. More...
class  MuonCalibTruthCollection
 MuonCalibTruthCollection is a Calibration EDM container class containing the following truth classes: More...
class  MuonFixedId
 Implements fixed identifiers not dependent upon Athena Identifier for internal use in the calibration framework. More...
class  MuonFixedIdManipulator
class  MuonFixedIdPrinter
class  MuonFixedLongId
class  MuonSegmentReader
class  NtupleStationId
 Station Identifier for sorting calibration data. More...
class  PolygonBase
 This class provides functions which allow the user to express a polygon as a linear combination of these functions. More...
class  QuasianalyticLineReconstruction
class  RadiusResolutionChebyshev
 RadiusResolutionChebyshev parametrizes the uncertainty on the drift-radius as a function of the drift radius itself and not of the drift time. More...
class  RegionDataFromFile
 Manages the I/O of the list of multilayers belonging to a calibration region. More...
class  RegionElement
class  RegionLogicalOperation
class  RegionSelectorBase
class  RpcCalibData
 holds all conditions data for rpc strip. More...
class  RpcCalibDataContainer
class  RpcCalibDBEntry
 representation of a db entry in rpc cond db. More...
class  RpcCalibHitBase
 Athena independent part of the RpcCalibHit. More...
class  RpcCondParType
class  RpcOnlineDBEntry
 representation of an online db entry (masked chans) in rpc cond db. More...
class  RtCalibrationAnalytic
 This class performs the analytic autocalibration whose basic ideas were developed by Mario Deile (see ATL-MUON-2004-021). More...
class  RtCalibrationCurved
class  RtCalibrationIntegration
 This class allows the user to obtain an r-t relationship from the drift time spectrum in a given calibration region. More...
class  RtCalibrationOutput
 Class for communication between event loop and rt calibration algorithm contains only a rt relation for now. More...
class  RtChebyshev
 This class contains the implementation of an r(t) relationship parametrized by a linear combination of Chebyshev polyonomials. More...
class  RtData_t_r_reso
 Represents an Rt relation in the form of a set of (time,radius,resolution) points. More...
class  RtDataFromFile
 Manages the I/O of the Rt realtions from/to file. More...
class  RtFromPoints
 This class allows the user to retrieve an RtChebyshev or RtRelationLookUp object corresponding to a set of (r, t) points. More...
class  RtFullInfo
 addiitonal information used in validation of a rt-relation More...
class  RtLegendre
 This class contains the implementation of an r(t) relationship parametrized by a linear combination of Legendre polyonomials. More...
class  RtParabolicExtrapolation
class  RtRelationLookUp
 Equidistant look up table for rt-relations with the time as key. More...
class  RtResolutionChebyshev
 This class contains the implementation of a spatial resolution \( \sigma \) parametrized by a linear combination of Chebyshev polyonomials. More...
class  RtResolutionFromPoints
class  RtResolutionLookUp
 Equidistant look up table for resolution tables with the time as key. More...
class  RtSimplePolynomial
class  RtSpline
 This class contains the implementation of an r(t) relationship parameterized as support points to a cubic spline. More...
class  SamplePoint
 This class provides a sample point for the BaseFunctionFitter. More...
class  SimpleMdtSegmentSelector
 Basic MdtSegments selector. More...
class  SimplePatternSelector
 Basic Pattern selector. More...
class  SimplePolynomial
 This class provides the simple polynomials x^k (k=0, 1, ...) as base functions for fits. More...
class  StraightPatRec
class  T0CalibrationClassic
 Implementation of a T0 calibration using the classical approach. More...
class  T0CalibrationMT
 Implementation of a T0 calibration using the MT approach. More...
class  T0CalibrationOutput
 class for the communication of the results of T0 calibration algorithms More...
class  T0ClassicHistos
 Tube histograms used in T0 calibration. More...
class  T0ClassicSettings
 Settings for the T0 calibration (histogram booking and fitting parameters) More...
class  T0MTHistos
 Histogram and fitter class for drift time and pulsehight spectra The rising slope is fitted by a fermi-function: \(f(t)=r_{u,0} + \frac{A}{1+exp((t_0 - t)/T_0}\). More...
class  T0MTSettings
 Settings for the T0 calibration (histogram booking and fitting parameters) Parameters for pattern recognition. More...
class  T0MTSettingsT0
class  T0MTSettingsTMax
class  T0Refinement
class  TgcCalibHitBase
 Athena independent part of the TgcCalibHit. More...
class  TrChebyshev
class  TrLegendre
class  TrRelationLookUp
class  TrSimplePolynomial
class  TubeDataFromFile
 Manage the I/O of MdtTubeFitContainer objects. More...
class  typeNamer
class  typeNamer< bool >
class  typeNamer< double >
class  typeNamer< float >
class  typeNamer< int >
class  typeNamer< std::string >
class  typeNamer< uint16_t >
class  typeNamer< uint32_t >
class  typeNamer< uint8_t >
class  UpdateCalibHit
 Provides the operator to update drift radius and error of a given MdtCalibHit using the pointer to the IRtRelation passed to the constructor. More...
class  VariableBinwidthHistogram
 A histogram where every bin has the same number of entries. More...
class  VariableBinwidthHistogramBin
 A bin of a VariableBinwidthHistogram. More...
class  VBHBinPtrSrt
 A pointer to a VariableBinwidthHistogramBin which supports sorting. More...

Typedefs

using IRtRelationPtr = GeoModel::TransientConstSharedPtr<IRtRelation>
using IRtResolutionPtr = GeoModel::TransientConstSharedPtr<IRtResolution>
using ITrRelationPtr = GeoModel::TransientConstSharedPtr<ITrRelation>
using SingleTubeFit = MdtTubeFitContainer::SingleTubeFit
using SingleTubeFullInfo = MdtTubeFullInfoContainer::SingleTubeFullInfo
using CalibHitE_Ptr = std::shared_ptr<const MuonCalibHit_E>
 hit information per station layer index
using StationIndexHitsMap = std::map<MuonFixedIdManipulator::StationIndex, std::vector<CalibHitE_Ptr> >
using IdHitsMap = std::map<MuonFixedId, std::vector<CalibHitE_Ptr> >
 hit information per station
using IdHitMap = std::map<MuonFixedId, CalibHitE_Ptr>
 hit information per identifier
using StationIntersectedLayerMap = std::map<MuonFixedId, MuonCalibSimpleHoleSearch::Result>
 intersected layers in the simplified geometry per station
using StationIndexSet = std::set<MuonFixedIdManipulator::StationIndex>
 set with station layer index
using IdSet = std::set<MuonFixedId>
 set of identifiers
typedef Identifier MdtBasicRegionId
 define type MdtBasicRegionId for the smallest possible MDT calibration region
typedef IdentifierHash MdtBasicRegionHash
 define type MdtBasicRegionHash for the smallest possible MDT calibration region
typedef IdentifierHash MdtRegionHash
 define type MdtRegionHash

Enumerations

enum  MuonCalibTriggerType {
  L1_EM3 = 0 , L1_TAU5 , L1_J5 , L1_XE20 ,
  L1_MBTS_1_COMM , L1_MBTS_2_COMM , L1_MU0_LOW_RPC , L1_MU6_RPC ,
  L1_MU0_HIGH_RPC , L1_MU0_TGC_HALO , L1_MU0_TGC , L1_MU6_TGC ,
  NUMBEROFKNOWNTRIGGERS , UNKNOWNTRIGGERTYPE = 999
}
 enum for all trigger type More...
enum  MdtCalibCreationFlags { TIME_SLEWING_CORRECTION_APPLIED =0x10 , B_FIELD_CORRECTIONS_APPLIED =0x20 }

Functions

std::istream & operator>> (std::istream &is, RtFullInfo &data)
std::ostream & operator<< (std::ostream &os, const RtFullInfo &data)
float RtScalePolynomial (const float r)
float RtScaleFunction (const float t, const bool ml2, const IRtRelation &rtrelation)
std::vector< SamplePointfetchDataPoints (const IRtRelation &rtRel, const double relUnc)
 Constructs a list of sample points from the rt-relation.
std::vector< SamplePointfetchDataPoints (const IRtRelation &rtRel, const IRtResolution &resoFunc)
 Constructs a list of sample points from the rt-relation.
std::vector< SamplePointswapCoordinates (const std::vector< SamplePoint > &points, const IRtRelation &rtRel)
 Creates a new vector of samples points with x1 exchanged by x2 and vice-versa.
std::vector< SamplePointresoFromRadius (const std::vector< SamplePoint > &points, const double uncert)
 Creates a new vector of sample points where the x2 coordinate becomes the x1 coordinate and the resolution becomes x2.
std::vector< SamplePointfetchResolution (const std::vector< SamplePoint > &points, const double uncert)
 Creates a new vector of sample points where the x2 is assigned to the uncertainty and the uncertainty is replaced by a constant value.
std::vector< SamplePointnormalizeDomain (const std::vector< SamplePoint > &dataPoints)
 Normalizes the domain of the samples points to the interval -1 to 1.
double calculateChi2 (const std::vector< SamplePoint > &dataPoints, const IRtRelation &rtRel)
 Returns the chi2 of the rt-relation w.r.t.
double calculateChi2 (const std::vector< SamplePoint > &dataPoints, const ITrRelation &trRel)
double calculateChi2 (const std::vector< SamplePoint > &dataPoints, const IRtResolution &rtReso)
std::pair< double, double > minMax (const std::vector< SamplePoint > &points)
 Returns the minimum & maximum values covered by the sample points.
std::pair< double, double > interval (const std::vector< SamplePoint > &points)
 Returns the interval covered by the sample points.
Double_t MultilayerRtDifference_ScaleFunction (Double_t *x, Double_t *par)
template<typename T>
void clearall (T &container)
Double_t adcfitf_skewnormal (Double_t *x, Double_t *par)
 skew normal ADC fitting
unsigned int get_group_id (const MuonFixedId &id, const MdtRelativeTubeT0::TubeGroup &grp)
Double_t myexp (Double_t *x, Double_t *p)
Double_t TimeSpectrum_func (Double_t *xx, Double_t *par)
TRandom3 * getTLSRandomGen ()
Double_t mt_t0_fermi (Double_t *x, Double_t *par)
 The fermi function to be fitted at the rising edge of the spectrum.
Double_t mt_tmax_fermi (Double_t *x, Double_t *par)
 The fermi function to be fitted at the trailing slope of the spectrum.
std::istream & operator>> (std::istream &is, RtData_t_r_reso &data)
std::ostream & operator<< (std::ostream &os, const RtData_t_r_reso &data)
static const InterfaceID IID_IMuonCalibConditionsSource ("MuonCalib::IMuonCalibConditionsSource", 1, 0)
std::ostream & operator<< (std::ostream &stream, const CscCalibHitBase &hit)
std::ostream & operator<< (std::ostream &stream, const RpcCalibHitBase &hit)
std::ostream & operator<< (std::ostream &stream, const TgcCalibHitBase &hit)
std::ostream & operator<< (std::ostream &os, const MuonCalib::MuonFixedId &id)
std::ostream & operator<< (std::ostream &os, const MuonCalib::MuonFixedLongId &id)
MuonFixedId OnlineToOffline (const std::string &online_id)
static const InterfaceID IID_IIdToFixedIdTool ("MuonCalib::IdToFixedIdTool", 1, 0)
static const InterfaceID IID_IMooPatternForCalibrationTool ("MuonCalib::IMooPatternForCalibrationTool", 1, 0)
 Interface ID for IMooPatternForCalibrationTool.
static const InterfaceID IID_IMuonCalibTool ("MuonCalib::IMuonCalibTool", 1, 0)
 Interface ID for IMuonCalibTool.
static const InterfaceID IID_IRegionSelectorTool ("MuonCalib::IRegionSelectorTool", 1, 0)
 Interface ID for IRegionSelectorTool.
constexpr double chebyshevPoly1st (const unsigned int order, const double x)
 Returns the n-th Chebyshev polynomial of first kind evaluated at x (c.f.
constexpr double chebyshevPoly2nd (const unsigned int order, const double x)
 Returns the n-th Chebyshev polynomial of second kind evaluated at x (c.f.
constexpr double chebyshevPoly1stPrime (const unsigned int order, const double x)
 Returns the first derivative of the n-th Chebycheb polynomial of the first kind.
constexpr double chebyshevPoly2ndPrime (const unsigned int order, const double x)
 Returns the first derivative of the n-th Chebycheb polynomial of the first second kind.
constexpr double chebyshevPoly1st2Prime (const unsigned int order, const double x)
 Returns the second derivative of the n-th Chebycheb polynomial of the first kind.
constexpr double chebyshevPoly2nd2Prime (const unsigned int order, const double x)
 Returns the second derivative of the n-th Chebycheb polynomial of the first second kind.
constexpr unsigned long factorial (const int n)
 Evaluated the n-th factorial at compile time.
constexpr unsigned long binomial (const unsigned n, const unsigned k)
 Calculates the binomial coefficient at compile time.
template<int k>
constexpr double pow (const double x)
 Calculate the power of a variable x at compile time.
constexpr double pow (double x, int power)
 Calculate the power of a variable at run time.
constexpr double legendrePoly (const unsigned l, const double x)
 Calculates the legendre polynomial of rank l at x.
constexpr double legendreDeriv (const unsigned l, const unsigned d, const double x)
 Evaluates the n-th derivative of the l-th Legendre polynomial.
double mapToUnitInterval (const double x, const double lowerEdge, const double upperEdge)
 Maps the number x which is in [lowEdge;upperEdge] to the interval [-1;1].
double unitIntervalPrime (const double lowerEdge, const double upperEdge)
std::ostream & operator<< (std::ostream &s, const CscCondParType &type)
std::ostream & operator<< (std::ostream &s, const RpcCondParType &type)

Variables

static constexpr std::array< double, 6 > RtScaleFunction_p {-0.00102327, 0.00582117, -0.00676815, 0.00167504, -8.67371e-05, 1.66509e-06}

Detailed Description

CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.

MdtCalibDbAlgR4 reads raw condition data and writes derived condition data to the condition store.

namespace to identify classes related only to muon calibration

   @class CscCondData

   @author lampen@physics.arizona.edu

   @brief Containes information for a single index value for a CSC COOL data object. 

Every value from the CSC COOL database is kept in a CscCondData object.

Typedef Documentation

◆ CalibHitE_Ptr

using MuonCalib::CalibHitE_Ptr = std::shared_ptr<const MuonCalibHit_E>

hit information per station layer index

Definition at line 21 of file MuonCalibLayerMapping.h.

◆ IdHitMap

hit information per identifier

Definition at line 28 of file MuonCalibLayerMapping.h.

◆ IdHitsMap

using MuonCalib::IdHitsMap = std::map<MuonFixedId, std::vector<CalibHitE_Ptr> >

hit information per station

Definition at line 25 of file MuonCalibLayerMapping.h.

◆ IdSet

using MuonCalib::IdSet = std::set<MuonFixedId>

set of identifiers

Definition at line 37 of file MuonCalibLayerMapping.h.

◆ IRtRelationPtr

◆ IRtResolutionPtr

◆ ITrRelationPtr

◆ MdtBasicRegionHash

define type MdtBasicRegionHash for the smallest possible MDT calibration region

Definition at line 26 of file NtupleStationId.h.

◆ MdtBasicRegionId

define type MdtBasicRegionId for the smallest possible MDT calibration region

Definition at line 24 of file NtupleStationId.h.

◆ MdtRegionHash

define type MdtRegionHash

Definition at line 28 of file NtupleStationId.h.

◆ SingleTubeFit

◆ SingleTubeFullInfo

◆ StationIndexHitsMap

◆ StationIndexSet

set with station layer index

Definition at line 34 of file MuonCalibLayerMapping.h.

◆ StationIntersectedLayerMap

intersected layers in the simplified geometry per station

Definition at line 31 of file MuonCalibLayerMapping.h.

Enumeration Type Documentation

◆ MdtCalibCreationFlags

Enumerator
TIME_SLEWING_CORRECTION_APPLIED 
B_FIELD_CORRECTIONS_APPLIED 

Definition at line 10 of file MdtCalibCreationFlags.h.

◆ MuonCalibTriggerType

enum for all trigger type

Enumerator
L1_EM3 
L1_TAU5 
L1_J5 
L1_XE20 
L1_MBTS_1_COMM 
L1_MBTS_2_COMM 
L1_MU0_LOW_RPC 
L1_MU6_RPC 
L1_MU0_HIGH_RPC 
L1_MU0_TGC_HALO 
L1_MU0_TGC 
L1_MU6_TGC 
NUMBEROFKNOWNTRIGGERS 
UNKNOWNTRIGGERTYPE 

Definition at line 16 of file MuonCalibTriggerInfo.h.

Function Documentation

◆ adcfitf_skewnormal()

Double_t MuonCalib::adcfitf_skewnormal ( Double_t * x,
Double_t * par )
inline

skew normal ADC fitting

Definition at line 17 of file ADCMTHistos.cxx.

17 {
18 // par[0] = skew gauss norm
19 // par[1] = skew gauss mean (i.e. mu)
20 // par[2] = skew gauss sigma (i.e sigma)
21 // par[3] = skew factor (i.e. alpha)
22 // Numeric constants
23 Double_t invsq2pi = 1.0 / (std::sqrt(2 * M_PI));
24 Double_t twoPi = 2 * M_PI;
25
26 Double_t delta_value = par[3] / (std::sqrt(1. + par[3] * par[3]));
27 Double_t omega_square = (par[2] * par[2]) / (1. - 4. * delta_value * delta_value / (twoPi));
28 Double_t omega_value = std::sqrt(omega_square);
29 Double_t xi_value = par[1] - delta_value * omega_value * 2. * invsq2pi;
30 Double_t Gauss_part =
31 (invsq2pi / omega_value) * std::exp(-((x[0] - xi_value) * (x[0] - xi_value)) / (2.0 * omega_square)); // phi(x)
32
33 Double_t Erf_part = 0.5 * (1 + std::erf(par[3] * (x[0] - xi_value) / (omega_value)));
34
35 Double_t SkewNormal_Value = par[0] * 2. * Gauss_part * Erf_part;
36
37 Double_t MyGaussFuncValue = SkewNormal_Value;
38
39 return (MyGaussFuncValue);
40 }
#define M_PI
#define x

◆ binomial()

unsigned long MuonCalib::binomial ( const unsigned n,
const unsigned k )
constexpr

Calculates the binomial coefficient at compile time.

Definition at line 60 of file LegendrePoly.h.

60 {
61 unsigned long b = factorial(n) / (factorial(k) * factorial(n-k));
62 return b;
63 }
constexpr unsigned long factorial(const int n)
Evaluated the n-th factorial at compile time.

◆ calculateChi2() [1/3]

double MuonCalib::calculateChi2 ( const std::vector< SamplePoint > & dataPoints,
const IRtRelation & rtRel )

Returns the chi2 of the rt-relation w.r.t.

the data points

Definition at line 102 of file SamplePointUtils.cxx.

103 {
104 double chi2{0.};
105 for (const SamplePoint& point: dataPoints){
106 chi2+=std::pow((point.x2() - rtRel.radius(point.x1())) / point.error(), 2);
107 }
108 return chi2;
109 }
virtual double radius(double t) const =0
returns drift radius for a given time
double chi2(TH1 *h0, TH1 *h1)

◆ calculateChi2() [2/3]

double MuonCalib::calculateChi2 ( const std::vector< SamplePoint > & dataPoints,
const IRtResolution & rtReso )

Definition at line 118 of file SamplePointUtils.cxx.

119 {
120 double chi2{0.};
121 for (const SamplePoint& point: dataPoints){
122 chi2+=std::pow((point.x2() - rtReso.resolution(point.x1())) / point.error(), 2);
123 }
124 return chi2;
125 }
virtual double resolution(double t, double bgRate=0.0) const =0
returns resolution for a give time and background rate

◆ calculateChi2() [3/3]

double MuonCalib::calculateChi2 ( const std::vector< SamplePoint > & dataPoints,
const ITrRelation & trRel )

Definition at line 110 of file SamplePointUtils.cxx.

111 {
112 double chi2{0.};
113 for (const SamplePoint& point: dataPoints){
114 chi2+=std::pow((point.x2() - trRel.driftTime(point.x1()).value_or(2.*trRel.maxRadius()) ) / point.error(), 2);
115 }
116 return chi2;
117 }
virtual double maxRadius() const =0
Returns the maximum drift-radius.
virtual std::optional< double > driftTime(const double r) const =0
Interface method for fetching the drift-time from the radius Returns a nullopt if the time is out of ...

◆ chebyshevPoly1st()

double MuonCalib::chebyshevPoly1st ( const unsigned int order,
const double x )
constexpr

Returns the n-th Chebyshev polynomial of first kind evaluated at x (c.f.

https://en.wikipedia.org/wiki/Chebyshev_polynomials)

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 13 of file ChebychevPoly.h.

13 {
14 double value{0.};
15 switch(order) {
16 case 0:
17 value=1.;
18 break;
19 case 1:
20 value = x;
21 break;
22 default:
23 value = 2.*x*chebyshevPoly1st(order-1, x) - chebyshevPoly1st(order-2, x);
24 break;
25 }
26 return value;
27 }
constexpr double chebyshevPoly1st(const unsigned int order, const double x)
Returns the n-th Chebyshev polynomial of first kind evaluated at x (c.f.

◆ chebyshevPoly1st2Prime()

double MuonCalib::chebyshevPoly1st2Prime ( const unsigned int order,
const double x )
constexpr

Returns the second derivative of the n-th Chebycheb polynomial of the first kind.

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 81 of file ChebychevPoly.h.

81 {
82 double value{0.};
83 switch (order) {
84 case 0:
85 case 1:
86 break;
87 default:
88 value = order * chebyshevPoly2ndPrime(order-1, x);
89 }
90 return value;
91 }
constexpr double chebyshevPoly2ndPrime(const unsigned int order, const double x)
Returns the first derivative of the n-th Chebycheb polynomial of the first second kind.

◆ chebyshevPoly1stPrime()

double MuonCalib::chebyshevPoly1stPrime ( const unsigned int order,
const double x )
constexpr

Returns the first derivative of the n-th Chebycheb polynomial of the first kind.

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 49 of file ChebychevPoly.h.

49 {
50 double value{0.};
51 switch (order) {
52 case 0:
53 break;
54 case 1:
55 value = 1.;
56 break;
57 default:
58 value = order * chebyshevPoly2nd(order-1, x);
59 }
60 return value;
61 }
constexpr double chebyshevPoly2nd(const unsigned int order, const double x)
Returns the n-th Chebyshev polynomial of second kind evaluated at x (c.f.

◆ chebyshevPoly2nd()

double MuonCalib::chebyshevPoly2nd ( const unsigned int order,
const double x )
constexpr

Returns the n-th Chebyshev polynomial of second kind evaluated at x (c.f.

https://en.wikipedia.org/wiki/Chebyshev_polynomials)

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 32 of file ChebychevPoly.h.

32 {
33 double value{0.};
34 switch (order) {
35 case 0:
36 value = 1.;
37 break;
38 case 1:
39 value = 2.*x;
40 break;
41 default:
42 value = 2.*chebyshevPoly1st(order, x) + chebyshevPoly2nd(order-2, x);
43 }
44 return value;
45 }

◆ chebyshevPoly2nd2Prime()

double MuonCalib::chebyshevPoly2nd2Prime ( const unsigned int order,
const double x )
constexpr

Returns the second derivative of the n-th Chebycheb polynomial of the first second kind.

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 95 of file ChebychevPoly.h.

95 {
96 double value{0.};
97 switch (order) {
98 case 0:
99 case 1:
100 break;
101 default:
102 value = 2.*chebyshevPoly1st2Prime(order, x) + chebyshevPoly2nd2Prime(order-2, x);
103 }
104 return value;
105 }
constexpr double chebyshevPoly2nd2Prime(const unsigned int order, const double x)
Returns the second derivative of the n-th Chebycheb polynomial of the first second kind.
constexpr double chebyshevPoly1st2Prime(const unsigned int order, const double x)
Returns the second derivative of the n-th Chebycheb polynomial of the first kind.

◆ chebyshevPoly2ndPrime()

double MuonCalib::chebyshevPoly2ndPrime ( const unsigned int order,
const double x )
constexpr

Returns the first derivative of the n-th Chebycheb polynomial of the first second kind.

Parameters
orderof the polynomial to evalue
xPlace at which the polynomial is evaluated

Definition at line 65 of file ChebychevPoly.h.

65 {
66 double value{0.};
67 switch (order) {
68 case 0:
69 break;
70 case 1:
71 value = 2.;
72 break;
73 default:
74 value = 2.*chebyshevPoly1stPrime(order, x) + chebyshevPoly2ndPrime(order-2, x);
75 }
76 return value;
77 }
constexpr double chebyshevPoly1stPrime(const unsigned int order, const double x)
Returns the first derivative of the n-th Chebycheb polynomial of the first kind.

◆ clearall()

template<typename T>
void MuonCalib::clearall ( T & container)
inline

Definition at line 83 of file MultilayerRtDifference.cxx.

83 {
84 typename T::iterator it = container.begin();
85 for (; it != container.end(); ++it) {
86 delete *it;
87 *it = NULL;
88 }
89 }

◆ factorial()

unsigned long MuonCalib::factorial ( const int n)
constexpr

Evaluated the n-th factorial at compile time.

Definition at line 51 of file LegendrePoly.h.

51 {
52 if (n > 1) {
53 unsigned long f = n*factorial(n-1);
54 return f;
55 } else {
56 return 1;
57 }
58 }

◆ fetchDataPoints() [1/2]

std::vector< SamplePoint > MuonCalib::fetchDataPoints ( const IRtRelation & rtRel,
const double relUnc )

Constructs a list of sample points from the rt-relation.

The step-wdith between two points is taken from the rtRel bin width method and each point has the same uncertainty of 1 assigned

Parameters
rtRelReference of the rtRelation to transform to points.

Definition at line 19 of file SamplePointUtils.cxx.

19 {
20 assert(relUnc >0);
21 std::vector<SamplePoint> points{};
22 const double stepWidth = rtRel.tBinWidth();
23 double time = rtRel.tLower();
24 while (time <= rtRel.tUpper()){
25 const double r = rtRel.radius(time);
26 points.emplace_back(time, r, relUnc);
27 time+=stepWidth;
28 }
29 return points;
30 }
virtual double tLower() const =0
Returns the lower time covered by the r-t.
virtual double tBinWidth() const =0
Returns the step-size for the sampling.
virtual double tUpper() const =0
Returns the upper time covered by the r-t.
int r
Definition globals.cxx:22

◆ fetchDataPoints() [2/2]

std::vector< SamplePoint > MuonCalib::fetchDataPoints ( const IRtRelation & rtRel,
const IRtResolution & resoFunc )

Constructs a list of sample points from the rt-relation.

The step-wdith between two points is taken from the rtRel bin width method and each point is weighted with the relative resolution

Parameters
rtRelReference of the rtRelation to transform to points.
reoReference to the r-t resolution function

Definition at line 31 of file SamplePointUtils.cxx.

31 {
32 std::vector<SamplePoint> points{};
33 const double stepWidth = rtRel.tBinWidth();
34 double time = rtRel.tLower();
35 while (time <= rtRel.tUpper()){
36 points.emplace_back(time,rtRel.radius(time), reso.resolution(time));
37 time+=stepWidth;
38 }
39 return points;
40 }

◆ fetchResolution()

std::vector< SamplePoint > MuonCalib::fetchResolution ( const std::vector< SamplePoint > & points,
const double uncert )

Creates a new vector of sample points where the x2 is assigned to the uncertainty and the uncertainty is replaced by a constant value.

Parameters
points: List of data points to transform
uncertUncertainty to assign instead

Definition at line 50 of file SamplePointUtils.cxx.

51 {
52 std::vector<SamplePoint> outPoints{};
53 outPoints.reserve(points.size());
54 for (const SamplePoint& point: points) {
55 outPoints.emplace_back(point.x1(),point.error(), uncert);
56 }
57 return outPoints;
58 }

◆ get_group_id()

unsigned int MuonCalib::get_group_id ( const MuonFixedId & id,
const MdtRelativeTubeT0::TubeGroup & grp )
inline

Definition at line 63 of file MdtRelativeTubeT0.cxx.

63 {
64 switch (grp) {
65 case MdtRelativeTubeT0::CHAMBER: return id.mdtChamberId().getIdInt(); break;
66 case MdtRelativeTubeT0::MULTILAYER: return id.mdtMultilayerId().getIdInt(); break;
67 case MdtRelativeTubeT0::LAYER: return 4 * (id.mdtMultilayer() - 1) + (id.mdtTubeLayer() - 1); break;
68 case MdtRelativeTubeT0::MEZZ_CARD: return id.mdtMezzanine(); break;
69 case MdtRelativeTubeT0::UNKNOWN: return 0;
70 }
71 return 0;
72 }

◆ getTLSRandomGen()

TRandom3 * MuonCalib::getTLSRandomGen ( )

Definition at line 22 of file T0MTHistos.cxx.

23 {
24 static boost::thread_specific_ptr<TRandom3> rnd ATLAS_THREAD_SAFE;
25 TRandom3* random = rnd.get();
26 if (!random) {
27 random = new TRandom3();
28 rnd.reset(random);
29 }
30 return random;
31 }
static TRandom * rnd
#define ATLAS_THREAD_SAFE

◆ IID_IIdToFixedIdTool()

const InterfaceID MuonCalib::IID_IIdToFixedIdTool ( "MuonCalib::IdToFixedIdTool" ,
1 ,
0  )
static

◆ IID_IMooPatternForCalibrationTool()

const InterfaceID MuonCalib::IID_IMooPatternForCalibrationTool ( "MuonCalib::IMooPatternForCalibrationTool" ,
1 ,
0  )
static

◆ IID_IMuonCalibConditionsSource()

const InterfaceID MuonCalib::IID_IMuonCalibConditionsSource ( "MuonCalib::IMuonCalibConditionsSource" ,
1 ,
0  )
static

◆ IID_IMuonCalibTool()

const InterfaceID MuonCalib::IID_IMuonCalibTool ( "MuonCalib::IMuonCalibTool" ,
1 ,
0  )
static

◆ IID_IRegionSelectorTool()

const InterfaceID MuonCalib::IID_IRegionSelectorTool ( "MuonCalib::IRegionSelectorTool" ,
1 ,
0  )
static

◆ interval()

std::pair< double, double > MuonCalib::interval ( const std::vector< SamplePoint > & points)

Returns the interval covered by the sample points.

Definition at line 94 of file SamplePointUtils.cxx.

94 {
95 double min{std::numeric_limits<double>::max()}, max{-std::numeric_limits<double>::max()};
96 for (const SamplePoint& point: points) {
97 min = std::min(min, point.x1());
98 max = std::max(max, point.x1());
99 }
100 return std::make_pair(min, max);
101 }
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
This class provides a sample point for the BaseFunctionFitter.
Definition SamplePoint.h:15

◆ legendreDeriv()

double MuonCalib::legendreDeriv ( const unsigned l,
const unsigned d,
const double x )
constexpr

Evaluates the n-th derivative of the l-th Legendre polynomial.

Parameters
xPoint of evaluation [-1;1]
lOrder of the Legendre polynomial
dOrder of the derivative

Definition at line 198 of file LegendrePoly.h.

198 {
199 switch (d) {
200 case 0:
201 return legendrePoly(l,x);
202 break;
208 default:
209 return Legendre::derivativeSum(l, d, x);
210 }
211 return 0.;
212 }
#define DERIVORDERSWITCH(l, d, x)
constexpr double derivativeSum(const double x)
Assembles the n-th derivative of the legendre polynomial.
constexpr double legendrePoly(const unsigned l, const double x)
Calculates the legendre polynomial of rank l at x.

◆ legendrePoly()

double MuonCalib::legendrePoly ( const unsigned l,
const double x )
constexpr

Calculates the legendre polynomial of rank l at x.

Parameters
lOrder of the legendre polynomial
xPoint of evaluation [-1;1]

Definition at line 171 of file LegendrePoly.h.

171 {
172 switch (l) {
173 POLYSWITCH( 0, x);
174 POLYSWITCH( 1, x);
175 POLYSWITCH( 2, x);
176 POLYSWITCH( 3, x);
177 POLYSWITCH( 4, x);
178 POLYSWITCH( 5, x);
179 POLYSWITCH( 6, x);
180 POLYSWITCH( 7, x);
181 POLYSWITCH( 8, x);
182 POLYSWITCH( 9, x);
183 POLYSWITCH(10, x);
184 POLYSWITCH(11, x);
185 POLYSWITCH(12, x);
186 POLYSWITCH(13, x);
187 POLYSWITCH(14, x);
188 POLYSWITCH(15, x);
189 POLYSWITCH(16, x);
190 default:
191 return Legendre::polySum(l, x);
192 }
193 }
#define POLYSWITCH(order, x)
Definition LegendrePoly.h:9
constexpr double polySum(const double x)
Assembles the sum of the legendre monomials.

◆ mapToUnitInterval()

double MuonCalib::mapToUnitInterval ( const double x,
const double lowerEdge,
const double upperEdge )
inline

Maps the number x which is in [lowEdge;upperEdge] to the interval [-1;1].

Parameters
lowerEdgeLower edge of the

Definition at line 12 of file UtilFunc.h.

12 {
13 return 2. * (x - 0.5 * (upperEdge + lowerEdge)) / (upperEdge - lowerEdge);
14 }

◆ minMax()

std::pair< double, double > MuonCalib::minMax ( const std::vector< SamplePoint > & points)

Returns the minimum & maximum values covered by the sample points.

Definition at line 86 of file SamplePointUtils.cxx.

86 {
87 double min{std::numeric_limits<double>::max()}, max{-std::numeric_limits<double>::max()};
88 for (const SamplePoint& point: points) {
89 min = std::min(min, point.x2());
90 max = std::max(max, point.x2());
91 }
92 return std::make_pair(min,max);
93 }

◆ mt_t0_fermi()

Double_t MuonCalib::mt_t0_fermi ( Double_t * x,
Double_t * par )
inline

The fermi function to be fitted at the rising edge of the spectrum.

Definition at line 34 of file T0MTHistos.cxx.

34 {
35 // more convenient parameters
36 const Double_t &t(x[0]);
37 const Double_t &t_0(par[T0MTHistos::T0_PAR_NR_T0]), &T(par[T0MTHistos::T0_PAR_NR_T]), &back(par[T0MTHistos::T0_PAR_NR_BACK]),
39 // the formula
40 return (back + A / (1 + std::exp(-(t - t_0) / T)));
41 }
static constexpr int T0_PAR_NR_T0
parameter numbers in t0 fit
Definition T0MTHistos.h:57
static constexpr int T0_PAR_NR_T
Definition T0MTHistos.h:57
static constexpr int T0_PAR_NR_A
Definition T0MTHistos.h:57
static constexpr int T0_PAR_NR_BACK
Definition T0MTHistos.h:57
hold the test vectors and ease the comparison

◆ mt_tmax_fermi()

Double_t MuonCalib::mt_tmax_fermi ( Double_t * x,
Double_t * par )
inline

The fermi function to be fitted at the trailing slope of the spectrum.

Definition at line 44 of file T0MTHistos.cxx.

44 {
45 // more convenient parameters
46 Double_t &t(x[0]);
49 // the formula
50 return (back + (std::exp(a + b * (t - t_0))) / (1 + std::exp((t - t_max) / T)));
51 }
static Double_t a
static constexpr int TMAX_PAR_NR_TMAX
parameters numbers for tmax fit
Definition T0MTHistos.h:61
static constexpr int TMAX_PAR_NR_T0
Definition T0MTHistos.h:62
static constexpr int TMAX_PAR_NR_T
Definition T0MTHistos.h:61
static constexpr int TMAX_PAR_NR_B
Definition T0MTHistos.h:61
static constexpr int TMAX_PAR_NR_BACK
Definition T0MTHistos.h:61
static constexpr int TMAX_PAR_NR_A
Definition T0MTHistos.h:61

◆ MultilayerRtDifference_ScaleFunction()

Double_t MuonCalib::MultilayerRtDifference_ScaleFunction ( Double_t * x,
Double_t * par )

Definition at line 35 of file MultilayerRtDifference.cxx.

35{ return par[0] * RtScalePolynomial(x[0]); }
float RtScalePolynomial(const float r)

◆ myexp()

Double_t MuonCalib::myexp ( Double_t * x,
Double_t * p )
inline

Definition at line 18 of file MTTmaxPatternRecognition.cxx.

18{ return std::exp(p[0] + p[1] * (x[0] - p[3])) + p[2]; }

◆ normalizeDomain()

std::vector< SamplePoint > MuonCalib::normalizeDomain ( const std::vector< SamplePoint > & dataPoints)

Normalizes the domain of the samples points to the interval -1 to 1.

Definition at line 78 of file SamplePointUtils.cxx.

78 {
79 const auto [minX, maxX] = interval(dataPoints);
80 std::vector<SamplePoint> normedPoints{dataPoints};
81 for (unsigned k = 0; k < dataPoints.size(); ++k) {
82 normedPoints[k].set_x1(mapToUnitInterval(normedPoints[k].x1(), minX, maxX));
83 }
84 return normedPoints;
85 }
std::pair< double, double > interval(const std::vector< SamplePoint > &points)
Returns the interval covered by the sample points.
double mapToUnitInterval(const double x, const double lowerEdge, const double upperEdge)
Maps the number x which is in [lowEdge;upperEdge] to the interval [-1;1].
Definition UtilFunc.h:12

◆ OnlineToOffline()

MuonFixedId MuonCalib::OnlineToOffline ( const std::string & online_id)

Definition at line 13 of file OfflineOnlineIdConversion.cxx.

14 {
15 MuonFixedId ret(0), invalid;
16 ret.set_mdt();
17//minimum size of idenifier is 7
18 if (online_id.size()!=7 && online_id.size()!=9)
19 {
20 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
21 log<<MSG::WARNING<<"Wrong length for online_id="<<online_id<<endmsg;
22 return invalid;
23 }
24//check for A/C side
25 bool c_side(false);
26 if(online_id[4]!='A' && online_id[4]!='C' && online_id[4]!='B')
27 {
28 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
29 log<<MSG::WARNING<<"Invalid side for online_id="<<online_id<<endmsg;
30 return invalid;
31 }
32 if(online_id[4]=='C')
33 {
34 c_side=true;
35 }
36//set station name
37 std::string station_nm_string(online_id, 0, 3);
38 int station_mm = MuonFixedId::stationStringToFixedStationNumber(station_nm_string);
39 if (station_mm<0)
40 {
41 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
42 log<<MSG::WARNING<<"Invalid station name for online_id="<<online_id<<endmsg;
43 return invalid;
44 }
45//set eta
46 ret.setStationName(station_mm);
47 char eta_str[2];
48 char *endptr;
49 eta_str[0]=online_id[3];
50 eta_str[1]='\0';
51 long int eta=strtol(eta_str, &endptr, 10);
52 if(endptr!=&(eta_str[1]))
53 {
54 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
55 log<<MSG::WARNING<<"eta is not a number for online_id="<<online_id<<endmsg;
56 return invalid;
57 }
58//set phi
59 char phi_str[3];
60 phi_str[0]=online_id[5];
61 phi_str[1]=online_id[6];
62 phi_str[2]='\0';
63 long int phi=strtol(phi_str, &endptr, 10);
64 if(endptr!=&(phi_str[2]))
65 {
66 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
67 log<<MSG::WARNING<<"phi is not a number for online_id="<<online_id<<endmsg;
68 return invalid;
69 }
70//treat special cases
71 if(phi==13 && eta>3 && station_nm_string=="BML")
72 {
73 eta--;
74 }
75 if(station_nm_string=="BOF")
76 eta=(eta+1)/2;
77 else if(station_nm_string=="BOG")
78 eta/=2;
79 else
80 {
81 if((phi==1 || phi==9) && station_nm_string=="EIL")
82 {
83 if(eta==5) eta=4;
84 else if(eta==4) eta=5;
85 }
86 if(phi==5 && station_nm_string=="EEL") eta=1;
87 }
88//convert online to offline phi
89 if(station_nm_string[2]=='L' || station_nm_string[2]=='M' || station_nm_string[2]=='R')
90 {
91 phi++;
92 }
93 phi/=2;
94 ret.setStationEta(c_side?(eta*-1):eta);
95 ret.setStationPhi(phi);
96//set multilayer id if present
97 if(online_id.size()==9)
98 {
99 switch(online_id[8])
100 {
101 case '1':
102 ret.setMdtMultilayer(1);
103 break;
104 case '2':
105 ret.setMdtMultilayer(2);
106 break;
107 default:
108 MsgStream log(Athena::getMessageSvc(),"OnlineToOffline");
109 log<<MSG::WARNING<<"Multilayer is neither 1 or 2 for online_id="<<online_id<<endmsg;
110 return invalid;
111 }
112 return ret.mdtMultilayerId();
113 }
114 return ret.mdtChamberId();
115 }
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define endmsg
Implements fixed identifiers not dependent upon Athena Identifier for internal use in the calibration...
Definition MuonFixedId.h:50
static int stationStringToFixedStationNumber(const std::string &station)
void set_mdt()
set identifier to MDT technology type
IMessageSvc * getMessageSvc(bool quiet=false)

◆ operator<<() [1/9]

std::ostream & MuonCalib::operator<< ( std::ostream & os,
const MuonCalib::MuonFixedId & id )
inline

Definition at line 1200 of file MuonFixedId.h.

1200 {
1201 return id.dump( os );
1202}

◆ operator<<() [2/9]

std::ostream & MuonCalib::operator<< ( std::ostream & os,
const MuonCalib::MuonFixedLongId & id )
inline

Definition at line 1577 of file MuonFixedLongId.h.

1577 {
1578 return id.dump( os );
1579}

◆ operator<<() [3/9]

std::ostream & MuonCalib::operator<< ( std::ostream & os,
const RtData_t_r_reso & data )

Definition at line 99 of file RtData_t_r_reso.cxx.

99{ return data.write(os); }
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

◆ operator<<() [4/9]

std::ostream & MuonCalib::operator<< ( std::ostream & os,
const RtFullInfo & data )

Definition at line 13 of file RtFullInfo.cxx.

13{ return data.write(os); }

◆ operator<<() [5/9]

std::ostream & MuonCalib::operator<< ( std::ostream & s,
const CscCondParType & type )
inline

Definition at line 71 of file CscCondParType.h.

71 {
72 switch(type) {
73
75 return s << "GAIN";
77 return s << "PULSE_SLOPE";
79 return s << "RUN_SLOPE";
81 return s << "PED";
83 return s << "NOISE";
85 return s << "THOLD";
87 return s << "PEAKT";
89 return s << "WIDTH";
91 return s << "SAT1";
93 return s << "SAT2";
95 return s << "PEAKC";
97 return s << "SAMPLE_TIME_RATIO";
99 return s << "OCCUPANCY";
101 return s << "STAT";
103 return s << "HOT_STAT";
105 return s << "DEAD_STAT";
107 return s << "PULSE_STAT";
109 return s << "SAT_STAT";
110 default:
111 return s << "UNKNOWN";
112 };
113 }

◆ operator<<() [6/9]

std::ostream & MuonCalib::operator<< ( std::ostream & s,
const RpcCondParType & type )
inline

Definition at line 60 of file RpcCondParType.h.

60 {
61 switch(type) {
62
64 return s << "EFF";
66 return s << "ERREFF";
68 return s << "RES1";
70 return s << "RES2";
72 return s << "RESX";
74 return s << "ERRRES1";
76 return s << "ERRRES2";
78 return s << "ERRRESX";
80 return s << "TIME";
82 return s << "ERRTIME";
84 return s << "NOISE";
86 return s << "NOISEC";
88 return s << "ERRNOISE";
90 return s << "ERRNOISEC";
91 default:
92 return s << "UNKNOWN";
93 };
94 }

◆ operator<<() [7/9]

std::ostream & MuonCalib::operator<< ( std::ostream & stream,
const CscCalibHitBase & hit )

Definition at line 26 of file CscCalibHitBase.cxx.

26{ return hit.dump(stream); }
std::ostream & dump(std::ostream &stream) const
dump method used to implement operator<<() of the CscCalibHitBase

◆ operator<<() [8/9]

std::ostream & MuonCalib::operator<< ( std::ostream & stream,
const RpcCalibHitBase & hit )

Definition at line 59 of file RpcCalibHitBase.cxx.

59{ return hit.dump(stream); }
std::ostream & dump(std::ostream &stream) const
dump to be used for operator<<() to dump the RpcCalibHitBase

◆ operator<<() [9/9]

std::ostream & MuonCalib::operator<< ( std::ostream & stream,
const TgcCalibHitBase & hit )

Definition at line 64 of file TgcCalibHitBase.cxx.

64{ return hit.dump(stream); }
std::ostream & dump(std::ostream &stream) const
dump to be used for operator<<() to dump the TgcCalibHitBase

◆ operator>>() [1/2]

std::istream & MuonCalib::operator>> ( std::istream & is,
RtData_t_r_reso & data )

Definition at line 97 of file RtData_t_r_reso.cxx.

97{ return data.read(is); }

◆ operator>>() [2/2]

std::istream & MuonCalib::operator>> ( std::istream & is,
RtFullInfo & data )

Definition at line 11 of file RtFullInfo.cxx.

11{ return data.read(is); }

◆ pow() [1/2]

template<int k>
double MuonCalib::pow ( const double x)
constexpr

Calculate the power of a variable x at compile time.

Definition at line 65 of file LegendrePoly.h.

65 {
66 if constexpr (k < 0) {
67 return pow<-k>(1./x);
68 } else if constexpr(k > 0) {
69 return x*pow<k-1>(x);
70 } else {
71 return 1.;
72 }
73 }
constexpr int pow(int base, int exp) noexcept
constexpr double pow(const double x)
Calculate the power of a variable x at compile time.

◆ pow() [2/2]

double MuonCalib::pow ( double x,
int power )
constexpr

Calculate the power of a variable at run time.

Definition at line 75 of file LegendrePoly.h.

75 {
76 double res{1.};
77 if (power < 0) {
78 x = 1./x;
79 power = - power;
80 }
81 for (int iter = 1; iter<=power; ++iter) {
82 res*=x;
83 }
84 return res;
85 }
std::pair< std::vector< unsigned int >, bool > res

◆ resoFromRadius()

std::vector< SamplePoint > MuonCalib::resoFromRadius ( const std::vector< SamplePoint > & points,
const double uncert )

Creates a new vector of sample points where the x2 coordinate becomes the x1 coordinate and the resolution becomes x2.

Each point has the same uncertainty assigned

Parameters
pointsList of rt- sample points of interest
uncertUncertainty oon each point

Definition at line 41 of file SamplePointUtils.cxx.

42 {
43 std::vector<SamplePoint> outPoints{};
44 outPoints.reserve(points.size());
45 for (const SamplePoint& point: points) {
46 outPoints.emplace_back(point.x2(),point.error(), uncert);
47 }
48 return outPoints;
49 }

◆ RtScaleFunction()

float MuonCalib::RtScaleFunction ( const float t,
const bool ml2,
const IRtRelation & rtrelation )

Definition at line 20 of file RtScaleFunction.cxx.

20 {
21 if (t < rt.tLower() || !rt.hasTmaxDiff()) return 0.0;
22 // apply linear scale and calculate r as input to the polinomial
23 float rt_length = rt.tUpper() - rt.tLower();
24 float corr_val = (t / rt_length) * rt.GetTmaxDiff() * (ml2 ? -0.5 : +0.5);
25 float newt = t - corr_val;
26 // keep linear scale for t>t_max
27 if (newt > rt.tUpper()) return corr_val;
28
29 // calculate polynomial
30 float p = 0;
31 float r = rt.radius(newt);
32 for (int i = 5; i >= 0; i--) { p = RtScaleFunction_p[i] + r * p; }
33 return p * rt.GetTmaxDiff() * (ml2 ? -0.5 : +0.5);
34 }
static constexpr std::array< double, 6 > RtScaleFunction_p

◆ RtScalePolynomial()

float MuonCalib::RtScalePolynomial ( const float r)

Definition at line 13 of file RtScaleFunction.cxx.

13 {
14 // calculate polynomial
15 float p = 0;
16 for (int i = 5; i >= 0; i--) { p = RtScaleFunction_p[i] + r * p; }
17 return p;
18 }

◆ swapCoordinates()

std::vector< SamplePoint > MuonCalib::swapCoordinates ( const std::vector< SamplePoint > & points,
const IRtRelation & rtRel )

Creates a new vector of samples points with x1 exchanged by x2 and vice-versa.

Each point has the same uncertainty assigned.

Parameters
pointsList of rt- sample points of interest
rtRelReference to the rt-relation to calculate each point's uncertainty.

Definition at line 61 of file SamplePointUtils.cxx.

62 {
63
64 std::vector<SamplePoint> outPoints{};
65 outPoints.reserve(inPoints.size());
66 /*
67 * Let's suppose that dY = f^{\prime} dX
68 */
69 for (const SamplePoint& in : inPoints) {
70 const double fPrime = std::abs(rtRel.driftVelocity(in.x1()));
71 outPoints.emplace_back(in.x2(), in.x1(), in.error() / (fPrime > 0 ? fPrime : 1.));
72 }
73 std::ranges::sort(outPoints, [](const SamplePoint& a, const SamplePoint& b) {
74 return a.x1() < b.x1();
75 });
76 return outPoints;
77 }
virtual double driftVelocity(double t) const =0
Returns the drift velocity for a given time.

◆ TimeSpectrum_func()

Double_t MuonCalib::TimeSpectrum_func ( Double_t * xx,
Double_t * par )
inline

Definition at line 24 of file T0CalibrationClassic.cxx.

24 {
25 Double_t &x(xx[0]);
26 return par[0] + (par[1] * (1 + par[2] * std::exp(-(x - par[4]) / par[3]))) /
27 ((1 + std::exp((-x + par[4]) / par[6])) * (1 + std::exp((x - par[5]) / par[7])));
28 }

◆ unitIntervalPrime()

double MuonCalib::unitIntervalPrime ( const double lowerEdge,
const double upperEdge )
inline

Definition at line 15 of file UtilFunc.h.

15 {
16 return 2. / (upperEdge - lowerEdge);
17 }

Variable Documentation

◆ RtScaleFunction_p

std::array<double, 6> MuonCalib::RtScaleFunction_p {-0.00102327, 0.00582117, -0.00676815, 0.00167504, -8.67371e-05, 1.66509e-06}
staticconstexpr

Definition at line 11 of file RtScaleFunction.cxx.

11{-0.00102327, 0.00582117, -0.00676815, 0.00167504, -8.67371e-05, 1.66509e-06};