Project
Loading...
Searching...
No Matches
o2::mch Namespace Reference

Namespaces

namespace  calibration
 
namespace  constants
 
namespace  contour
 
namespace  dcs
 
namespace  eval
 
namespace  geo
 get the local-to-global transformation for a given detection element
 
namespace  internal
 
namespace  io
 
namespace  mapping
 
namespace  raw
 
namespace  test
 

Classes

class  Aligner
 
class  AlignmentTask
 
class  AlignRecordTask
 
class  Array
 self initialized array, used for adding constraints More...
 
class  ChannelCode
 
struct  Cluster
 cluster minimal structure More...
 
struct  ClusterConfig
 
class  ClusterDump
 
class  ClusterFinderGEM
 
class  ClusterFinderGEMTask
 
class  ClusterFinderOriginal
 
class  ClusterFinderOriginalTask
 
struct  ClusterizerParam
 Configurable parameters for MCH clustering. More...
 
class  ClusterOriginal
 cluster for internal use More...
 
class  ClusterPEM
 
struct  ClusterReader
 
class  ClusterTransformerTask
 
struct  CoDecParam
 
struct  CompressedPads_t
 
struct  CTF
 wrapper for the Entropy-encoded clusters of the TF More...
 
class  CTFCoder
 
struct  CTFHeader
 Header for a single CTF. More...
 
class  CTFHelper
 
struct  dataFit
 
class  DecoderError
 MCH decoder error implementation. More...
 
class  DEDigitizer
 MCH digitizer dealing with a single detection element. More...
 
class  Detector
 
class  Digit
 MCH digit implementation. More...
 
class  DigitFilteringTask
 
class  DigitFilterParam
 Configurable parameters for the digit filtering. More...
 
class  Digitizer
 
struct  DigitizerParam
 
class  DigitsReaderDeviceDPL
 
class  DsChannelId
 
class  EntropyDecoderSpec
 
class  EntropyEncoderSpec
 
struct  Error
 
class  ErrorMap
 A container class to summarize errors encountered during processing. More...
 
class  ErrorMergerTask
 
struct  ErrorReader
 
class  EventFinder
 Class to group MCH digits based on MID information. More...
 
struct  EventFinderParam
 Configurable parameters to group MCH digits based on MID information. More...
 
class  EventFinderTask
 
class  HeartBeatPacket
 MCH heart-beat packet implementation. More...
 
class  Hit
 
class  HVStatusCreator
 Find HV issues from DCS data points and add them to the status map. More...
 
class  LocalTrackClusterResidual
 local track residual, for tempoarary eval More...
 
class  LocalTrackParam
 local track parameters, for refit More...
 
struct  MapKToIJ_t
 
class  Mapping
 
class  MathiesonOriginal
 Original Mathieson function. More...
 
class  MCHDPLDigitizerTask
 
class  OrbitInfo
 MCH orbit info implementation. More...
 
struct  Pad
 
class  PadOriginal
 pad for internal use More...
 
class  Pads
 
struct  PreCluster
 precluster minimal structure More...
 
class  PreClusterFinder
 
struct  PreClusterFinderParam
 Configurable parameters for MCH preclustering. More...
 
class  PreClusterFinderTask
 
struct  PreClusterReader
 
class  PreClusterSinkTask
 
class  Response
 
struct  ResponseParam
 Configurable parameters for MCH clustering. More...
 
class  ROFRecord
 
class  ROFTimeClusterFinder
 
struct  SanityError
 
class  SeederTask
 
struct  SplineCoef
 
class  StatusMap
 
class  StatusMapCreatorParam
 Configurable parameters for the statusmap creator. More...
 
class  StatusMapCreatorTask
 
struct  StatusMapReader
 
class  Stepper
 
class  TimeClusterFinderTask
 
class  TimeClusterizerParam
 Configurable parameters for the time clustering. More...
 
class  Track
 track for internal use More...
 
class  TrackAtVertexTask
 
struct  TrackAtVtxStruct
 
struct  TrackDumper
 
struct  TrackerParam
 Configurable parameters for MCH tracking. More...
 
class  TrackExtrap
 Class holding tools for track extrapolation. More...
 
class  TrackFinder
 Class to reconstruct tracks. More...
 
class  TrackFinderOriginal
 Class to reconstruct tracks with the original algorithm. More...
 
class  TrackFinderTask
 
class  TrackFitter
 Class to fit a track to a set of clusters. More...
 
class  TrackFitterTask
 
class  TrackMCH
 MCH track external format. More...
 
class  TrackMCLabelFinderTask
 
class  TrackParam
 track parameters for internal use More...
 
struct  TrackParamStruct
 track parameters minimal structure More...
 
struct  TrackReader
 
class  TrackSamplerTask
 
class  TrackSinkTask
 
class  VertexSamplerSpec
 

Typedefs

using DsChannelGroup = std::vector< DsChannelId >
 
using DataRequest = o2::globaltracking::DataRequest
 
using GID = o2::dataformats::GlobalTrackID
 
typedef int PadIdx_t
 
typedef short Groups_t
 
typedef short Mask_t
 
typedef std::pair< int, double * > DataBlock_t
 
typedef double realtype
 
typedef struct o2::mch::SplineCoef SplineCoef_t
 
typedef struct o2::mch::dataFit funcDescription_t
 
typedef std::function< bool(const Digit &)> DigitFilter
 
using DsIndex = uint16_t
 
template<typename T >
using BranchDefinition = MakeRootTreeWriterSpec::BranchDefinition< T >
 
using RDH = o2::header::RDHAny
 
typedef std::function< bool(const ROFRecord &)> ROFFilter
 

Enumerations

enum class  ErrorGroup : uint8_t {
  Unassigned , Decoding , Filtering , TimeClustering ,
  PreClustering , Clustering , Tracking
}
 
enum class  ErrorType : uint32_t {
  PreClustering_MultipleDigitsInSamePad = internal::buildTypeGID(ErrorGroup::PreClustering, 0) , PreClustering_LostDigit = internal::buildTypeGID(ErrorGroup::PreClustering, 1) , Clustering_TooManyLocalMaxima = internal::buildTypeGID(ErrorGroup::Clustering, 0) , Tracking_TooManyCandidates = internal::buildTypeGID(ErrorGroup::Tracking, 0) ,
  Tracking_TooLong = internal::buildTypeGID(ErrorGroup::Tracking, 1)
}
 
enum  Medium {
  Gas , Carbon , HoneyNomex , BulkNomex ,
  Noryl , Copper , FR4 , Rohacell ,
  Glue , Plastic , Epoxy , Inox ,
  St1Rohacell , Aluminium
}
 
enum  tCheckNoLeftoverDigits { CHECK_NO_LEFTOVER_DIGITS_QUIET , CHECK_NO_LEFTOVER_DIGITS_ERROR , CHECK_NO_LEFTOVER_DIGITS_FATAL }
 
enum class  Station { Type1 , Type2345 }
 

Functions

std::ostream & operator<< (std::ostream &stream, const Cluster &cluster)
 
std::ostream & operator<< (std::ostream &, const CTFHeader &)
 
std::ostream & operator<< (std::ostream &os, const Digit &d)
 
std::ostream & operator<< (std::ostream &os, const ROFRecord &rof)
 
std::ostream & operator<< (std::ostream &os, const TrackMCH &t)
 
std::string asString (const o2::mch::TrackMCH &t)
 
bool closeEnough (double x, double y, double eps=1E-6)
 
Double_t Square (Double_t x)
 
o2::framework::DataProcessorSpec getAlignmentSpec (bool disableCCDB=false)
 
o2::framework::DataProcessorSpec getAlignRecordSpec (bool useMC, bool disableCCDB=false)
 
double Square (double x)
 
constexpr ErrorGroup errorGroup (ErrorType error)
 
bool isOK (const SanityError &error)
 
std::string asString (const SanityError &error)
 
template<typename T >
SanityError sanityCheck (gsl::span< const ROFRecord > rofs, gsl::span< const T > items)
 
bool isTrackable (std::array< int, 10 > itemsPerChamber, std::array< bool, 5 > requestStation={true, true, true, true, true}, bool moreCandidates=false)
 
template<typename T >
std::array< int, 10 > perChamber (gsl::span< const T > items)
 
template<typename T >
std::array< int, 5 > perStation (gsl::span< const T > items)
 
std::ostream & operator<< (std::ostream &stream, const TrackParamStruct &trackParam)
 
uint64_t encode (uint32_t a, uint32_t b)
 
std::pair< uint32_t, uint32_t > decode (uint64_t x)
 
template<>
std::array< int, 10 > perChamber (gsl::span< const int > deids)
 
template<>
std::array< int, 10 > perChamber (gsl::span< const Digit > digits)
 
void initClusterConfig ()
 
gsl_matrix * moore_penrose_pinv (gsl_matrix *A, double rcond)
 
void collectGroupMapping (Mask_t *padToMGrp, int nPads)
 
void collectSeeds (double *theta, o2::mch::Groups_t *thetaToGroup, int K)
 
void cleanClusterResults ()
 
bool shouldUsePad (const PadOriginal &pad, int plane, int statusMask, bool matchMask)
 
void print_matrix (const gsl_matrix *m)
 
void printGSLVector (const char *str, const gsl_vector *v)
 
int main ()
 
void initMathieson (int useSpline_, int useCache_)
 
void initSplineMathiesonPrimitive ()
 
void computeSplineCoef (const double *xy, double xyStep, const double *f, int N, double leftDerivative, double rightDerivative, SplineCoef *splineCoef)
 
void splineMathiesonPrimitive (const double *x, int N, int axe, int chamberId, double *mPrimitive)
 
void mathiesonPrimitive (const double *xy, int N, int axe, int chamberId, double mPrimitive[])
 
void compute1DMathieson (const double *xy, int N, int axe, int chamberId, double mathieson[])
 
void compute1DPadIntegrals (const double *xyInf, const double *xySup, int N, double xy0, int axe, int chamberId, double *integrals)
 
void compute1DPadIntegrals (const double *xyInf, const double *xySup, int N, int axe, int chamberId, double *Integrals)
 
int compressSameValues (const double *x1, const double *x2, int *map1, int *map2, int N, double *xCompress)
 
CompressedPads_tcompressPads (const double *xInf, const double *xSup, const double *yInf, const double *ySup, int N)
 
void deleteCompressedPads (CompressedPads_t *compressedPads)
 
void computeCompressed2DPadIntegrals (CompressedPads_t *compressedPads, double xShift, double yShift, int N, int chamberId, double Integrals[])
 
void compute2DPadIntegrals (const double *xInf, const double *xSup, const double *yInf, const double *ySup, int N, int chamberId, double Integrals[])
 
void compute2DMathiesonMixturePadIntegrals (const double *xyInfSup0, const double *theta, int N, int K, int chamberId, double Integrals[])
 
bool checkIntegrals (const double *xInf, const double *xSup, const double *yInf, const double *ySup, const double *integralsToCheck, int chId, int N)
 
void computeFastCij (const Pads &pads, const Pads &pixel, double Cij[])
 
void computeFastCijV0 (const Pads &pads, const Pads &pixel, double Cij[])
 
void computeCij (const Pads &pads, const Pads &pixel, double Cij[])
 
void checkCij (const Pads &pads, const Pads &pixels, const double *checkCij, int mode)
 
double * getVarX (double *theta, int K)
 
double * getVarY (double *theta, int K)
 
double * getMuX (double *theta, int K)
 
double * getMuY (double *theta, int K)
 
double * getW (double *theta, int K)
 
double * getMuAndW (double *theta, int K)
 
const double * getConstVarX (const double *theta, int K)
 
const double * getConstVarY (const double *theta, int K)
 
const double * getConstMuX (const double *theta, int K)
 
const double * getConstMuY (const double *theta, int K)
 
const double * getConstW (const double *theta, int K)
 
const double * getConstMuAndW (const double *theta, int K)
 
double * getX (double *xyDxy, int N)
 
double * getY (double *xyDxy, int N)
 
double * getDX (double *xyDxy, int N)
 
double * getDY (double *xyDxy, int N)
 
const double * getConstX (const double *xyDxy, int N)
 
const double * getConstY (const double *xyDxy, int N)
 
const double * getConstDX (const double *xyDxy, int N)
 
const double * getConstDY (const double *xyDxy, int N)
 
double * getXInf (double *xyInfSup, int N)
 
double * getYInf (double *xyInfSup, int N)
 
double * getXSup (double *xyInfSup, int N)
 
double * getYSup (double *xyInfSup, int N)
 
const double * getConstXInf (const double *xyInfSup, int N)
 
const double * getConstYInf (const double *xyInfSup, int N)
 
const double * getConstXSup (const double *xyInfSup, int N)
 
const double * getConstYSup (const double *xyInfSup, int N)
 
void copyTheta (const double *theta0, int K0, double *theta, int K1, int K)
 
void copyXYdXY (const double *xyDxy0, int N0, double *xyDxy, int N1, int N)
 
void printTheta (const char *str, double meanCharge, const double *theta, int K)
 
void xyDxyToxyInfSup (const double *xyDxy, int nxyDxy, double *xyInfSup)
 
void maskedCopyXYdXY (const double *xyDxy, int nxyDxy, const Mask_t *mask, int nMask, double *xyDxyMasked, int nxyDxyMasked)
 
void maskedCopyToXYInfSup (const double *xyDxy, int ndxyDxy, const Mask_t *mask, int nMask, double *xyDxyMasked, int ndxyDxyMasked)
 
void maskedCopyTheta (const double *theta, int K, const Mask_t *mask, int nMask, double *maskedTheta, int maskedK)
 
void printXYdXY (const char *str, const double *xyDxy, int NMax, int N, const double *val1, const double *val2)
 
void compute1DPadIntegrals (const double *xInf, const double *xSup, int N, int axe, int chamberId, double Integrals[])
 
void printState (int iter, gsl_multifit_fdfsolver *s, int axe, int K, int N)
 
void fitMathieson (const Pads &iPads, double *thetaInit, int kInit, int dimOfParameters, int axe, int mode, double *thetaFinal, double *khi2, double *pError)
 
void printState (int iter, gsl_multifit_fdfsolver *s, int K)
 
void vectorPrint (const char *str, const double *x, int K)
 
void vectorPrintInt (const char *str, const int *x, int K)
 
void vectorPrintShort (const char *str, const short *x, int K)
 
