Project
Loading...
Searching...
No Matches
PHOSSimParams.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_PHOS_PHOSSIMPARAMS_H_
13#define O2_PHOS_PHOSSIMPARAMS_H_
14
17
18namespace o2
19{
20namespace phos
21{
22// parameters used in responce calculation and digitization
23// (mostly used in GEANT stepping and Digitizer)
24struct PHOSSimParams : public o2::conf::ConfigurableParamHelper<PHOSSimParams> {
25
26 std::string mCCDBPath = "ccdb";
27
28 // Parameters used in conversion of deposited energy to APD response
29 float mLightYieldPerGeV = 526.;
30 std::string mDigitizationCalibPath = "default";
31 std::string mDigitizationTrigPath = "default";
32
33 // Parameters used in electronic noise calculation and thresholds (Digitizer)
34 float mReadoutTime = 5.;
35 float mDeadTime = 20.;
36 float mReadoutTimePU = 2000.;
37 float mDeadTimePU = 30000.;
38 bool mApplyTimeResolution = false;
39 bool mApplyNonLinearity = false;
40 bool mApplyDigitization = false;
41 float mAPDNoise = 0.005;
42 float mDigitThreshold = 2.;
43 float mADCwidth = 0.005;
44 float mTOFa = 0.5e-9;
45 float mTOFb = 1.e-9;
46 float mCellNonLineaityA = 0.;
47 float mCellNonLineaityB = 0.109;
48 float mCellNonLineaityC = 1.;
49
50 short mZSthreshold = 1;
51 float mTimeResolutionA = 2.e-9;
52 float mTimeResolutionB = 2.e-9;
53 float mTimeResThreshold = 0.5;
54 float mMinNoiseTime = -200.e-9;
55 float mMaxNoiseTime = 2000.e-9;
56
57 float mTrig2x2MinThreshold = 800.;
58 float mTrig4x4MinThreshold = 900.;
59
60 // Parameters used in Raw simulation
61 float mSampleDecayTime = 0.091;
62
63 // //Parameters used in raw data reconstruction
64 short mSpikeThreshold = 100;
65 short mBaseLine = 0;
66 short mPreSamples = 2;
67 short mMCOverflow = 970;
68 float mTimeTick = 100.;
69 float mTRUTimeTick = 25.;
70 float mSampleTimeFitAccuracy = 1.e-3; // Abs accuracy of time fit of saturated samples (in 100ns tick units)
71 float mSampleAmpFitAccuracy = 1.e-2; // Relative accuracy of amp. fit
72 short mNIterations = 5;
73
74 // bool mSubtractPedestal = false ; ///< subtract pedestals
75 // bool mCreateSampleQualityOutput = false ; ///< Create stream of sample quality
76 // bool mApplyBadMap = false ; ///< Apply bad map in sample fitting
77 // short mChiMinCut = 0 ; ///< Minimal cut on sample quality
78 // short mChiMaxCut = 1000; ///< Maximal cut on sample quality
79 // std::string mFitterVersion = "default"; ///< version of raw fitter to be used
80
81 // Parameters used in clusterization
82 float mLogWeight = 4.5;
83 float mDigitMinEnergy = 0.020;
84 float mClusteringThreshold = 0.050;
85 float mLocalMaximumCut = 0.015;
86 int mUnfoldMaxSize = 100;
87 bool mUnfoldClusters = true;
88 float mUnfogingEAccuracy = 1.e-2;
89 float mUnfogingXZAccuracy = 1.e-1;
90 float mUnfogingChi2Accuracy = 1.e-2;
91 int mNMaxIterations = 10;
92 float mCoreR = 3.5;
93 float mSortingDelta = 1.;
94
95 O2ParamDef(PHOSSimParams, "PHOSSimParams");
96};
97} // namespace phos
98
99namespace framework
100{
101template <typename T>
102struct is_messageable;
103template <>
104struct is_messageable<o2::phos::PHOSSimParams> : std::true_type {
105};
106} // namespace framework
107
108} // namespace o2
109
110#endif /* O2_PHOS_PHOSSIMPARAMS_H_ */
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
bool mApplyTimeResolution
Apply time resolution in digitization.
float mADCwidth
width of ADC channel in GeV
float mDeadTimePU
PHOS dead time if pileup simulation on in DigitizerSpec.
float mDeadTime
PHOS dead time (includes Read-out time i.e. mDeadTime>=mReadoutTime)
short mSpikeThreshold
Single spike >100 ADC channels.
float mReadoutTimePU
Read-out time in ns if pileup simulation on in DigitizerSpec.
float mUnfogingChi2Accuracy
critical chi2/NDF
float mTOFa
constant term of TOF resolution
std::string mCCDBPath
use "localtest" to avoid connecting ccdb server, otherwise use ccdb-test.cern.ch
float mTOFb
stohastic term of TOF resolution
float mMaxNoiseTime
minimum time in noise channels (in sec)
float mSortingDelta
used in sorting clusters
float mMinNoiseTime
minimum time in noise channels (in sec)
float mTrig2x2MinThreshold
threshold to simulate 2x2 trigger turn-on curve (in ADC counts~0.005 GeV/count!)
float mSampleDecayTime
Time parameter in Gamma2 function (1/tau, 100.e-9/2.1e-6)
bool mApplyDigitization
Apply energy digitization in digitization.
float mCoreR
Radius to caluclate core energy.
O2ParamDef(PHOSSimParams, "PHOSSimParams")
bool mUnfoldClusters
To perform cluster unfolding.
float mLogWeight
Cutoff used in log. weight calculation.
int mUnfoldMaxSize
maximal number of cells in cluster to be unfolded
float mLightYieldPerGeV
Average number of photoelectrons per GeV: 1.983 gamma/MeV * 0.2655 PDE eff of APD.
short mNIterations
maximal number of iterations in oveflow sample fit
float mCellNonLineaityB
Energy scale of cel non-linearity.
float mDigitMinEnergy
Minimal energy of digits to be used in cluster (GeV)
bool mApplyNonLinearity
Apply energy non-linearity in digitization.
float mAPDNoise
RMS of APD noise.
float mReadoutTime
Read-out time in ns for default simulaionts.
float mClusteringThreshold
Minimal energy of digit to start clustering (GeV)
float mUnfogingXZAccuracy
Accuracy of position calculation in unfolding procedure (cm)
float mTimeResThreshold
threshold for time resolution calculation (in GeV)
float mDigitThreshold
minimal energy to keep digit in ADC counts
float mCellNonLineaityC
Overall calibration.
float mLocalMaximumCut
Minimal height of local maximum over neighbours.
short mMCOverflow
Overflow level for MC simulations: 1023-(pedestal~50)
float mUnfogingEAccuracy
Accuracy of energy calculation in unfoding prosedure (GeV)
float mTimeResolutionB
Time resolution parameter B (in sec/GeV)
float mTrig4x4MinThreshold
threshold to simulate 4x4 trigger turn-on curve (in ADC counts!)
int mNMaxIterations
Maximal number of iterations in unfolding procedure.
float mTRUTimeTick
ns to PHOS TRU digitization step
float mTimeTick
ns to PHOS digitization step conversion
std::string mDigitizationCalibPath
use "default" to use default calibration or use ccdb.cern.ch
float mTimeResolutionA
Time resolution parameter A (in sec)
float mCellNonLineaityA
Amp of cel non-linearity.
std::string mDigitizationTrigPath
use "default" to use default map and turn-on or use ccdb.cern.ch
short mZSthreshold
Zero Suppression threshold.
short mPreSamples
number of pre-samples readout before sample (if no pedestal subtrauction)