ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonDataPrep
CscClusterization
CscClusterization
ICscStripFitter.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef ICscStripFitter_H
5
#define ICscStripFitter_H
6
7
#include <float.h>
8
9
#include <vector>
10
11
#include "
CscStripStatus.h
"
12
#include "GaudiKernel/IAlgTool.h"
13
#include "
Identifier/IdentifierHash.h
"
14
#include "
MuonPrepRawData/CscStripPrepData.h
"
15
#include "
MuonPrepRawData/CscTimeStatus.h
"
16
17
// Interface for tool to fit the time samples on a CSC strip.
18
// Returns the peak charge, the time of the peak and some quality measures.
19
class
ICscStripFitter
:
virtual
public
IAlgTool {
20
public
:
// Embedded class.
21
// This is a description of a fitted strip.
22
// The status, charge and time should always be filled. The other values
23
// are optional and, in some cases, their precise meaning will depend on
24
// the algorithm used to fill them.
25
class
Result
{
26
public
:
27
int
status
{0};
// Fit status: 0 for success
28
Muon::CscStripStatus
stripStatus
{
Muon::CscStrStatUndefined
};
// strip status
29
const
Muon::CscStripPrepData
*
strip
{
nullptr
};
// Pointer to the strip.
30
double
sampleTime
{0.};
// Period of input samples.
31
double
charge
{0.};
// Peak current (electrons/sampleTime)
32
double
dcharge
{0.};
// Error in the peak current.
33
double
time
{0.};
// Time (ns) of the peak. t0 corrected time since 16.7.X
34
double
dtime
{0.};
// Error in the time.
35
double
width
{0.};
// Full width (ns) of the peak, e.g. FWHM, 2sigma, ...
36
double
dwidth
{0.};
// Error in the width.
37
double
chsq
{0.};
// Chi-square for the fit, -1 if not calculated.
38
bool
phase
{
false
};
39
40
double
time_beforeT0Corr
{-FLT_MAX};
// Time (ns) of the peak. without t0 correction
41
double
time_beforeBPCorr
{-FLT_MAX};
42
double
charge_beforeGainCorr
{0.};
// Time (ns) of the peak. without t0 correction
43
double
charge_beforeBPCorr
{0.};
// Time (ns) of the peak. without t0 correction
44
Muon::CscTimeStatus
timeStatus
{
Muon::CscTimeStatusUndefined
};
45
Result
(
Muon::CscStripStatus
sstat =
Muon::CscStrStatUndefined
,
Muon::CscTimeStatus
tstat =
Muon::CscTimeStatusUndefined
) :
46
stripStatus
(sstat),
47
timeStatus
(tstat)
48
{}
49
Result
(
const
Result
&) =
default
;
50
~Result
() =
default
;
51
};
52
53
public
:
// Typedefs.
54
// List of time samples.
55
typedef
std::vector<float>
ChargeList
;
56
57
public
:
// Static methods.
58
// Return the interface ID.
59
static
const
InterfaceID&
interfaceID
() {
60
static
const
InterfaceID IID_ICscStripFitter(
"ICscStripFitter"
, 1, 0);
61
return
IID_ICscStripFitter;
62
}
63
64
public
:
// Interface methods
65
// Fit a list of sample charges.
66
// This method returns the time relative to the time of the first sample.
67
// Implementation here fails.
68
// Typical subclass will override this method.
69
// virtual Result fit(const ChargeList& ChargeList, double samplingTime, IdentifierHash& stripHashId) const;
70
// virtual Result fit(const ChargeList& ChargeList, double samplingTime, Identifier& sid) const;
71
72
virtual
Result
fit
(
const
ChargeList
&
ChargeList
,
double
samplingTime,
bool
samplingPhase,
Identifier
& sid)
const
;
73
74
// Fit a prep data strip.
75
// Implementation here uses the above method.
76
// Typical subclass overiding the above need not overide this.
77
// This method returns the time relative to the time of the first sample.
78
// The strip is set in the result.
79
virtual
Result
fit
(
const
Muon::CscStripPrepData
&
strip
)
const
;
80
81
virtual
~ICscStripFitter
() =
default
;
82
};
83
84
#endif
ChargeList
ICscStripFitter::ChargeList ChargeList
Definition
CalibCscStripFitter.cxx:14
CscStripPrepData.h
CscStripStatus.h
CscTimeStatus.h
SiliconTech::strip
@ strip
Definition
FPGATrackSimTypes.h:25
IdentifierHash.h
ICscStripFitter::Result::sampleTime
double sampleTime
Definition
ICscStripFitter.h:30
ICscStripFitter::Result::charge_beforeBPCorr
double charge_beforeBPCorr
Definition
ICscStripFitter.h:43
ICscStripFitter::Result::time
double time
Definition
ICscStripFitter.h:33
ICscStripFitter::Result::dwidth
double dwidth
Definition
ICscStripFitter.h:36
ICscStripFitter::Result::dcharge
double dcharge
Definition
ICscStripFitter.h:32
ICscStripFitter::Result::~Result
~Result()=default
ICscStripFitter::Result::dtime
double dtime
Definition
ICscStripFitter.h:34
ICscStripFitter::Result::stripStatus
Muon::CscStripStatus stripStatus
Definition
ICscStripFitter.h:28
ICscStripFitter::Result::width
double width
Definition
ICscStripFitter.h:35
ICscStripFitter::Result::phase
bool phase
Definition
ICscStripFitter.h:38
ICscStripFitter::Result::time_beforeT0Corr
double time_beforeT0Corr
Definition
ICscStripFitter.h:40
ICscStripFitter::Result::strip
const Muon::CscStripPrepData * strip
Definition
ICscStripFitter.h:29
ICscStripFitter::Result::Result
Result(const Result &)=default
ICscStripFitter::Result::chsq
double chsq
Definition
ICscStripFitter.h:37
ICscStripFitter::Result::Result
Result(Muon::CscStripStatus sstat=Muon::CscStrStatUndefined, Muon::CscTimeStatus tstat=Muon::CscTimeStatusUndefined)
Definition
ICscStripFitter.h:45
ICscStripFitter::Result::time_beforeBPCorr
double time_beforeBPCorr
Definition
ICscStripFitter.h:41
ICscStripFitter::Result::charge
double charge
Definition
ICscStripFitter.h:31
ICscStripFitter::Result::status
int status
Definition
ICscStripFitter.h:27
ICscStripFitter::Result::timeStatus
Muon::CscTimeStatus timeStatus
Definition
ICscStripFitter.h:44
ICscStripFitter::Result::charge_beforeGainCorr
double charge_beforeGainCorr
Definition
ICscStripFitter.h:42
ICscStripFitter
Definition
ICscStripFitter.h:19
ICscStripFitter::~ICscStripFitter
virtual ~ICscStripFitter()=default
ICscStripFitter::interfaceID
static const InterfaceID & interfaceID()
Definition
ICscStripFitter.h:59
ICscStripFitter::ChargeList
std::vector< float > ChargeList
Definition
ICscStripFitter.h:55
ICscStripFitter::fit
virtual Result fit(const ChargeList &ChargeList, double samplingTime, bool samplingPhase, Identifier &sid) const
Definition
ICscStripFitter.cxx:16
Muon::CscStripPrepData
Class representing the raw data of one CSC strip (for clusters look at Muon::CscPrepData).
Definition
CscStripPrepData.h:40
Identifier
Definition
IdentifierFieldParser.cxx:14
Muon::CscStripStatus
CscStripStatus
Enum to represent the strip status - see the specific enum values for more details.
Definition
CscStripStatus.h:23
Muon::CscStrStatUndefined
@ CscStrStatUndefined
Undefined, should not happen, most likely indicates a problem.
Definition
CscStripStatus.h:44
Muon::CscTimeStatus
CscTimeStatus
Enum to represent the cluster time measurement status - see the specific enum values for more details...
Definition
CscTimeStatus.h:24
Muon::CscTimeStatusUndefined
@ CscTimeStatusUndefined
Time is not assessed indicating potential bug.
Definition
CscTimeStatus.h:39
Result
Definition
fbtTestBasics.cxx:50
Generated on
for ATLAS Offline Software by
1.17.0