void vectorPrint2Columns (const char *str, const double *x, const double *y, int K)
 
void printMatrixInt (const char *str, const int *matrix, int N, int M)
 
void printMatrixShort (const char *str, const short *matrix, int N, int M)
 
void printMatrixChar (const char *str, const char *matrix, int N, int M)
 
void printInterMap (const char *str, const PadIdx_t *inter, int N)
 
void deleteDouble (double *ptr)
 
void deleteInt (int *ptr)
 
void deleteShort (short *ptr)
 
auto findPad (std::vector< PadOriginal > &pads, double x, double y, double minCharge)
 
bool areOverlapping (const PadOriginal &pad1, const PadOriginal &pad2, double precision)
 
void iterateEMPoisson (const double *Cij, const double *Ci, const Mask_t *maskCij, const double *qPixels, const double *qPad, double *qPadPrediction, int nPixels, int nPads, double *newQPixels)
 
void fastIterateEMPoissonV0 (const double *Cij, const double *Ci, const double *qPixels, const double *qPad, double *qPadPrediction, int nPixels, int nPads, double *newQPixels)
 
void fastIterateEMPoisson (const double *Cij, const double *Ci, const double *qPixels, const double *qPad, double *qPadPrediction, int nPixels, int nPads, double *newQPixels)
 
double computeChiSquare (const Pads &pads, const double *qPredictedPads, int iStart, int iEnd)
 
std::pair< double, double > computeChiSquare (const Pads &pads, const double *qPredictedPads, int N)
 
std::pair< double, double > PoissonEMLoop (const Pads &pads, Pads &pixels, const double *Cij, Mask_t *maskCij, int qCutMode, double minPadError, int nItMax)
 
framework::DataProcessorSpec getEntropyDecoderSpec (int verbosity, const char *specName, unsigned int sspec)
 create a processor spec
 
o2::framework::DataProcessorSpec getPreClusterSinkSpec (const char *specName)
 
o2::framework::DataProcessorSpec getTrackSamplerSpec (const char *specName, bool forTrackFitter)
 
o2::framework::DataProcessorSpec getTrackSinkSpec (const char *specName, bool mchTracks, bool tracksAtVtx)
 
DigitFilter createDigitFilter (uint32_t minADC, bool rejectBackground, bool selectSignal, const StatusMap &statusMap={}, uint32_t statusMask=0)
 
o2::framework::DataProcessorSpec getDigitFilteringSpec (bool useMC, std::string_view specName="mch-digit-filtering", std::string_view inputDigitDataDescription="DIGITS", std::string_view outputDigitDataDescription="F-DIGITS", std::string_view inputDigitRofDataDescription="DIGITROFS", std::string_view outputDigitRofDataDescription="F-DIGITROFS", std::string_view inputDigitLabelDataDescription="DIGITLABELS", std::string_view outputDigitLabelDataDescription="F-DIGITLABELS")
 
void report (const std::map< int, std::vector< int > > &rejectList, uint32_t statusMask)
 
DigitFilter createBadChannelFilter (const StatusMap &statusMap, uint32_t statusMask)
 
void createMaterials ()
 
TGeoMedium * assertMedium (int imed)
 
void createHole ()
 
void createDaughterBoard ()
 
void createInnerLayers ()
 
void createSpacer ()
 
void createFrame (int chamber)
 
TGeoVolume * createPlaneSegment (int iSegment, float halfLength, float halfHeight, int nHoles)
 
void placeInnerLayers (int chamber)
 
TGeoVolumeAssembly * createQuadrant (int chamber)
 
void createStation1Geometry (TGeoVolume &topVolume)
 
std::vector< TGeoVolume * > getStation1SensitiveVolumes ()
 
TGeoVolume * createSegment (int i)
 
void createFrames ()
 
TGeoVolume * createQuadrant ()
 
void createStation2Geometry (TGeoVolume &topVolume)
 
std::vector< TGeoVolume * > getStation2SensitiveVolumes ()
 
TGeoVolume * getDualSampa ()
 
bool isRounded (string name)
 
bool isShort (string name)
 
TGeoCompositeShape * getRoundedShape (const char *name, float halfThickness, float xPos, float yPos, float radius)
 
void createCommonVolumes ()
 
void createPCBs ()
 
void createSlats ()
 
void createSupportPanels ()
 
void buildHalfChambers (TGeoVolume &topVolume)
 
vector< TGeoVolume * > getStation345SensitiveVolumes ()
 
void createStation345Geometry (TGeoVolume &topVolume)
 
o2::framework::DataProcessorSpec getClusterTransformerSpec (const char *specName="mch-cluster-transformer", bool disableCcdb=false)
 
void local2global (geo::TransformationCreator transformation, gsl::span< const Cluster > localClusters, std::vector< Cluster, o2::pmr::polymorphic_allocator< Cluster > > &globalClusters)
 
std::string asString (const ChannelCode &cc)
 
bool operator== (const ChannelCode &a, const ChannelCode &b)
 
bool operator!= (const ChannelCode &a, const ChannelCode &b)
 
bool operator< (const ChannelCode &a, const ChannelCode &b)
 
bool operator> (const ChannelCode &a, const ChannelCode &b)
 
bool operator<= (const ChannelCode &a, const ChannelCode &b)
 
bool operator>= (const ChannelCode &a, const ChannelCode &b)
 
DsIndex getDsIndex (const o2::mch::raw::DsDetId &dsDetId)
 
o2::mch::raw::DsDetId getDsDetId (DsIndex dsIndex)
 
uint8_t numberOfDualSampaChannels (DsIndex dsIndex)
 
template<typename KEY , typename VALUE >
std::map< VALUE, KEY > inverseMap (const std::map< KEY, VALUE > &src)
 
std::map< uint32_t, uint16_t > buildDetId2DsIndexMap ()
 
o2::framework::DataProcessorSpec getClusterReaderSpec (bool useMC, const char *specName="mch-cluster-reader", bool global=true, bool digits=false)
 
o2::framework::DataProcessorSpec getClusterWriterSpec (bool useMC, const char *specName="mch-cluster-writer", bool global=true, bool digits=true)
 
framework::DataProcessorSpec getDigitReaderSpec (bool useMC, std::string_view specName="mch-digit-reader", std::string_view outputDigitDataDescription="DIGITS", std::string_view outputDigitRofDataDescription="DIGITROFS", std::string_view outputDigitLabelDataDescription="DIGITLABELS")
 
o2::framework::DataProcessorSpec getMCHDigitWriterSpec (bool mctruth)
 
o2::framework::DataProcessorSpec getDigitWriterSpec (bool useMC, std::string_view specName="mch-digit-writer", std::string_view outfile="mchdigits.root", std::string_view inputDigitDataDescription="DIGITS", std::string_view inputDigitRofDataDescription="DIGITROFS", std::string_view inputDigitLabelDataDescription="DIGITLABELS")
 
o2::framework::DataProcessorSpec getPreClusterReaderSpec (bool useMC, const char *specName="mch-precluster-reader")
 
o2::framework::DataProcessorSpec getPreClusterWriterSpec (bool useMC, const char *specName="mch-precluster-writer")
 
o2::framework::DataProcessorSpec getTrackReaderSpec (bool useMC, const char *specName="mch-tracks-reader", bool digits=false, uint32_t subspec=0)
 
o2::framework::DataProcessorSpec getTrackWriterSpec (bool useMC, const char *specName="mch-track-writer", const char *fileName="mchtracks.root", bool digits=false)
 
DataProcessorSpec getStatusMapReaderSpec (const char *specName)
 
DataProcessorSpec getStatusMapWriterSpec (const char *specName)
 
void dump (std::ostream &os, const o2::mch::TrackMCH &t)
 
DataProcessorSpec getTrackDumperSpec (bool useMC, const char *specName)
 
template<typename T >
void printBranch (char *data, const char *what)
 
o2::framework::DataProcessorSpec getPreClusterFinderSpec (const char *specName="PreClusterFinder", std::string_view inputDigitDataDescription="F-DIGITS", std::string_view inputDigitRofDataDescription="TC-F-DIGITROFS")
 
bool operator== (const OrbitInfo &o1, const OrbitInfo &o2)
 
bool operator!= (const OrbitInfo &o1, const OrbitInfo &o2)
 
bool operator< (const OrbitInfo &o1, const OrbitInfo &o2)
 
ROFFilter createIRFrameFilter (gsl::span< const o2::dataformats::IRFrame > irframes)
 
ROFFilter createMultiplicityFilter (int minMultiplicity)
 
ROFFilter createROFFilter (gsl::span< const ROFFilter > filters)
 
template<typename T >
ROFFilter createTrackableFilter (gsl::span< const T > items, std::array< bool, 5 > requestStation={true, true, true, true, true}, bool moreCandidates=false)
 
 BOOST_AUTO_TEST_CASE (Response_test)
 
std::map< int, std::vector< int > > applyMask (const o2::mch::StatusMap &statusMap, uint32_t mask)
 
o2::framework::DataProcessorSpec getStatusMapCreatorSpec (std::string_view specName="mch-statusmap-creator")
 
void assertValidMask (uint32_t mask)
 
size_t size (const StatusMap &sm)
 
o2::framework::DataProcessorSpec getTimeClusterFinderSpec (const char *specName="mch-time-cluster-finder", std::string_view inputDigitDataDescription="F-DIGITS", std::string_view inputDigitRofDataDescription="F-DIGITROFS", std::string_view outputDigitRofDataDescription="TC-F-DIGITROFS", std::string_view inputIRFrameDataDescription="ITS/IRFRAMES")
 
o2::framework::DataProcessorSpec getTrackFinderSpec (const char *specName="mch-track-finder", bool computeTime=true, bool digits=false, bool disableCCDBMagField=false, bool original=false)
 
o2::framework::DataProcessorSpec getTrackFitterSpec (const char *specName)
 
o2::framework::DataProcessorSpec getClusterFinderOriginalSpec (const char *specName="mch-cluster-finder-original")
 
framework::DataProcessorSpec getErrorReaderSpec (const char *specName="mch-error-reader")
 
framework::DataProcessorSpec getErrorWriterSpec (const char *specName="mch-error-writer")
 
o2::framework::DataProcessorSpec getClusterFinderGEMSpec (const char *specName)
 
DataProcessorSpec getEntropyEncoderSpec (const char *specName, bool selIR)
 
DataProcessorSpec getErrorMergerSpec (const char *specName, bool preclustering, bool clustering, bool tracking)
 
DataProcessorSpec getEventFinderSpec (bool useMC, std::string_view specName, std::string_view inputDigitDataDescription, std::string_view outputDigitDataDescription, std::string_view inputDigitRofDataDescription, std::string_view outputDigitRofDataDescription, std::string_view inputDigitLabelDataDescription, std::string_view outputDigitLabelDataDescription)
 
o2::framework::DataProcessorSpec getTrackAtVertexSpec (const char *specName)
 
o2::framework::DataProcessorSpec getTrackMCLabelFinderSpec (const char *specName, const char *digitRofDataDescription, const char *digitLabelDataDescription)
 
o2::framework::DataProcessorSpec getVertexSamplerSpec (const char *specName)
 
o2::framework::DataProcessorSpec getMCHDigitizerSpec (int channel, bool mctruth)
 

Variables

ClusterConfig clusterConfig
 
double epsilonGeometry = 1.0e-4
 
const double sqrtK3x1_2 = 0.7000
 
const double sqrtK3y1_2 = 0.7550
 
const double pitch1_2 = 0.21
 
const double sqrtK3x3_10 = 0.7131
 
const double sqrtK3y3_10 = 0.7642
 
const double pitch3_10 = 0.25
 
int mathiesonType
 
int useSpline = 0
 
SplineCoefsplineCoef [2][2]
 
double * splineXY = nullptr
 
int useCache = 0
 
const float kZHydrogen = 1.
 
const float kAHydrogen = 1.00794
 
const float kZCarbon = 6.
 
const float kACarbon = 12.0107
 
const float kDensCarbon = 2.265
 
const float kZNitrogen = 7.
 
const float kANitrogen = 14.0067
 
const float kZOxygen = 8.
 
const float kAOxygen = 15.9994
 
const float kZAluminium = 13.
 
const float kAAluminium = 26.9815385
 
const float kDensAluminium = 2.699
 
const float kZSilicon = 14.
 
const float kASilicon = 28.0855
 
const float kZArgon = 18.
 
const float kAArgon = 39.948
 
const float kZChromium = 24.
 
const float kAChromium = 51.9961
 
const float kZIron = 26.
 
const float kAIron = 55.845
 
const float kZNickel = 28.
 
const float kANickel = 58.6934
 
const float kZCopper = 29.
 
const float kACopper = 63.546
 
const float kDensCopper = 8.96
 
const float kEpsil = 0.001
 Tracking parameters (values taken from AliMUONCommonGeometryBuilder)
 
const float kMaxfd = -20.
 
const float kStemax = -1.
 
const float kDeemax = -0.3
 
const float kStmin = -0.8
 
const charkModuleName = "MCH"
 
const float kChamberZPos [2] = {-526.16, -545.24}
 Constants.
 
const float kQuadrantZPos = 7.5 / 2
 
const float kHzPadPlane = 0.0148 / 2
 
const float kHzFoam = 2.503 / 2
 
const float kHzFR4 = 0.062 / 2
 
const float kTotalHzPlane = kHzFoam + kHzFR4
 
const float kHzSnPb = 0.0091 / 2
 
const float kHzKapton = 0.0122 / 2
 
const float kHzBergPlastic = 0.3062 / 2
 
const float kHzBergCopper = 0.1882 / 2
 
const float kHzDaughter = 0.0156 / 2
 
const float kHzGas = 0.42 / 2
 
const float kHxBoxSpacer = 0.51
 
const float kHySpacer5A = 0.17
 
const float kHzSpacer5A = 1.1515
 
const float kHySpacer6 = 1.5
 
const float kHzSpacer6 = 0.1
 
const float kRSpacer7A = 0.3
 
const float kHzSpacer7A = 0.1
 
const float kMotherPhiL = 0.
 
const float kMotherPhiU = 90.
 
const float kMotherIR1 = 18.3
 
const float kMotherOR1 = 105.673
 
const float kMotherThick1 = 6.5 / 2
 
const float kMotherIR2 = 20.7
 
const float kMotherOR2 = 100.073
 
const float kMotherThick2 = 1.5
 
