Project
Loading...
Searching...
No Matches
Response.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_MCH_SIMULATION_RESPONSE_H_
13#define O2_MCH_SIMULATION_RESPONSE_H_
14
18#include "MCHSimulation/Hit.h"
19
20namespace o2
21{
22namespace mch
23{
24
25enum class Station {
26 Type1,
28};
29
31{
32 public:
33 Response(Station station);
34 ~Response() = default;
35 float getChargeSpread() const { return mChargeSpread; }
36 float getPitch() const { return mPitch; }
37 float getSigmaIntegration() const { return mSigmaIntegration; }
38 bool isAboveThreshold(float charge) const { return charge > mChargeThreshold; }
39 bool isAngleEffect() const { return mAngleEffect; }
40 bool isMagnetEffect() const { return mMagnetEffect; }
41
48 float etocharge(float edepos) const;
49
55 float chargePadfraction(float xmin, float xmax, float ymin, float ymax) const
56 {
57 return mMathieson.integrate(xmin, ymin, xmax, ymax);
58 }
59
61 float getAnod(float x) const;
62
64 float chargeCorr() const;
65
67 uint32_t nSamples(float charge) const;
68
70 float inclandbfield(float thetawire, float betagamma, float bx) const;
71
72 private:
73 Station mStation{};
74 MathiesonOriginal mMathieson{};
75 float mPitch = 0.f;
76 float mChargeSlope = 0.f;
77 float mChargeSpread = 0.f;
78 float mSigmaIntegration = 0.f;
79 float mChargeCorr = 0.f;
80 float mChargeThreshold = 0.f;
81 bool mAngleEffect = true;
82 bool mMagnetEffect = true;
83
85 float eLossRatio(float logbetagamma) const;
87
89 float angleEffect10(float elossratio) const;
90
93 float angleEffectNorma(float angle) const;
94
97 float magAngleEffectNorma(float angle, float bfield) const;
98};
99} // namespace mch
100} // namespace o2
101#endif
int16_t charge
Definition RawEventData.h:5
Original definition of the Mathieson function.
float integrate(float xMin, float yMin, float xMax, float yMax) const
float getSigmaIntegration() const
Definition Response.h:37
uint32_t nSamples(float charge) const
compute the number of samples corresponding to the charge in ADC units
Definition Response.cxx:83
float chargePadfraction(float xmin, float xmax, float ymin, float ymax) const
Definition Response.h:55
float inclandbfield(float thetawire, float betagamma, float bx) const
compute deteriation of y-resolution due to track inclination and B-field
Definition Response.cxx:92
~Response()=default
float getAnod(float x) const
return wire coordinate closest to x
Definition Response.cxx:69
bool isAboveThreshold(float charge) const
Definition Response.h:38
float getPitch() const
Definition Response.h:36
bool isMagnetEffect() const
Definition Response.h:40
bool isAngleEffect() const
Definition Response.h:39
float chargeCorr() const
return a randomized charge correlation between cathodes
Definition Response.cxx:77
float etocharge(float edepos) const
Definition Response.cxx:51
float getChargeSpread() const
Definition Response.h:35
GLint GLenum GLint x
Definition glcorearb.h:403
GLfloat angle
Definition glcorearb.h:4071
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...