const float kHxHole = 1.5 / 2
 
const float kHyHole = 3.
 
const float kHxBergPlastic = 0.74 / 2
 
const float kHyBergPlastic = 5.09 / 2
 
const float kHxBergCopper = 0.25 / 2
 
const float kHyBergCopper = 3.6 / 2
 
const float kHxKapton = 0.4
 
const float kHyKapton = 5.7 / 2
 
const float kHxDaughter = 2.3 / 2
 
const float kHyDaughter = 6.3 / 2
 
const float kOffsetX = 1.46
 
const float kOffsetY = 0.71
 
const float kDeltaFilleEtamX = 1.
 
const float kDeltaFilleEtamY = 0.051
 
const float kLateralXPosShift = 92.175
 
const float kLateralYPosShift = 5.
 
const float kThetaTrap = 0.
 
const float kPhiTrap = 0.
 
const float kNearFarLHC = 2.4
 
const float kDeltaQuadLHC = 2.6
 
const float kFrameOffset = 5.2
 
const float kPadXOffsetBP = 0.50 - 0.63 / 2
 
const float kPadYOffsetBP = -0.31 - 0.42 / 2
 
const int kFoamBoxNameOffset = 200
 
const int kFR4BoxNameOffset = 400
 
const int kDaughterCopyNoOffset = 1000
 
const charkHoleName = "SCHL"
 
const charkDaughterName = "SCDB"
 
const charkQuadrantMLayerName = "SQM"
 
const charkQuadrantNLayerName = "SQN"
 
const charkQuadrantFLayerName = "SQF"
 
const charkQuadrantMFLayerName = "SQMF"
 
const double kGasHalfThickness = 0.25
 
const double kCathodeHalfThickness = 0.005 / 2
 
const double kPCBHalfThickness = 0.04 / 2
 
const double kInsuHalfThickness = kPCBHalfThickness - kCathodeHalfThickness
 
const double kRohaHalfThickness = 2.5 / 2
 
const double kMEBHalfThickness = 0.04 / 2
 
const double kEERBHalfThickness = 0.04 / 2
 
const double kStartAngle = 0.
 
const double kStopAngle = 90.
 
const int kNPlanes = 2
 
const int kNEdges = 5
 
const int kNSegments = 3
 Segments.
 
const double kSegmentRadius [2] = {23.1, 117.6}
 
const double kBoxSegHalfLength [kNSegments] = {95.5 / 2, 0., 0.5}
 
const double kBoxSegHalfHeight [kNSegments] = {0.6, 0., 95.5 / 2}
 
const int kNFrames = 8
 Frames.
 
const double kFrameHalfLength [kNFrames] = {101. / 2, 2., 0., 0.5, 2.7 / 2, 0.5, 0., 2.5 / 2}
 
const double kFrameHalfHeight [kNFrames] = {2.5 / 2, 0.6, 0., 2., 101. / 2, 2.5 / 2, 0., 0.6}
 
const double kRibHalfLength [kNFrames]
 
const double kRibHalfHeight [kNFrames]
 
const double kFrame3Radius [2] = {kSegmentRadius[1], 121.6}
 
const double kRib3Radius [2] = {kSegmentRadius[1], 120.6}
 
const double kFrame7Radius [2] = {20.6, kSegmentRadius[0]}
 
const double kRib7Radius [2] = {21.6, kSegmentRadius[0]}
 
const double kEpoxyHalfThickness = 2.
 
const double kRibHalfThickness = 0.5
 
const float kGasLength = 40.
 Constants.
 
const float kGasHalfHeight = 40. / 2
 
const float kPCBLength = kGasLength
 
const float kShortPCBLength = 35.
 
const float kRoundedPCBLength = 42.5
 
const float kR1PCBLength = 19.25
 
const float kPCBHalfHeight = 58. / 2
 
const float kSlatPanelHalfHeight = 42.5 / 2
 
const float kGlueHalfThickness = 0.004 / 2
 
const float kNomexBulkHalfThickness = 0.025 / 2
 
const float kCarbonHalfThickness = 0.02 / 2
 
const float kNomexHalfThickness = 0.8 / 2
 
const float kSpacerHalfThickness = kGasHalfThickness
 
const float kHoriSpacerHalfHeight = 1.95 / 2
 
const float kVertSpacerHalfLength = 2.5 / 2
 
const float kRoundedSpacerHalfLength = 1.
 
const float kBorderHalfHeight = 2.5
 
const float kBorderHalfThickness = kGasHalfThickness
 
const float kDualSampaHalfLength = 3.2 / 2
 
const float kDualSampaHalfHeight = 2.5
 
const float kDualSampaHalfThickness = 0.027 / 2
 
const float kDualSampaYPos = 0.45 + kSlatPanelHalfHeight + kDualSampaHalfHeight
 
const float kLVCableHalfHeight = 2.6 / 2
 Cables (copper)
 
const float kLVCableHalfThickness = 0.026 / 2
 
const float kCarbonSupportHalfThickness = 0.03 / 2
 Support panels.
 
const float kGlueSupportHalfThickness = 0.02 / 2
 
const float kNomexSupportHalfThickness = 1.5 / 2
 
const float kSt3SupportHalfHeight = 361. / 2
 
const float kSt4SupportHalfHeight = 530. / 2
 
const float kSt5SupportHalfHeight = 570. / 2
 
const float kCh5SupportHalfLength = 162. / 2
 
const float kCh6SupportHalfLength = 167. / 2
 
const float kSt45SupportHalfLength = 260. / 2
 
const float kSt3Radius = 29.5
 
const float kSt45Radius = 37.5
 
const float kSt3RoundedSlatYPos = 37.8
 
const float kSt45RoundedSlatYPos = 38.2
 
const map< string, array< int, 4 > > kPcbTypes = {{"B1N1", {10, 10, 7, 7}}, {"B2N2-", {5, 5, 4, 3}}, {"B2N2+", {5, 5, 3, 4}}, {"B3-N3", {3, 2, 2, 2}}, {"B3+N3", {2, 3, 2, 2}}, {"R1", {3, 4, 2, 3}}, {"R2", {13, 4, 9, 3}}, {"R3", {13, 1, 10, 0}}, {"S2-", {4, 5, 3, 3}}, {"S2+", {5, 4, 3, 3}}}
 
const map< string, vector< string > > kSlatTypes
 
const string jsonSlatDescription
 Json string describing all the necessary parameters to place the slats in the half-chambers.
 
constexpr uint16_t NumberOfDualSampas = 16820
 
RootTreeReader::SpecialPublishHook logging
 

Typedef Documentation

◆ BranchDefinition

template<typename T >
using o2::mch::BranchDefinition = typedef MakeRootTreeWriterSpec::BranchDefinition<T>

Definition at line 29 of file ClusterWriterSpec.cxx.

◆ DataBlock_t

typedef std::pair<int, double*> o2::mch::DataBlock_t

Definition at line 30 of file ClusterPEM.h.

◆ DataRequest

Definition at line 75 of file AlignRecordSpec.cxx.

◆ DigitFilter

typedef std::function<bool(const Digit&)> o2::mch::DigitFilter

Definition at line 21 of file DigitFilter.h.

◆ DsChannelGroup

using o2::mch::DsChannelGroup = typedef std::vector<DsChannelId>

Definition at line 26 of file DsChannelGroup.h.

◆ DsIndex

using o2::mch::DsIndex = typedef uint16_t

DsIndex is an integer, from 0 to 16819, which uniquely identifies one pair (deId,dsId), i.e. one DualSampa, within the whole detector

Definition at line 26 of file DsIndex.h.

◆ funcDescription_t

◆ GID

Definition at line 76 of file AlignRecordSpec.cxx.

◆ Groups_t

Definition at line 25 of file ClusterConfig.h.

◆ Mask_t

Definition at line 26 of file ClusterConfig.h.

◆ PadIdx_t

Definition at line 24 of file ClusterConfig.h.

◆ RDH

Definition at line 19 of file OrbitInfo.cxx.

◆ realtype

typedef double o2::mch::realtype

Compute the (Moore-Penrose) pseudo-inverse of a libgsl matrix in plain C.

Compile uding:

gcc moore_penrose_pseudoinverse.c -lgsl -lblas

Dependencies:

  • libgsl (GNU Scientific Library)
  • libblas (Basic Linear Algebra Subprograms)

Charl Linssen charl.nosp@m.@itf.nosp@m.romb..nosp@m.it Feb 2016 PUBLIC DOMAIN

Definition at line 62 of file ClusterPEM.cxx.

◆ ROFFilter

typedef std::function<bool(const ROFRecord&)> o2::mch::ROFFilter

Definition at line 25 of file ROFFilter.h.

◆ SplineCoef_t

Enumeration Type Documentation

◆ ErrorGroup

enum class o2::mch::ErrorGroup : uint8_t
strong

groups of MCH processing errors, each group corresponding to a processing units

Enumerator
Unassigned 
Decoding 
Filtering 
TimeClustering 
PreClustering 
Clustering 
Tracking 

Definition at line 31 of file Error.h.

◆ ErrorType

enum class o2::mch::ErrorType : uint32_t
strong

types of MCH processing errors

Enumerator
PreClustering_MultipleDigitsInSamePad 
PreClustering_LostDigit 
Clustering_TooManyLocalMaxima 
Tracking_TooManyCandidates 
Tracking_TooLong 

Definition at line 54 of file Error.h.

◆ Medium

Enumerator
Gas 
Carbon 
HoneyNomex 
BulkNomex 
Noryl 
Copper 
FR4 
Rohacell 
Glue 
Plastic 
Epoxy 
Inox 
St1Rohacell 
Aluminium 

Definition at line 25 of file Materials.h.

◆ Station

enum class o2::mch::Station
strong
Enumerator
Type1 
Type2345 

Definition at line 25 of file Response.h.

◆ tCheckNoLeftoverDigits

Enumerator
CHECK_NO_LEFTOVER_DIGITS_QUIET 
CHECK_NO_LEFTOVER_DIGITS_ERROR 
CHECK_NO_LEFTOVER_DIGITS_FATAL 

Definition at line 56 of file PreClusterFinderSpec.cxx.

Function Documentation

◆ applyMask()

std::map< int, std::vector< int > > o2::mch::applyMask ( const o2::mch::StatusMap statusMap,
uint32_t  mask 
)

convert a pair {StatusMap,mask} to a map deid->[vector of bad channel's padids] where the meaning of bad is defined by the mask.

Note that if the mask==0 then the output map is empty by construction (as all pads are considered good then).

Note also that we do make sure that the output map only contains actually connected pads

Definition at line 115 of file StatusMap.cxx.

◆ areOverlapping()

bool o2::mch::areOverlapping ( const PadOriginal pad1,
const PadOriginal pad2,
double  precision 
)
inline

check if the two pads overlap within the given precision (cm): positive precision = decrease pad size, i.e. pads touching each other do not overlap negative precision = increase pad size, i.e. pads touching each other, including corners, overlap

Definition at line 129 of file PadOriginal.h.

◆ assertMedium()

TGeoMedium * o2::mch::assertMedium ( int  imed)

Definition at line 222 of file Materials.cxx.

◆ assertValidMask()

void o2::mch::assertValidMask ( uint32_t  mask)

Definition at line 27 of file StatusMap.cxx.

◆ asString() [1/3]

std::string o2::mch::asString ( const ChannelCode cc)

return a string representation

Definition at line 161 of file ChannelCode.cxx.

◆ asString() [2/3]

std::string o2::mch::asString ( const o2::mch::TrackMCH t)

Definition at line 104 of file TrackMCH.cxx.

◆ asString() [3/3]

std::string o2::mch::asString ( const SanityError error)

Definition at line 26 of file SanityCheck.cxx.

◆ BOOST_AUTO_TEST_CASE()

o2::mch::BOOST_AUTO_TEST_CASE ( Response_test  )

Definition at line 33 of file testResponse.cxx.

◆ buildDetId2DsIndexMap()

std::map< uint32_t, uint16_t > o2::mch::buildDetId2DsIndexMap ( )

Definition at line 56 of file DsIndex.cxx.

◆ buildHalfChambers()

void o2::mch::buildHalfChambers ( TGeoVolume &  topVolume)

Build the slat half-chambers The different slat types must have been built before calling this function !!!

Definition at line 630 of file Station345Geometry.cxx.

◆ checkCij()

void o2::mch::checkCij ( const Pads pads,
const Pads pixels,
const double *  checkCij,
int  mode 
)

Definition at line 941 of file mathieson.cxx.

◆ checkIntegrals()

bool o2::mch::checkIntegrals ( const double *  xInf,
const double *  xSup,
const double *  yInf,
const double *  ySup,
const double *  integralsToCheck,
int  chId,
int  N 
)

Definition at line 635 of file mathieson.cxx.

◆ cleanClusterResults()

void o2::mch::cleanClusterResults ( )

Definition at line 54 of file clusterProcessing.cxx.

◆ closeEnough()

bool o2::mch::closeEnough ( double  x,
double  y,
double  eps = 1E-6 
)

Definition at line 28 of file Digit.cxx.

◆ collectGroupMapping()

void o2::mch::collectGroupMapping ( Mask_t padToMGrp,
int  nPads 
)

Definition at line 64 of file clusterProcessing.cxx.

◆ collectSeeds()

void o2::mch::collectSeeds ( double *  theta,
o2::mch::Groups_t thetaToGroup,
int  K 
)

Definition at line 93 of file clusterProcessing.cxx.

◆ compressPads()

CompressedPads_t * o2::mch::compressPads ( const double *  xInf,
const double *  xSup,
const double *  yInf,
const double *  ySup,
int  N 
)

Definition at line 401 of file mathieson.cxx.

◆ compressSameValues()

int o2::mch::compressSameValues ( const double *  x1,
const double *  x2,
int map1,
int map2,
int  N,
double *  xCompress 
)

Definition at line 327 of file mathieson.cxx.

◆ compute1DMathieson()

void o2::mch::compute1DMathieson ( const double *  xy,
int  N,
int  axe,
int  chamberId,
double  mathieson[] 
)

Definition at line 263 of file mathieson.cxx.

◆ compute1DPadIntegrals() [1/3]

void o2::mch::compute1DPadIntegrals ( const double *  xInf,
const double *  xSup,
int  N,
int  axe,
int  chamberId,
double  Integrals[] 
)

◆ compute1DPadIntegrals() [2/3]

void o2::mch::compute1DPadIntegrals ( const double *  xyInf,
const double *  xySup,
int  N,
double  xy0,
int  axe,
int  chamberId,
double *  integrals 
)

Definition at line 287 of file mathieson.cxx.

◆ compute1DPadIntegrals() [3/3]

void o2::mch::compute1DPadIntegrals ( const double *  xyInf,
const double *  xySup,
int  N,
int  axe,
int  chamberId,
double *  Integrals 
)

Definition at line 296 of file mathieson.cxx.

◆ compute2DMathiesonMixturePadIntegrals()

void o2::mch::compute2DMathiesonMixturePadIntegrals ( const double *  xyInfSup0,
const double *  theta,
int  N,
int  K,
int  chamberId,
double  Integrals[] 
)

Definition at line 600 of file mathieson.cxx.

◆ compute2DPadIntegrals()

void o2::mch::compute2DPadIntegrals ( const double *  xInf,
const double *  xSup,
const double *  yInf,
const double *  ySup,
int  N,
int  chamberId,
double  Integrals[] 
)

Definition at line 470 of file mathieson.cxx.

◆ computeChiSquare() [1/2]

double o2::mch::computeChiSquare ( const Pads pads,
const double *  qPredictedPads,
int  iStart,
int  iEnd 
)

Definition at line 228 of file poissonEM.cxx.

◆ computeChiSquare() [2/2]

std::pair< double, double > o2::mch::computeChiSquare ( const Pads pads,
const double *  qPredictedPads,
int  N 
)

Definition at line 242 of file poissonEM.cxx.

◆ computeCij()

void o2::mch::computeCij ( const Pads pads,
const Pads pixel,
double  Cij[] 
)

Definition at line 898 of file mathieson.cxx.

◆ computeCompressed2DPadIntegrals()

void o2::mch::computeCompressed2DPadIntegrals ( CompressedPads_t compressedPads,
double  xShift,
double  yShift,
int  N,
int  chamberId,
double  Integrals[] 
)

Definition at line 427 of file mathieson.cxx.

◆ computeFastCij()

void o2::mch::computeFastCij ( const Pads pads,
const Pads pixel,
double  Cij[] 
)

Definition at line 673 of file mathieson.cxx.

◆ computeFastCijV0()

void o2::mch::computeFastCijV0 ( const Pads pads,
const Pads pixel,
double  Cij[] 
)

Definition at line 766 of file mathieson.cxx.

◆ computeSplineCoef()

void o2::mch::computeSplineCoef ( const double *  xy,
double  xyStep,
const double *  f,
int  N,
double  leftDerivative,
double  rightDerivative,
SplineCoef splineCoef 
)

Definition at line 145 of file mathieson.cxx.

◆ copyTheta()

void o2::mch::copyTheta ( const double *  theta0,
int  K0,
double *  theta,
int  K1,
int  K 
)

Definition at line 1038 of file mathieson.cxx.

◆ copyXYdXY()

void o2::mch::copyXYdXY ( const double *  xyDxy0,
int  N0,
double *  xyDxy,
int  N1,
int  N 
)

Definition at line 1057 of file mathieson.cxx.

◆ createBadChannelFilter()

DigitFilter o2::mch::createBadChannelFilter ( const StatusMap statusMap,
uint32_t  statusMask 
)

Definition at line 111 of file DigitFilter.cxx.

◆ createCommonVolumes()

void o2::mch::createCommonVolumes ( )

Build the identical volumes (constant shapes, dimensions, ...) shared by many elements

Definition at line 172 of file Station345Geometry.cxx.

◆ createDaughterBoard()

void o2::mch::createDaughterBoard ( )

Create all the elements in a daughter board

Definition at line 139 of file Station1Geometry.cxx.

◆ createDigitFilter()

DigitFilter o2::mch::createDigitFilter ( uint32_t  minADC,
bool  rejectBackground,
bool  selectSignal,
const StatusMap statusMap = {},
uint32_t  statusMask = 0 
)

Definition at line 129 of file DigitFilter.cxx.

◆ createFrame()

void o2::mch::createFrame ( int  chamber)

Create the non-sensitive elements of the frame for the chamber

Model and notation:

The Quadrant volume name starts with SQ
The volume segments are numbered 00 to XX

OutTopFrame
(SQ02-16)
---------—
OutEdgeFrame / |
(SQ17-24) / | InVFrame (SQ00-01)
/ |
| |
OutVFrame | _- -
(SQ25-39) | | InArcFrame (SQ42-45)
| |
----------—
InHFrame (SQ40-41)


06 February 2003 - Overlapping volumes resolved.
One quarter chamber is comprised of three TUBS volumes: SQMx, SQNx, and SQFx, where SQMx is the Quadrant Middle layer for chamber chamber ( z in [-3.25,3.25]), SQNx is the Quadrant Near side layer for chamber chamber ( z in [-6.25,3-.25) ), and SQFx is the Quadrant Far side layer for chamber chamber ( z in (3.25,6.25] ).

Volume thicknesses

Frame Structure (OutVFrame):

OutTopFrame - 3 components (a cuboid and 2 trapezes) and 2 layers (Epoxy/Inox)

Place volumes in the quadrant

Lateral positionners

InHFrame

Definition at line 217 of file Station1Geometry.cxx.

◆ createFrames()

void o2::mch::createFrames ( )

Polygon shape frames

Definition at line 190 of file Station2Geometry.cxx.

◆ createHole()

void o2::mch::createHole ( )

Create all the elements found inside a foam hole

Definition at line 126 of file Station1Geometry.cxx.

◆ createInnerLayers()

void o2::mch::createInnerLayers ( )

Create the layer of sensitive volumes with gas and the copper layer. The shape of the sensitive area is defined as an extruded solid substracted with tube (to get inner circular shape).

Definition at line 155 of file Station1Geometry.cxx.

◆ createIRFrameFilter()

ROFFilter o2::mch::createIRFrameFilter ( gsl::span< const o2::dataformats::IRFrame irframes)

Returns a ROFRecord filter that selects ROFs that overlap one of the given IRFrame.

The returned filter is a function that takes a ROFRecord and returns a boolean.

Parameters
irframes: the IRFrames (intervals of interaction records) used to select ROFs

Definition at line 20 of file IRFrameFilter.cxx.

◆ createMaterials()

void o2::mch::createMaterials ( )

Create all the materials needed to build the MCH geometry

Tracking gas : Ar 80% + CO2 20%

Carbon

Nomex : C14 H10 N2 O2 (changed w.r.t AliMUONCommonGeometryBuilder)

Noryl 731 (ALICE-INT-2002-17) : C8 H8 O

Copper

FR4 : O292 Si68 C462 H736 (from AliRoot)

Rohacell : C9 H13 N1 O2

Glue (Araldite 2011, ALICE-INT-2002-17) : C10 H25 N3

Plastic (definition taken from AliMUONSt1GeometryBuilder)

Epoxy : C18 H19 O3 (to be confirmed)

Stainless steel : Fe(73%) Cr(18%) Ni(9%)

Aluminium

Definition at line 91 of file Materials.cxx.

◆ createMultiplicityFilter()

ROFFilter o2::mch::createMultiplicityFilter ( int  minMultiplicity)
inline

Returns a basic ROFRecord filter that selects ROFs with a minimum number of entries.

The returned filter is a function that takes a ROFRecord and returns a boolean.

Parameters
minMultiplicity

Definition at line 32 of file MultiplicityFilter.h.

◆ createPCBs()

void o2::mch::createPCBs ( )

Build the different PCB types

A PCB is a pile-up of several material layers, from in to out : sensitive gas, cathode and insulator There are two types of cathodes : a "bending" and a "non-bending" one. We build the PCB volume such that the bending side faces the IP (z>0 in the local frame). When placing the slat on the half-chambers, the builder grabs the rotation to apply from the JSON. By doing so, we make sure that we match the mapping convention

place all the layers in the PCB

Definition at line 192 of file Station345Geometry.cxx.

◆ createPlaneSegment()

TGeoVolume * o2::mch::createPlaneSegment ( int  iSegment,
float  halfLength,
float  halfHeight,
int  nHoles 
)

create a plane segment (this includes a foam layer, holes in the foam to feed the kaptons through, kapton connectors and the mother board)

Definition at line 1242 of file Station1Geometry.cxx.

◆ createQuadrant() [1/2]

TGeoVolume * o2::mch::createQuadrant ( )

Create a quadrant, a volume assembly containing all the different elements, identical for each chamber

Definition at line 320 of file Station2Geometry.cxx.

◆ createQuadrant() [2/2]

TGeoVolumeAssembly * o2::mch::createQuadrant ( int  chamber)

create the quadrant (bending and non-bending planes) for the given chamber

Definition at line 1448 of file Station1Geometry.cxx.

◆ createROFFilter()

ROFFilter o2::mch::createROFFilter ( gsl::span< const ROFFilter filters)

createROFFilter returns a filter that is the AND of the filters in vector.

Definition at line 16 of file ROFFilter.cxx.

◆ createSegment()

TGeoVolume * o2::mch::createSegment ( int  i)

Function creating a segment for the quadrant volume A segment is a pile-up of layers defining the detection area: gas + PCB (cathode + insulator) + rohacell + mech. exit board + eff. electronic exit board

Definition at line 101 of file Station2Geometry.cxx.

◆ createSlats()

void o2::mch::createSlats ( )

Slat building function The different PCB types must have been built before calling this function !!!

Definition at line 358 of file Station345Geometry.cxx.

◆ createSpacer()

void o2::mch::createSpacer ( )

The spacer volumes are defined according to the input prepared by Nicole Williswith modifications needed to fit into existing geometry.

No. Type Material Center (mm) Dimensions (mm) (half lengths) 5 BOX EPOXY 408.2 430.4 522.41 5.75 1.5 25.5 5P BOX EPOXY 408.2 445.4 522.41 5.75 1.5 25.5 6 BOX EPOXY 408.2 437.9 519.76 5.75 15.0 1.0 6P BOX EPOXY 408.2 437.9 525.06 5.75 15.0 1.0 7 CYL INOX 408.2 437.9 522.41 r=3.0 hz=20.63

To fit in existing volumes the volumes 5 and 7 are represented by 2 volumes with half size in z (5A, 7A); the dimensions of the volume 5A were also modified to avoid overlaps (x made smaller, y larger to obtain the identical volume)

Definition at line 194 of file Station1Geometry.cxx.

◆ createStation1Geometry()

void o2::mch::createStation1Geometry ( TGeoVolume &  topVolume)

Definition at line 1536 of file Station1Geometry.cxx.

◆ createStation2Geometry()

void o2::mch::createStation2Geometry ( TGeoVolume &  topVolume)

Create the geometry of the station 2

Definition at line 369 of file Station2Geometry.cxx.

◆ createStation345Geometry()

void o2::mch::createStation345Geometry ( TGeoVolume &  topVolume)

Main function which build and place the slats and the half-chambers volumes This function must be called by the MCH detector class to build the slat stations geometry.

Definition at line 738 of file Station345Geometry.cxx.

◆ createSupportPanels()

void o2::mch::createSupportPanels ( )

Function building the half-chamber support panels (one different per chamber)

Definition at line 564 of file Station345Geometry.cxx.

◆ createTrackableFilter()

template<typename T >
ROFFilter o2::mch::createTrackableFilter ( gsl::span< const T >  items,
std::array< bool, 5 >  requestStation = {true, true, true, true, true},
bool  moreCandidates = false 
)

Returns a ROFRecord filter that selects ROFs that are trackable.

The returned filter is a function that takes a ROFRecord and returns a boolean.

Parameters
items: the items "pointed to" by the ROFRecords (digits, ...)
requestStation: isTrackable
moreCandidates: isTrackable
Template Parameters
the type of the items pointed to by the ROFRecords

Definition at line 39 of file TrackableFilter.h.

◆ decode()

std::pair< uint32_t, uint32_t > o2::mch::decode ( uint64_t  x)

Definition at line 26 of file ErrorMap.cxx.

◆ deleteCompressedPads()

void o2::mch::deleteCompressedPads ( CompressedPads_t compressedPads)

Definition at line 417 of file mathieson.cxx.

◆ deleteDouble()

void o2::mch::deleteDouble ( double *  ptr)
inline

Definition at line 524 of file mathUtil.h.

◆ deleteInt()

void o2::mch::deleteInt ( int ptr)
inline

Definition at line 532 of file mathUtil.h.

◆ deleteShort()

void o2::mch::deleteShort ( short ptr)
inline

Definition at line 540 of file mathUtil.h.

◆ dump()

void o2::mch::dump ( std::ostream &  os,
const o2::mch::TrackMCH t 
)

Definition at line 30 of file TrackDumperSpec.cxx.

◆ encode()

uint64_t o2::mch::encode ( uint32_t  a,
uint32_t  b 
)

Definition at line 19 of file ErrorMap.cxx.

◆ errorGroup()

constexpr ErrorGroup o2::mch::errorGroup ( ErrorType  error)
constexpr

returns the group to which this error type belongs

Parameters
errorerror type

Definition at line 66 of file Error.h.

◆ fastIterateEMPoisson()

void o2::mch::fastIterateEMPoisson ( const double *  Cij,
const double *  Ci,
const double *  qPixels,
const double *  qPad,
double *  qPadPrediction,
int  nPixels,
int  nPads,
double *  newQPixels 
)

Definition at line 137 of file poissonEM.cxx.

◆ fastIterateEMPoissonV0()

void o2::mch::fastIterateEMPoissonV0 ( const double *  Cij,
const double *  Ci,
const double *  qPixels,
const double *  qPad,
double *  qPadPrediction,
int  nPixels,
int  nPads,
double *  newQPixels 
)

Definition at line 84 of file poissonEM.cxx.

◆ findPad()

auto o2::mch::findPad ( std::vector< PadOriginal > &  pads,
double  x,
double  y,
double  minCharge 
)
inline

find a pad with a position (x,y) and a charge >= minCharge in the array of pads return an iterator to the pad or throw an exception if no pad is found

Definition at line 110 of file PadOriginal.h.

◆ fitMathieson()

void o2::mch::fitMathieson ( const Pads iPads,
double *  thetaInit,
int  kInit,
int  dimOfParameters,
int  axe,
int  mode,
double *  thetaFinal,
double *  khi2,
double *  pError 
)

Definition at line 948 of file mathiesonFit.cxx.

◆ getAlignmentSpec()

o2::framework::DataProcessorSpec o2::mch::getAlignmentSpec ( bool  disableCCDB = false)

Definition at line 899 of file AlignmentSpec.cxx.

◆ getAlignRecordSpec()

o2::framework::DataProcessorSpec o2::mch::getAlignRecordSpec ( bool  useMC,
bool  disableCCDB = false 
)

Definition at line 334 of file AlignRecordSpec.cxx.

◆ getClusterFinderGEMSpec()

o2::framework::DataProcessorSpec o2::mch::getClusterFinderGEMSpec ( const char specName)

Definition at line 339 of file ClusterFinderGEMSpec.cxx.

◆ getClusterFinderOriginalSpec()

o2::framework::DataProcessorSpec o2::mch::getClusterFinderOriginalSpec ( const char specName = "mch-cluster-finder-original")

Definition at line 194 of file ClusterFinderOriginalSpec.cxx.

◆ getClusterReaderSpec()

DataProcessorSpec o2::mch::getClusterReaderSpec ( bool  useMC,
const char specName = "mch-cluster-reader",
bool  global = true,
bool  digits = false 
)

Definition at line 106 of file ClusterReaderSpec.cxx.

◆ getClusterTransformerSpec()

DataProcessorSpec o2::mch::getClusterTransformerSpec ( const char specName = "mch-cluster-transformer",
bool  disableCcdb = false 
)

Definition at line 128 of file ClusterTransformerSpec.cxx.

◆ getClusterWriterSpec()

DataProcessorSpec o2::mch::getClusterWriterSpec ( bool  useMC,
const char specName = "mch-cluster-writer",
bool  global = true,
bool  digits = true 
)

Definition at line 31 of file ClusterWriterSpec.cxx.

◆ getConstDX()

const double * o2::mch::getConstDX ( const double *  xyDxy,
int  N 
)

Definition at line 1013 of file mathieson.cxx.

◆ getConstDY()

const double * o2::mch::getConstDY ( const double *  xyDxy,
int  N 
)

Definition at line 1014 of file mathieson.cxx.

◆ getConstMuAndW()

const double * o2::mch::getConstMuAndW ( const double *  theta,
int  K 
)

Definition at line 1000 of file mathieson.cxx.

◆ getConstMuX()

const double * o2::mch::getConstMuX ( const double *  theta,
int  K 
)

Definition at line 997 of file mathieson.cxx.

◆ getConstMuY()

const double * o2::mch::getConstMuY ( const double *  theta,
int  K 
)

Definition at line 998 of file mathieson.cxx.

◆ getConstVarX()

const double * o2::mch::getConstVarX ( const double *  theta,
int  K 
)

Definition at line 989 of file mathieson.cxx.

◆ getConstVarY()

const double * o2::mch::getConstVarY ( const double *  theta,
int  K 
)

Definition at line 993 of file mathieson.cxx.

◆ getConstW()

const double * o2::mch::getConstW ( const double *  theta,
int  K 
)

Definition at line 999 of file mathieson.cxx.

◆ getConstX()

const double * o2::mch::getConstX ( const double *  xyDxy,
int  N 
)

Definition at line 1011 of file mathieson.cxx.

◆ getConstXInf()

const double * o2::mch::getConstXInf ( const double *  xyInfSup,
int  N 
)

Definition at line 1021 of file mathieson.cxx.

◆ getConstXSup()

const double * o2::mch::getConstXSup ( const double *  xyInfSup,
int  N 
)

Definition at line 1029 of file mathieson.cxx.

◆ getConstY()

const double * o2::mch::getConstY ( const double *  xyDxy,
int  N 
)

Definition at line 1012 of file mathieson.cxx.

◆ getConstYInf()

const double * o2::mch::getConstYInf ( const double *  xyInfSup,
int  N 
)

Definition at line 1025 of file mathieson.cxx.

◆ getConstYSup()

const double * o2::mch::getConstYSup ( const double *  xyInfSup,
int  N 
)

Definition at line 1033 of file mathieson.cxx.

◆ getDigitFilteringSpec()

framework::DataProcessorSpec o2::mch::getDigitFilteringSpec ( bool  useMC,
std::string_view  specName = "mch-digit-filtering",
std::string_view  inputDigitDataDescription = "DIGITS",
std::string_view  outputDigitDataDescription = "F-DIGITS",
std::string_view  inputDigitRofDataDescription = "DIGITROFS",
std::string_view  outputDigitRofDataDescription = "F-DIGITROFS",
std::string_view  inputDigitLabelDataDescription = "DIGITLABELS",
std::string_view  outputDigitLabelDataDescription = "F-DIGITLABELS" 
)

Definition at line 175 of file DigitFilteringSpec.cxx.

◆ getDigitReaderSpec()

DataProcessorSpec o2::mch::getDigitReaderSpec ( bool  useMC,
std::string_view  specName = "mch-digit-reader",
std::string_view  outputDigitDataDescription = "DIGITS",
std::string_view  outputDigitRofDataDescription = "DIGITROFS",
std::string_view  outputDigitLabelDataDescription = "DIGITLABELS" 
)

Definition at line 198 of file DigitReaderSpec.cxx.

◆ getDigitWriterSpec()

o2::framework::DataProcessorSpec o2::mch::getDigitWriterSpec ( bool  useMC,
std::string_view  specName = "mch-digit-writer",
std::string_view  outfile = "mchdigits.root",
std::string_view  inputDigitDataDescription = "DIGITS",
std::string_view  inputDigitRofDataDescription = "DIGITROFS",
std::string_view  inputDigitLabelDataDescription = "DIGITLABELS" 
)

Definition at line 44 of file DigitWriterSpec.cxx.

◆ getDsDetId()

o2::mch::raw::DsDetId o2::mch::getDsDetId ( DsIndex  dsIndex)

getDsDetId converts a unique dual sampa index into a pair (deId,dsId).

Definition at line 90 of file DsIndex.cxx.

◆ getDsIndex()

DsIndex o2::mch::getDsIndex ( const o2::mch::raw::DsDetId dsDetId)

getDsIndex returns the unique index of one dual sampa.

Definition at line 79 of file DsIndex.cxx.

◆ getDualSampa()

TGeoVolume * o2::mch::getDualSampa ( )

Definition at line 137 of file Station345Geometry.cxx.

◆ getDX()

double * o2::mch::getDX ( double *  xyDxy,
int  N 
)

Definition at line 1008 of file mathieson.cxx.

◆ getDY()

double * o2::mch::getDY ( double *  xyDxy,
int  N 
)

Definition at line 1009 of file mathieson.cxx.

◆ getEntropyDecoderSpec()

DataProcessorSpec o2::mch::getEntropyDecoderSpec ( int  verbosity,
const char specName,
unsigned int  sspec 
)

create a processor spec

Definition at line 94 of file EntropyDecoderSpec.cxx.

◆ getEntropyEncoderSpec()

DataProcessorSpec o2::mch::getEntropyEncoderSpec ( const char specName,
bool  selIR 
)

Definition at line 88 of file entropy-encoder-workflow.cxx.

◆ getErrorMergerSpec()

framework::DataProcessorSpec o2::mch::getErrorMergerSpec ( const char specName,
bool  preclustering,
bool  clustering,
bool  tracking 
)

Definition at line 84 of file ErrorMergerSpec.cxx.

◆ getErrorReaderSpec()

DataProcessorSpec o2::mch::getErrorReaderSpec ( const char specName = "mch-error-reader")

Definition at line 60 of file ErrorReaderSpec.cxx.

◆ getErrorWriterSpec()

DataProcessorSpec o2::mch::getErrorWriterSpec ( const char specName = "mch-error-writer")

Definition at line 26 of file ErrorWriterSpec.cxx.

◆ getEventFinderSpec()

framework::DataProcessorSpec o2::mch::getEventFinderSpec ( bool  useMC,
std::string_view  specName,
std::string_view  inputDigitDataDescription,
std::string_view  outputDigitDataDescription,
std::string_view  inputDigitRofDataDescription,
std::string_view  outputDigitRofDataDescription,
std::string_view  inputDigitLabelDataDescription,
std::string_view  outputDigitLabelDataDescription 
)

Definition at line 103 of file EventFinderSpec.cxx.

◆ getMCHDigitizerSpec()

o2::framework::DataProcessorSpec o2::mch::getMCHDigitizerSpec ( int  channel,
bool  mctruth 
)

Definition at line 136 of file MCHDigitizerSpec.cxx.

◆ getMCHDigitWriterSpec()

o2::framework::DataProcessorSpec o2::mch::getMCHDigitWriterSpec ( bool  mctruth)

Definition at line 31 of file DigitWriterSpec.cxx.

◆ getMuAndW()

double * o2::mch::getMuAndW ( double *  theta,
int  K 
)

Definition at line 987 of file mathieson.cxx.

◆ getMuX()

double * o2::mch::getMuX ( double *  theta,
int  K 
)

Definition at line 984 of file mathieson.cxx.

◆ getMuY()

double * o2::mch::getMuY ( double *  theta,
int  K 
)

Definition at line 985 of file mathieson.cxx.

◆ getPreClusterFinderSpec()

o2::framework::DataProcessorSpec o2::mch::getPreClusterFinderSpec ( const char specName = "PreClusterFinder",
std::string_view  inputDigitDataDescription = "F-DIGITS",
std::string_view  inputDigitRofDataDescription = "TC-F-DIGITROFS" 
)

Definition at line 238 of file PreClusterFinderSpec.cxx.

◆ getPreClusterReaderSpec()

DataProcessorSpec o2::mch::getPreClusterReaderSpec ( bool  useMC,
const char specName = "mch-precluster-reader" 
)

Definition at line 82 of file PreClusterReaderSpec.cxx.

◆ getPreClusterSinkSpec()

o2::framework::DataProcessorSpec o2::mch::getPreClusterSinkSpec ( const char specName)

Definition at line 199 of file PreClusterSinkSpec.cxx.

◆ getPreClusterWriterSpec()

DataProcessorSpec o2::mch::getPreClusterWriterSpec ( bool  useMC,
const char specName = "mch-precluster-writer" 
)

Definition at line 31 of file PreClusterWriterSpec.cxx.

◆ getRoundedShape()

TGeoCompositeShape * o2::mch::getRoundedShape ( const char name,
float  halfThickness,
float  xPos,
float  yPos,
float  radius 
)

Function creating a rounded shape by creating a hole in a box (previously created !)

Definition at line 152 of file Station345Geometry.cxx.

◆ getStation1SensitiveVolumes()

std::vector< TGeoVolume * > o2::mch::getStation1SensitiveVolumes ( )

Create a vector containing the sensitive volume name of the quadrants for the Detector class

Definition at line 1598 of file Station1Geometry.cxx.

◆ getStation2SensitiveVolumes()

std::vector< TGeoVolume * > o2::mch::getStation2SensitiveVolumes ( )

Create a vector containing the sensitive volume's name of the quadrants for the Detector class

Definition at line 419 of file Station2Geometry.cxx.

◆ getStation345SensitiveVolumes()

std::vector< TGeoVolume * > o2::mch::getStation345SensitiveVolumes ( )

Create a vector containing the sensitive volume's name of the slats (PCB gas) for the Detector class

Definition at line 719 of file Station345Geometry.cxx.

◆ getStatusMapCreatorSpec()

framework::DataProcessorSpec o2::mch::getStatusMapCreatorSpec ( std::string_view  specName = "mch-statusmap-creator")

Definition at line 173 of file StatusMapCreatorSpec.cxx.

◆ getStatusMapReaderSpec()

framework::DataProcessorSpec o2::mch::getStatusMapReaderSpec ( const char specName)

Definition at line 59 of file StatusMapReaderSpec.cxx.

◆ getStatusMapWriterSpec()

framework::DataProcessorSpec o2::mch::getStatusMapWriterSpec ( const char specName)

Definition at line 25 of file StatusMapWriterSpec.cxx.

◆ getTimeClusterFinderSpec()

o2::framework::DataProcessorSpec o2::mch::getTimeClusterFinderSpec ( const char specName = "mch-time-cluster-finder",
std::string_view  inputDigitDataDescription = "F-DIGITS",
std::string_view  inputDigitRofDataDescription = "F-DIGITROFS",
std::string_view  outputDigitRofDataDescription = "TC-F-DIGITROFS",
std::string_view  inputIRFrameDataDescription = "ITS/IRFRAMES" 
)

Definition at line 209 of file TimeClusterFinderSpec.cxx.

◆ getTrackAtVertexSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackAtVertexSpec ( const char specName)

Definition at line 228 of file TrackAtVertexSpec.cxx.

◆ getTrackDumperSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackDumperSpec ( bool  useMC,
const char specName 
)

Definition at line 77 of file TrackDumperSpec.cxx.

◆ getTrackFinderSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackFinderSpec ( const char specName = "mch-track-finder",
bool  computeTime = true,
bool  digits = false,
bool  disableCCDBMagField = false,
bool  original = false 
)

Definition at line 281 of file TrackFinderSpec.cxx.

◆ getTrackFitterSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackFitterSpec ( const char specName)

Definition at line 129 of file TrackFitterSpec.cxx.

◆ getTrackMCLabelFinderSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackMCLabelFinderSpec ( const char specName,
const char digitRofDataDescription,
const char digitLabelDataDescription 
)

Definition at line 184 of file TrackMCLabelFinderSpec.cxx.

◆ getTrackReaderSpec()

DataProcessorSpec o2::mch::getTrackReaderSpec ( bool  useMC,
const char specName = "mch-tracks-reader",
bool  digits = false,
uint32_t  subspec = 0 
)

Definition at line 139 of file TrackReaderSpec.cxx.

◆ getTrackSamplerSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackSamplerSpec ( const char specName,
bool  forTrackFitter 
)

Definition at line 179 of file TrackSamplerSpec.cxx.

◆ getTrackSinkSpec()

o2::framework::DataProcessorSpec o2::mch::getTrackSinkSpec ( const char specName,
bool  mchTracks,
bool  tracksAtVtx 
)

Definition at line 211 of file TrackSinkSpec.cxx.

◆ getTrackWriterSpec()

DataProcessorSpec o2::mch::getTrackWriterSpec ( bool  useMC,
const char specName = "mch-track-writer",
const char fileName = "mchtracks.root",
bool  digits = false 
)

Definition at line 31 of file TrackWriterSpec.cxx.

◆ getVarX()

double * o2::mch::getVarX ( double *  theta,
int  K 
)

Definition at line 982 of file mathieson.cxx.

◆ getVarY()

double * o2::mch::getVarY ( double *  theta,
int  K 
)

Definition at line 983 of file mathieson.cxx.

◆ getVertexSamplerSpec()

o2::framework::DataProcessorSpec o2::mch::getVertexSamplerSpec ( const char specName)

Definition at line 113 of file VertexSamplerSpec.cxx.

◆ getW()

double * o2::mch::getW ( double *  theta,
int  K 
)

Definition at line 986 of file mathieson.cxx.

◆ getX()

double * o2::mch::getX ( double *  xyDxy,
int  N 
)

Definition at line 1006 of file mathieson.cxx.

◆ getXInf()

double * o2::mch::getXInf ( double *  xyInfSup,
int  N 
)

Definition at line 1017 of file mathieson.cxx.

◆ getXSup()

double * o2::mch::getXSup ( double *  xyInfSup,
int  N 
)

Definition at line 1019 of file mathieson.cxx.

◆ getY()

double * o2::mch::getY ( double *  xyDxy,
int  N 
)

Definition at line 1007 of file mathieson.cxx.

◆ getYInf()

double * o2::mch::getYInf ( double *  xyInfSup,
int  N 
)

Definition at line 1018 of file mathieson.cxx.

◆ getYSup()

double * o2::mch::getYSup ( double *  xyInfSup,
int  N 
)

Definition at line 1020 of file mathieson.cxx.

◆ initClusterConfig()

void o2::mch::initClusterConfig ( )

Definition at line 36 of file ClusterConfig.cxx.

◆ initMathieson()

void o2::mch::initMathieson ( int  useSpline_,
int  useCache_ 
)

Definition at line 73 of file mathieson.cxx.

◆ initSplineMathiesonPrimitive()

void o2::mch::initSplineMathiesonPrimitive ( )

Definition at line 94 of file mathieson.cxx.

◆ inverseMap()

template<typename KEY , typename VALUE >
std::map< VALUE, KEY > o2::mch::inverseMap ( const std::map< KEY, VALUE > &  src)

Definition at line 25 of file DsIndex.cxx.

◆ isOK()

bool o2::mch::isOK ( const SanityError error)

Definition at line 18 of file SanityCheck.cxx.

◆ isRounded()

bool o2::mch::isRounded ( string  name)

Definition at line 142 of file Station345Geometry.cxx.

◆ isShort()

bool o2::mch::isShort ( string  name)

Definition at line 147 of file Station345Geometry.cxx.

◆ isTrackable()

bool o2::mch::isTrackable ( std::array< int, 10 >  itemsPerChamber,
std::array< bool, 5 >  requestStation = {true, true, true, true, true},
bool  moreCandidates = false 
)

Given a number of items (digits, (pre)clusters) per chamber, decides if there's the minimum required information to get any chance of producing tracks.

Parameters
itemsPerChamberinteger array containing the number of items per chamber (10 chambers, so 10 integers required)
requestStationboolean array to indicate which stations are required for the tracking (by default all 5 are needed)
moreCandidatesweaker tracking condition where only one item in each of station 4 and 5 is requested (instead of one item per chamber in station 4 and in station 5)

Definition at line 18 of file Trackable.cxx.

◆ iterateEMPoisson()

void o2::mch::iterateEMPoisson ( const double *  Cij,
const double *  Ci,
const Mask_t maskCij,
const double *  qPixels,
const double *  qPad,
double *  qPadPrediction,
int  nPixels,
int  nPads,
double *  newQPixels 
)

Definition at line 35 of file poissonEM.cxx.

◆ local2global()

void o2::mch::local2global ( geo::TransformationCreator  transformation,
gsl::span< const Cluster localClusters,
std::vector< Cluster, o2::pmr::polymorphic_allocator< Cluster > > &  globalClusters 
)

Definition at line 43 of file ClusterTransformerSpec.cxx.

◆ main()

int o2::mch::main ( )

Definition at line 180 of file ClusterPEM.cxx.

◆ maskedCopyTheta()

void o2::mch::maskedCopyTheta ( const double *  theta,
int  K,
const Mask_t mask,
int  nMask,
double *  maskedTheta,
int  maskedK 
)

Definition at line 1165 of file mathieson.cxx.

◆ maskedCopyToXYInfSup()

void o2::mch::maskedCopyToXYInfSup ( const double *  xyDxy,
int  ndxyDxy,
const Mask_t mask,
int  nMask,
double *  xyDxyMasked,
int  ndxyDxyMasked 
)

Definition at line 1132 of file mathieson.cxx.

◆ maskedCopyXYdXY()

void o2::mch::maskedCopyXYdXY ( const double *  xyDxy,
int  nxyDxy,
const Mask_t mask,
int  nMask,
double *  xyDxyMasked,
int  nxyDxyMasked 
)

Definition at line 1115 of file mathieson.cxx.

◆ mathiesonPrimitive()

void o2::mch::mathiesonPrimitive ( const double *  xy,
int  N,
int  axe,
int  chamberId,
double  mPrimitive[] 
)

Definition at line 245 of file mathieson.cxx.

◆ moore_penrose_pinv()

gsl_matrix * o2::mch::moore_penrose_pinv ( gsl_matrix *  A,
const realtype  rcond 
)

Compute the (Moore-Penrose) pseudo-inverse of a matrix.

If the singular value decomposition (SVD) of A = U?V? then the pseudoinverse A?? = V???U?, where ? indicates transpose and ??? is obtained by taking the reciprocal of each nonzero element on the diagonal, leaving zeros in place. Elements on the diagonal smaller than rcond times the largest singular value are considered zero.

@parameter A Input matrix. WARNING: the input matrix A is destroyed. However, it is still the responsibility of the caller to free it. @parameter rcond A real number specifying the singular value threshold for inclusion. NumPy default for rcond is 1E-15.

Returns
A_pinv Matrix containing the result. A_pinv is allocated in this function and it is the responsibility of the caller to free it.

Definition at line 100 of file ClusterPEM.cxx.

◆ numberOfDualSampaChannels()

uint8_t o2::mch::numberOfDualSampaChannels ( DsIndex  dsIndex)

get the number of channels for a given dual sampa (will be 64 in most of the cases.

Definition at line 34 of file DsIndex.cxx.

◆ operator!=() [1/2]

bool o2::mch::operator!= ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 134 of file ChannelCode.h.

◆ operator!=() [2/2]

bool o2::mch::operator!= ( const OrbitInfo o1,
const OrbitInfo o2 
)

Definition at line 38 of file OrbitInfo.cxx.

◆ operator<() [1/2]

bool o2::mch::operator< ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 135 of file ChannelCode.h.

◆ operator<() [2/2]

bool o2::mch::operator< ( const OrbitInfo o1,
const OrbitInfo o2 
)

Definition at line 43 of file OrbitInfo.cxx.

◆ operator<<() [1/6]

std::ostream & o2::mch::operator<< ( std::ostream &  os,
const CTFHeader ctf 
)

Definition at line 19 of file CTF.cxx.

◆ operator<<() [2/6]

std::ostream & o2::mch::operator<< ( std::ostream &  os,
const Digit d 
)

Definition at line 20 of file Digit.cxx.

◆ operator<<() [3/6]

std::ostream & o2::mch::operator<< ( std::ostream &  os,
const ROFRecord rof 
)

Definition at line 23 of file ROFRecord.cxx.

◆ operator<<() [4/6]

std::ostream & o2::mch::operator<< ( std::ostream &  os,
const TrackMCH t 
)

Definition at line 98 of file TrackMCH.cxx.

◆ operator<<() [5/6]

std::ostream & o2::mch::operator<< ( std::ostream &  stream,
const Cluster cluster 
)

Definition at line 25 of file Cluster.cxx.

◆ operator<<() [6/6]

std::ostream & o2::mch::operator<< ( std::ostream &  stream,
const TrackParamStruct trackParam 
)

Definition at line 24 of file TrackBlock.cxx.

◆ operator<=()

bool o2::mch::operator<= ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 137 of file ChannelCode.h.

◆ operator==() [1/2]

bool o2::mch::operator== ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 133 of file ChannelCode.h.

◆ operator==() [2/2]

bool o2::mch::operator== ( const OrbitInfo o1,
const OrbitInfo o2 
)

Definition at line 33 of file OrbitInfo.cxx.

◆ operator>()

bool o2::mch::operator> ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 136 of file ChannelCode.h.

◆ operator>=()

bool o2::mch::operator>= ( const ChannelCode a,
const ChannelCode b 
)
inline

Definition at line 138 of file ChannelCode.h.

◆ perChamber() [1/3]

template<>
std::array< int, 10 > o2::mch::perChamber ( gsl::span< const Digit digits)

Specialization of perChamber for Digits

Definition at line 56 of file Trackable.cxx.

◆ perChamber() [2/3]

template<>
std::array< int, 10 > o2::mch::perChamber ( gsl::span< const int deids)

Specialization of perChamber for integers (representing detection element ids.

Definition at line 45 of file Trackable.cxx.

◆ perChamber() [3/3]

template<typename T >
std::array< int, 10 > o2::mch::perChamber ( gsl::span< const T >  items)

Return the number of items per chamber.

Template Parameters
Tthe type of items : implementation exists so far only for mch::Digit (clusters and pre-clusters to come next)

◆ perStation()

template<typename T >
std::array< int, 5 > o2::mch::perStation ( gsl::span< const T >  items)

Return the number of items per station (1 station==2 chambers).

Definition at line 48 of file Trackable.h.

◆ placeInnerLayers()

void o2::mch::placeInnerLayers ( int  chamber)

place the gas and the copper layers for the specified chamber.

Definition at line 1434 of file Station1Geometry.cxx.

◆ PoissonEMLoop()

std::pair< double, double > o2::mch::PoissonEMLoop ( const Pads pads,
Pads pixels,
const double *  Cij,
Mask_t maskCij,
int  qCutMode,
double  minPadError,
int  nItMax 
)

Definition at line 262 of file poissonEM.cxx.

◆ print_matrix()

void o2::mch::print_matrix ( const gsl_matrix *  m)

Definition at line 64 of file ClusterPEM.cxx.

◆ printBranch()

template<typename T >
void o2::mch::printBranch ( char data,
const char what 
)

Definition at line 35 of file TrackReaderSpec.cxx.

◆ printGSLVector()

void o2::mch::printGSLVector ( const char str,
const gsl_vector *  v 
)

Definition at line 76 of file ClusterPEM.cxx.

◆ printInterMap()

void o2::mch::printInterMap ( const char str,
const PadIdx_t inter,
int  N 
)

Definition at line 98 of file mathUtil.cxx.

◆ printMatrixChar()

void o2::mch::printMatrixChar ( const char str,
const char matrix,
int  N,
int  M 
)

Definition at line 86 of file mathUtil.cxx.

◆ printMatrixInt()

void o2::mch::printMatrixInt ( const char str,
const int matrix,
int  N,
int  M 
)

Definition at line 62 of file mathUtil.cxx.

◆ printMatrixShort()

void o2::mch::printMatrixShort ( const char str,
const short matrix,
int  N,
int  M 
)

Definition at line 74 of file mathUtil.cxx.

◆ printState() [1/2]

void o2::mch::printState ( int  iter,
gsl_multifit_fdfsolver *  s,
int  axe,
int  K,
int  N 
)

Definition at line 872 of file mathiesonFit.cxx.

◆ printState() [2/2]

void o2::mch::printState ( int  iter,
gsl_multifit_fdfsolver *  s,
int  K 
)

◆ printTheta()

void o2::mch::printTheta ( const char str,
double  meanCharge,
const double *  theta,
int  K 
)

Definition at line 1075 of file mathieson.cxx.

◆ printXYdXY()

void o2::mch::printXYdXY ( const char str,
const double *  xyDxy,
int  NMax,
int  N,
const double *  val1,
const double *  val2 
)

Definition at line 1185 of file mathieson.cxx.

◆ report()

void o2::mch::report ( const std::map< int, std::vector< int > > &  rejectList,
uint32_t  statusMask 
)

Definition at line 101 of file DigitFilter.cxx.

◆ sanityCheck()

template<typename T >
SanityError o2::mch::sanityCheck ( gsl::span< const ROFRecord rofs,
gsl::span< const T >  items 
)

Definition at line 48 of file SanityCheck.h.

◆ shouldUsePad()

bool o2::mch::shouldUsePad ( const PadOriginal pad,
int  plane,
int  statusMask,
bool  matchMask 
)

return true if the pad should be used according to the plane it belongs to, its state and whether its status mask matches (or not) the given mask

Definition at line 32 of file ClusterOriginal.cxx.

◆ size()

size_t o2::mch::size ( const StatusMap sm)

Definition at line 44 of file StatusMapCreatorSpec.cxx.

◆ splineMathiesonPrimitive()

void o2::mch::splineMathiesonPrimitive ( const double *  x,
int  N,
int  axe,
int  chamberId,
double *  mPrimitive 
)

Definition at line 196 of file mathieson.cxx.

◆ Square() [1/2]

double o2::mch::Square ( double  x)

Definition at line 123 of file Aligner.cxx.

◆ Square() [2/2]

Double_t o2::mch::Square ( Double_t  x)

Definition at line 138 of file MchAlignment.cxx.

◆ vectorPrint()

void o2::mch::vectorPrint ( const char str,
const double *  x,
int  K 
)

Definition at line 20 of file mathUtil.cxx.

◆ vectorPrint2Columns()

void o2::mch::vectorPrint2Columns ( const char str,
const double *  x,
const double *  y,
int  K 
)

Definition at line 52 of file mathUtil.cxx.

◆ vectorPrintInt()

void o2::mch::vectorPrintInt ( const char str,
const int x,
int  K 
)

Definition at line 34 of file mathUtil.cxx.

◆ vectorPrintShort()

void o2::mch::vectorPrintShort ( const char str,
const short x,
int  K 
)

Definition at line 43 of file mathUtil.cxx.

◆ xyDxyToxyInfSup()

void o2::mch::xyDxyToxyInfSup ( const double *  xyDxy,
int  nxyDxy,
double *  xyInfSup 
)

Definition at line 1090 of file mathieson.cxx.

Variable Documentation

◆ clusterConfig

ClusterConfig o2::mch::clusterConfig

Definition at line 34 of file ClusterConfig.cxx.

◆ epsilonGeometry

double o2::mch::epsilonGeometry = 1.0e-4

Definition at line 44 of file ClusterPEM.cxx.

◆ jsonSlatDescription

const string o2::mch::jsonSlatDescription

Json string describing all the necessary parameters to place the slats in the half-chambers.

Definition at line 762 of file Station345Geometry.cxx.

◆ kAAluminium

const float o2::mch::kAAluminium = 26.9815385

Definition at line 52 of file Materials.cxx.

◆ kAArgon

const float o2::mch::kAArgon = 39.948

Definition at line 61 of file Materials.cxx.

◆ kACarbon

const float o2::mch::kACarbon = 12.0107

Definition at line 39 of file Materials.cxx.

◆ kAChromium

const float o2::mch::kAChromium = 51.9961

Definition at line 65 of file Materials.cxx.

◆ kACopper

const float o2::mch::kACopper = 63.546

Definition at line 77 of file Materials.cxx.

◆ kAHydrogen

const float o2::mch::kAHydrogen = 1.00794

Definition at line 35 of file Materials.cxx.

◆ kAIron

const float o2::mch::kAIron = 55.845

Definition at line 69 of file Materials.cxx.

◆ kANickel

const float o2::mch::kANickel = 58.6934

Definition at line 73 of file Materials.cxx.

◆ kANitrogen

const float o2::mch::kANitrogen = 14.0067

Definition at line 44 of file Materials.cxx.

◆ kAOxygen

const float o2::mch::kAOxygen = 15.9994

Definition at line 48 of file Materials.cxx.

◆ kASilicon

const float o2::mch::kASilicon = 28.0855

Definition at line 57 of file Materials.cxx.

◆ kBorderHalfHeight

const float o2::mch::kBorderHalfHeight = 2.5

Definition at line 77 of file Station345Geometry.cxx.

◆ kBorderHalfThickness

const float o2::mch::kBorderHalfThickness = kGasHalfThickness

Definition at line 78 of file Station345Geometry.cxx.

◆ kBoxSegHalfHeight

const double o2::mch::kBoxSegHalfHeight[kNSegments] = {0.6, 0., 95.5 / 2}

Definition at line 65 of file Station2Geometry.cxx.

◆ kBoxSegHalfLength

const double o2::mch::kBoxSegHalfLength[kNSegments] = {95.5 / 2, 0., 0.5}

Definition at line 64 of file Station2Geometry.cxx.

◆ kCarbonHalfThickness

const float o2::mch::kCarbonHalfThickness = 0.02 / 2

Definition at line 67 of file Station345Geometry.cxx.

◆ kCarbonSupportHalfThickness

const float o2::mch::kCarbonSupportHalfThickness = 0.03 / 2

Support panels.

Definition at line 92 of file Station345Geometry.cxx.

◆ kCathodeHalfThickness

const float o2::mch::kCathodeHalfThickness = 0.005 / 2

Definition at line 45 of file Station2Geometry.cxx.

◆ kCh5SupportHalfLength

const float o2::mch::kCh5SupportHalfLength = 162. / 2

Definition at line 98 of file Station345Geometry.cxx.

◆ kCh6SupportHalfLength

const float o2::mch::kCh6SupportHalfLength = 167. / 2

Definition at line 99 of file Station345Geometry.cxx.

◆ kChamberZPos

const double o2::mch::kChamberZPos = {-526.16, -545.24}

Constants.

Definition at line 41 of file Station1Geometry.cxx.

◆ kDaughterCopyNoOffset

const int o2::mch::kDaughterCopyNoOffset = 1000

Definition at line 115 of file Station1Geometry.cxx.

◆ kDaughterName

const char* o2::mch::kDaughterName = "SCDB"

Definition at line 119 of file Station1Geometry.cxx.

◆ kDeemax

const float o2::mch::kDeemax = -0.3

Definition at line 86 of file Materials.cxx.

◆ kDeltaFilleEtamX

const float o2::mch::kDeltaFilleEtamX = 1.

Definition at line 94 of file Station1Geometry.cxx.

◆ kDeltaFilleEtamY

const float o2::mch::kDeltaFilleEtamY = 0.051

Definition at line 95 of file Station1Geometry.cxx.

◆ kDeltaQuadLHC

const float o2::mch::kDeltaQuadLHC = 2.6

Definition at line 107 of file Station1Geometry.cxx.

◆ kDensAluminium

const float o2::mch::kDensAluminium = 2.699

Definition at line 53 of file Materials.cxx.

◆ kDensCarbon

const float o2::mch::kDensCarbon = 2.265

Definition at line 40 of file Materials.cxx.

◆ kDensCopper

const float o2::mch::kDensCopper = 8.96

Definition at line 78 of file Materials.cxx.

◆ kDualSampaHalfHeight

const float o2::mch::kDualSampaHalfHeight = 2.5

Definition at line 82 of file Station345Geometry.cxx.

◆ kDualSampaHalfLength

const float o2::mch::kDualSampaHalfLength = 3.2 / 2

Definition at line 81 of file Station345Geometry.cxx.

◆ kDualSampaHalfThickness

const float o2::mch::kDualSampaHalfThickness = 0.027 / 2

Definition at line 83 of file Station345Geometry.cxx.

◆ kDualSampaYPos

const float o2::mch::kDualSampaYPos = 0.45 + kSlatPanelHalfHeight + kDualSampaHalfHeight

Definition at line 84 of file Station345Geometry.cxx.

◆ kEERBHalfThickness

const double o2::mch::kEERBHalfThickness = 0.04 / 2

Definition at line 50 of file Station2Geometry.cxx.

◆ kEpoxyHalfThickness

const double o2::mch::kEpoxyHalfThickness = 2.

Definition at line 97 of file Station2Geometry.cxx.

◆ kEpsil

const float o2::mch::kEpsil = 0.001

Tracking parameters (values taken from AliMUONCommonGeometryBuilder)

Definition at line 81 of file Materials.cxx.

◆ kFoamBoxNameOffset

const int o2::mch::kFoamBoxNameOffset = 200

Definition at line 113 of file Station1Geometry.cxx.

◆ kFR4BoxNameOffset

const int o2::mch::kFR4BoxNameOffset = 400

Definition at line 114 of file Station1Geometry.cxx.

◆ kFrame3Radius

const double o2::mch::kFrame3Radius[2] = {kSegmentRadius[1], 121.6}

Definition at line 91 of file Station2Geometry.cxx.

◆ kFrame7Radius

const double o2::mch::kFrame7Radius[2] = {20.6, kSegmentRadius[0]}

Definition at line 94 of file Station2Geometry.cxx.

◆ kFrameHalfHeight

const double o2::mch::kFrameHalfHeight[kNFrames] = {2.5 / 2, 0.6, 0., 2., 101. / 2, 2.5 / 2, 0., 0.6}

Definition at line 70 of file Station2Geometry.cxx.

◆ kFrameHalfLength

const double o2::mch::kFrameHalfLength[kNFrames] = {101. / 2, 2., 0., 0.5, 2.7 / 2, 0.5, 0., 2.5 / 2}

Definition at line 69 of file Station2Geometry.cxx.

◆ kFrameOffset

const float o2::mch::kFrameOffset = 5.2

Definition at line 108 of file Station1Geometry.cxx.

◆ kGasHalfHeight

const float o2::mch::kGasHalfHeight = 40. / 2

Definition at line 47 of file Station345Geometry.cxx.

◆ kGasHalfThickness

const float o2::mch::kGasHalfThickness = 0.25

Definition at line 44 of file Station2Geometry.cxx.

◆ kGasLength

const float o2::mch::kGasLength = 40.

Constants.

Definition at line 46 of file Station345Geometry.cxx.

◆ kGlueHalfThickness

const float o2::mch::kGlueHalfThickness = 0.004 / 2

Definition at line 65 of file Station345Geometry.cxx.

◆ kGlueSupportHalfThickness

const float o2::mch::kGlueSupportHalfThickness = 0.02 / 2

Definition at line 93 of file Station345Geometry.cxx.

◆ kHoleName

const char* o2::mch::kHoleName = "SCHL"

Definition at line 118 of file Station1Geometry.cxx.

◆ kHoriSpacerHalfHeight

const float o2::mch::kHoriSpacerHalfHeight = 1.95 / 2

Definition at line 72 of file Station345Geometry.cxx.

◆ kHxBergCopper

const float o2::mch::kHxBergCopper = 0.25 / 2

Definition at line 86 of file Station1Geometry.cxx.

◆ kHxBergPlastic

const float o2::mch::kHxBergPlastic = 0.74 / 2

Definition at line 84 of file Station1Geometry.cxx.

◆ kHxBoxSpacer

const float o2::mch::kHxBoxSpacer = 0.51

Definition at line 59 of file Station1Geometry.cxx.

◆ kHxDaughter

const float o2::mch::kHxDaughter = 2.3 / 2

Definition at line 90 of file Station1Geometry.cxx.

◆ kHxHole

const float o2::mch::kHxHole = 1.5 / 2

Definition at line 82 of file Station1Geometry.cxx.

◆ kHxKapton

const float o2::mch::kHxKapton = 0.4

Definition at line 88 of file Station1Geometry.cxx.

◆ kHyBergCopper

const float o2::mch::kHyBergCopper = 3.6 / 2

Definition at line 87 of file Station1Geometry.cxx.

◆ kHyBergPlastic

const float o2::mch::kHyBergPlastic = 5.09 / 2

Definition at line 85 of file Station1Geometry.cxx.

◆ kHyDaughter

const float o2::mch::kHyDaughter = 6.3 / 2

Definition at line 91 of file Station1Geometry.cxx.

◆ kHyHole

const float o2::mch::kHyHole = 3.

Definition at line 83 of file Station1Geometry.cxx.

◆ kHyKapton

const float o2::mch::kHyKapton = 5.7 / 2

Definition at line 89 of file Station1Geometry.cxx.

◆ kHySpacer5A

const float o2::mch::kHySpacer5A = 0.17

Definition at line 60 of file Station1Geometry.cxx.

◆ kHySpacer6

const float o2::mch::kHySpacer6 = 1.5

Definition at line 62 of file Station1Geometry.cxx.

◆ kHzBergCopper

const float o2::mch::kHzBergCopper = 0.1882 / 2

Definition at line 54 of file Station1Geometry.cxx.

◆ kHzBergPlastic

const float o2::mch::kHzBergPlastic = 0.3062 / 2

Definition at line 53 of file Station1Geometry.cxx.

◆ kHzDaughter

const float o2::mch::kHzDaughter = 0.0156 / 2

Definition at line 55 of file Station1Geometry.cxx.

◆ kHzFoam

const float o2::mch::kHzFoam = 2.503 / 2

Definition at line 48 of file Station1Geometry.cxx.

◆ kHzFR4

const float o2::mch::kHzFR4 = 0.062 / 2

Definition at line 49 of file Station1Geometry.cxx.

◆ kHzGas

const float o2::mch::kHzGas = 0.42 / 2

Definition at line 56 of file Station1Geometry.cxx.

◆ kHzKapton

const float o2::mch::kHzKapton = 0.0122 / 2

Definition at line 52 of file Station1Geometry.cxx.

◆ kHzPadPlane

const float o2::mch::kHzPadPlane = 0.0148 / 2

Definition at line 47 of file Station1Geometry.cxx.

◆ kHzSnPb

const float o2::mch::kHzSnPb = 0.0091 / 2

Definition at line 51 of file Station1Geometry.cxx.

◆ kHzSpacer5A

const float o2::mch::kHzSpacer5A = 1.1515

Definition at line 61 of file Station1Geometry.cxx.

◆ kHzSpacer6

const float o2::mch::kHzSpacer6 = 0.1

Definition at line 63 of file Station1Geometry.cxx.

◆ kHzSpacer7A

const float o2::mch::kHzSpacer7A = 0.1

Definition at line 65 of file Station1Geometry.cxx.

◆ kInsuHalfThickness

const float o2::mch::kInsuHalfThickness = kPCBHalfThickness - kCathodeHalfThickness

Definition at line 47 of file Station2Geometry.cxx.

◆ kLateralXPosShift

const float o2::mch::kLateralXPosShift = 92.175

Definition at line 98 of file Station1Geometry.cxx.

◆ kLateralYPosShift

const float o2::mch::kLateralYPosShift = 5.

Definition at line 99 of file Station1Geometry.cxx.

◆ kLVCableHalfHeight

const float o2::mch::kLVCableHalfHeight = 2.6 / 2

Cables (copper)

Definition at line 88 of file Station345Geometry.cxx.

◆ kLVCableHalfThickness

const float o2::mch::kLVCableHalfThickness = 0.026 / 2

Definition at line 89 of file Station345Geometry.cxx.

◆ kMaxfd

const float o2::mch::kMaxfd = -20.

Definition at line 84 of file Materials.cxx.

◆ kMEBHalfThickness

const double o2::mch::kMEBHalfThickness = 0.04 / 2

Definition at line 49 of file Station2Geometry.cxx.

◆ kModuleName

const char* o2::mch::kModuleName = "MCH"

Definition at line 89 of file Materials.cxx.

◆ kMotherIR1

const float o2::mch::kMotherIR1 = 18.3

Definition at line 72 of file Station1Geometry.cxx.

◆ kMotherIR2

const float o2::mch::kMotherIR2 = 20.7

Definition at line 77 of file Station1Geometry.cxx.

◆ kMotherOR1

const float o2::mch::kMotherOR1 = 105.673

Definition at line 73 of file Station1Geometry.cxx.

◆ kMotherOR2

const float o2::mch::kMotherOR2 = 100.073

Definition at line 78 of file Station1Geometry.cxx.

◆ kMotherPhiL

const float o2::mch::kMotherPhiL = 0.

Definition at line 68 of file Station1Geometry.cxx.

◆ kMotherPhiU

const float o2::mch::kMotherPhiU = 90.

Definition at line 69 of file Station1Geometry.cxx.

◆ kMotherThick1

const float o2::mch::kMotherThick1 = 6.5 / 2

Definition at line 74 of file Station1Geometry.cxx.

◆ kMotherThick2

const float o2::mch::kMotherThick2 = 1.5

Definition at line 79 of file Station1Geometry.cxx.

◆ kNearFarLHC

const float o2::mch::kNearFarLHC = 2.4

Definition at line 106 of file Station1Geometry.cxx.

◆ kNEdges

const int o2::mch::kNEdges = 5

Definition at line 56 of file Station2Geometry.cxx.

◆ kNFrames

const int o2::mch::kNFrames = 8

Frames.

Definition at line 68 of file Station2Geometry.cxx.

◆ kNomexBulkHalfThickness

const float o2::mch::kNomexBulkHalfThickness = 0.025 / 2

Definition at line 66 of file Station345Geometry.cxx.

◆ kNomexHalfThickness

const float o2::mch::kNomexHalfThickness = 0.8 / 2

Definition at line 68 of file Station345Geometry.cxx.

◆ kNomexSupportHalfThickness

const float o2::mch::kNomexSupportHalfThickness = 1.5 / 2

Definition at line 94 of file Station345Geometry.cxx.

◆ kNPlanes

const int o2::mch::kNPlanes = 2

Definition at line 55 of file Station2Geometry.cxx.

◆ kNSegments

const int o2::mch::kNSegments = 3

Segments.

Definition at line 59 of file Station2Geometry.cxx.

◆ kOffsetX

const float o2::mch::kOffsetX = 1.46

Definition at line 92 of file Station1Geometry.cxx.

◆ kOffsetY

const float o2::mch::kOffsetY = 0.71

Definition at line 93 of file Station1Geometry.cxx.

◆ kPadXOffsetBP

const float o2::mch::kPadXOffsetBP = 0.50 - 0.63 / 2

Definition at line 111 of file Station1Geometry.cxx.

◆ kPadYOffsetBP

const float o2::mch::kPadYOffsetBP = -0.31 - 0.42 / 2

Definition at line 112 of file Station1Geometry.cxx.

◆ kPCBHalfHeight

const float o2::mch::kPCBHalfHeight = 58. / 2

Definition at line 55 of file Station345Geometry.cxx.

◆ kPCBHalfThickness

const float o2::mch::kPCBHalfThickness = 0.04 / 2

Definition at line 46 of file Station2Geometry.cxx.

◆ kPCBLength

const float o2::mch::kPCBLength = kGasLength

Definition at line 51 of file Station345Geometry.cxx.

◆ kPcbTypes

const map<string, array<int, 4> > o2::mch::kPcbTypes = {{"B1N1", {10, 10, 7, 7}}, {"B2N2-", {5, 5, 4, 3}}, {"B2N2+", {5, 5, 3, 4}}, {"B3-N3", {3, 2, 2, 2}}, {"B3+N3", {2, 3, 2, 2}}, {"R1", {3, 4, 2, 3}}, {"R2", {13, 4, 9, 3}}, {"R3", {13, 1, 10, 0}}, {"S2-", {4, 5, 3, 3}}, {"S2+", {5, 4, 3, 3}}}

Definition at line 111 of file Station345Geometry.cxx.

◆ kPhiTrap

const float o2::mch::kPhiTrap = 0.

Definition at line 103 of file Station1Geometry.cxx.

◆ kQuadrantFLayerName

const char* o2::mch::kQuadrantFLayerName = "SQF"

Definition at line 122 of file Station1Geometry.cxx.

◆ kQuadrantMFLayerName

const char* o2::mch::kQuadrantMFLayerName = "SQMF"

Definition at line 123 of file Station1Geometry.cxx.

◆ kQuadrantMLayerName

const char* o2::mch::kQuadrantMLayerName = "SQM"

Definition at line 120 of file Station1Geometry.cxx.

◆ kQuadrantNLayerName

const char* o2::mch::kQuadrantNLayerName = "SQN"

Definition at line 121 of file Station1Geometry.cxx.

◆ kQuadrantZPos

const double o2::mch::kQuadrantZPos = 7.5 / 2

Definition at line 44 of file Station1Geometry.cxx.

◆ kR1PCBLength

const float o2::mch::kR1PCBLength = 19.25

Definition at line 54 of file Station345Geometry.cxx.

◆ kRib3Radius

const double o2::mch::kRib3Radius[2] = {kSegmentRadius[1], 120.6}

Definition at line 92 of file Station2Geometry.cxx.

◆ kRib7Radius

const double o2::mch::kRib7Radius[2] = {21.6, kSegmentRadius[0]}

Definition at line 95 of file Station2Geometry.cxx.

◆ kRibHalfHeight

const double o2::mch::kRibHalfHeight[kNFrames]
Initial value:
= {
0.3,
0.,
kFrameHalfHeight[3] - 0.5,
1.5 / 2,
0.,
const double kFrameHalfHeight[kNFrames]

Definition at line 81 of file Station2Geometry.cxx.

◆ kRibHalfLength

const double o2::mch::kRibHalfLength[kNFrames]
Initial value:
= {
kFrameHalfLength[1] - 0.5,
0.,
0.8 / 2,
0.,
kFrameHalfLength[7] - 0.5}
const double kFrameHalfLength[kNFrames]

Definition at line 72 of file Station2Geometry.cxx.

◆ kRibHalfThickness

const double o2::mch::kRibHalfThickness = 0.5

Definition at line 98 of file Station2Geometry.cxx.

◆ kRohaHalfThickness

const double o2::mch::kRohaHalfThickness = 2.5 / 2

Definition at line 48 of file Station2Geometry.cxx.

◆ kRoundedPCBLength

const float o2::mch::kRoundedPCBLength = 42.5

Definition at line 53 of file Station345Geometry.cxx.

◆ kRoundedSpacerHalfLength

const float o2::mch::kRoundedSpacerHalfLength = 1.

Definition at line 74 of file Station345Geometry.cxx.

◆ kRSpacer7A

const float o2::mch::kRSpacer7A = 0.3

Definition at line 64 of file Station1Geometry.cxx.

◆ kSegmentRadius

const double o2::mch::kSegmentRadius[2] = {23.1, 117.6}

Definition at line 61 of file Station2Geometry.cxx.

◆ kShortPCBLength

const float o2::mch::kShortPCBLength = 35.

Definition at line 52 of file Station345Geometry.cxx.

◆ kSlatPanelHalfHeight

const float o2::mch::kSlatPanelHalfHeight = 42.5 / 2

Definition at line 63 of file Station345Geometry.cxx.

◆ kSlatTypes

const map<string, vector<string> > o2::mch::kSlatTypes
Initial value:
= {{"122000SR1", {"S2-", "B2N2+", "B1N1", "R1"}},
{"112200SR2", {"S2-", "B2N2+", "B1N1", "R2"}},
{"122200S", {"B1N1", "B2N2-", "B2N2-", "S2+"}},
{"222000N", {"B2N2-", "B2N2-", "B2N2-"}},
{"220000N", {"B2N2-", "B2N2-"}},
{"122000NR1", {"B2N2+", "B2N2+", "B1N1", "R1"}},
{"112200NR2", {"B2N2+", "B2N2+", "B1N1", "R2"}},
{"122200N", {"B1N1", "B2N2-", "B2N2-", "B2N2-"}},
{"122330N", {"B1N1", "B2N2+", "B2N2-", "B3-N3", "B3-N3"}},
{"112233NR3", {"B3+N3", "B3+N3", "B2N2+", "B2N2-", "B1N1", "R3"}},
{"112230N", {"B1N1", "B1N1", "B2N2-", "B2N2-", "B3-N3"}},
{"222330N", {"B2N2+", "B2N2+", "B2N2-", "B3-N3", "B3-N3"}},
{"223300N", {"B2N2+", "B2N2-", "B3-N3", "B3-N3"}},
{"333000N", {"B3-N3", "B3-N3", "B3-N3"}},
{"330000N", {"B3-N3", "B3-N3"}},
{"112233N", {"B1N1", "B1N1", "B2N2+", "B2N2-", "B3-N3", "B3-N3"}},
{"222333N",
{"B2N2+", "B2N2+", "B2N2+", "B3-N3", "B3-N3", "B3-N3"}},
{"223330N", {"B2N2+", "B2N2+", "B3-N3", "B3-N3", "B3-N3"}},
{"333300N", {"B3+N3", "B3-N3", "B3-N3", "B3-N3"}}}

Definition at line 114 of file Station345Geometry.cxx.

◆ kSpacerHalfThickness

const float o2::mch::kSpacerHalfThickness = kGasHalfThickness

Definition at line 71 of file Station345Geometry.cxx.

◆ kSt3Radius

const float o2::mch::kSt3Radius = 29.5

Definition at line 103 of file Station345Geometry.cxx.

◆ kSt3RoundedSlatYPos

const float o2::mch::kSt3RoundedSlatYPos = 37.8

Definition at line 107 of file Station345Geometry.cxx.

◆ kSt3SupportHalfHeight

const float o2::mch::kSt3SupportHalfHeight = 361. / 2

Definition at line 95 of file Station345Geometry.cxx.

◆ kSt45Radius

const float o2::mch::kSt45Radius = 37.5

Definition at line 104 of file Station345Geometry.cxx.

◆ kSt45RoundedSlatYPos

const float o2::mch::kSt45RoundedSlatYPos = 38.2

Definition at line 108 of file Station345Geometry.cxx.

◆ kSt45SupportHalfLength

const float o2::mch::kSt45SupportHalfLength = 260. / 2

Definition at line 100 of file Station345Geometry.cxx.

◆ kSt4SupportHalfHeight

const float o2::mch::kSt4SupportHalfHeight = 530. / 2

Definition at line 96 of file Station345Geometry.cxx.

◆ kSt5SupportHalfHeight

const float o2::mch::kSt5SupportHalfHeight = 570. / 2

Definition at line 97 of file Station345Geometry.cxx.

◆ kStartAngle

const double o2::mch::kStartAngle = 0.

Definition at line 53 of file Station2Geometry.cxx.

◆ kStemax

const float o2::mch::kStemax = -1.

Definition at line 85 of file Materials.cxx.

◆ kStmin

const float o2::mch::kStmin = -0.8

Definition at line 87 of file Materials.cxx.

◆ kStopAngle

const double o2::mch::kStopAngle = 90.

Definition at line 54 of file Station2Geometry.cxx.

◆ kThetaTrap

const float o2::mch::kThetaTrap = 0.

Definition at line 102 of file Station1Geometry.cxx.

◆ kTotalHzPlane

const float o2::mch::kTotalHzPlane = kHzFoam + kHzFR4

Definition at line 50 of file Station1Geometry.cxx.

◆ kVertSpacerHalfLength

const float o2::mch::kVertSpacerHalfLength = 2.5 / 2

Definition at line 73 of file Station345Geometry.cxx.

◆ kZAluminium

const float o2::mch::kZAluminium = 13.

Definition at line 51 of file Materials.cxx.

◆ kZArgon

const float o2::mch::kZArgon = 18.

Definition at line 60 of file Materials.cxx.

◆ kZCarbon

const float o2::mch::kZCarbon = 6.

Definition at line 38 of file Materials.cxx.

◆ kZChromium

const float o2::mch::kZChromium = 24.

Definition at line 64 of file Materials.cxx.

◆ kZCopper

const float o2::mch::kZCopper = 29.

Definition at line 76 of file Materials.cxx.

◆ kZHydrogen

const float o2::mch::kZHydrogen = 1.

Definition of constants for the elements The atomic number and the atomic masse values are taken from the 2016 PDG booklet For the radiation and absorption lengths, we let the Virtual Monte-Carlo compute them internally

Definition at line 34 of file Materials.cxx.

◆ kZIron

const float o2::mch::kZIron = 26.

Definition at line 68 of file Materials.cxx.

◆ kZNickel

const float o2::mch::kZNickel = 28.

Definition at line 72 of file Materials.cxx.

◆ kZNitrogen

const float o2::mch::kZNitrogen = 7.

Definition at line 43 of file Materials.cxx.

◆ kZOxygen

const float o2::mch::kZOxygen = 8.

Definition at line 47 of file Materials.cxx.

◆ kZSilicon

const float o2::mch::kZSilicon = 14.

Definition at line 56 of file Materials.cxx.

◆ logging

Initial value:
{
[](std::string_view name, ProcessingContext&, Output const&, char* data) -> bool {
if (name == "trackrofs") {
printBranch<ROFRecord>(data, "ROFS");
}
if (name == "trackclusters") {
printBranch<Cluster>(data, "CLUSTERS");
}
if (name == "tracks") {
printBranch<TrackMCH>(data, "TRACKS");
}
if (name == "trackdigits") {
printBranch<Digit>(data, "DIGITS");
}
if (name == "tracklabels") {
auto tdata = reinterpret_cast<std::vector<o2::MCCompLabel>*>(data);
LOGP(info, "MCH {:d} {:s}", tdata->size(), "LABELS");
}
return false;
}}
GLuint const GLchar * name
Definition glcorearb.h:781
GLboolean * data
Definition glcorearb.h:298

Definition at line 41 of file TrackReaderSpec.cxx.

◆ mathiesonType

int o2::mch::mathiesonType

Definition at line 37 of file mathieson.cxx.

◆ NumberOfDualSampas

constexpr uint16_t o2::mch::NumberOfDualSampas = 16820
constexpr

Definition at line 28 of file DsIndex.h.

◆ pitch1_2

const double o2::mch::pitch1_2 = 0.21

Definition at line 31 of file mathieson.cxx.

◆ pitch3_10

const double o2::mch::pitch3_10 = 0.25

Definition at line 35 of file mathieson.cxx.

◆ splineCoef

SplineCoef* o2::mch::splineCoef[2][2]

Definition at line 49 of file mathieson.cxx.

◆ splineXY

double* o2::mch::splineXY = nullptr

Definition at line 53 of file mathieson.cxx.

◆ sqrtK3x1_2

const double o2::mch::sqrtK3x1_2 = 0.7000

Definition at line 29 of file mathieson.cxx.

◆ sqrtK3x3_10

const double o2::mch::sqrtK3x3_10 = 0.7131

Definition at line 33 of file mathieson.cxx.

◆ sqrtK3y1_2

const double o2::mch::sqrtK3y1_2 = 0.7550

Definition at line 30 of file mathieson.cxx.

◆ sqrtK3y3_10

const double o2::mch::sqrtK3y3_10 = 0.7642

Definition at line 34 of file mathieson.cxx.

◆ useCache

int o2::mch::useCache = 0

Definition at line 56 of file mathieson.cxx.

◆ useSpline

int o2::mch::useSpline = 0

Definition at line 48 of file mathieson.cxx.