CbmRoot
Loading...
Searching...
No Matches
CbmMvdSensorDataSheet.cxx
Go to the documentation of this file.
1
/* Copyright (C) 2011-2016 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
2
SPDX-License-Identifier: GPL-3.0-only
3
Authors: Michael Deveaux, Philipp Sitzmann [committer], Florian Uhlig */
4
5
// -------------------------------------------------------------------------
6
// ----- CbmMvdSensorDataSheet source file -----
7
// ----- Created 31/01/11 by M. Deveaux -----
8
// -------------------------------------------------------------------------
9
10
#include "
CbmMvdSensorDataSheet.h
"
11
12
#include "TMath.h"
13
14
#include <Logger.h>
15
16
#include <ostream>
// for operator<<, stringstream, basic_ostream
17
using
std::endl;
18
19
20
// ----- Default constructor -------------------------------------------
21
CbmMvdSensorDataSheet::CbmMvdSensorDataSheet
()
22
: TNamed()
23
,
fMimosaName
(
"DefaulSensor"
)
24
,
fPixelPitchX
(18.4e-4)
25
,
fPixelPitchY
(18.4e-4)
26
,
fNPixelsX
(0)
27
,
fNPixelsY
(0)
28
,
fNPixels
(0)
29
,
fPixelSignX
(1)
30
,
fPixelSignY
(1)
31
,
fShutterSign
(1)
32
,
fIntegrationTime
(50e3)
33
,
fEpiTh
(14e-4)
34
,
fShaperNormalisationFactor
(1)
35
,
fChargeThreshold
(1)
36
,
fSignalRiseTime
(nan(
"NotSet"
))
37
,
fSignalFallTime
(nan(
"NotSet"
))
38
,
fNoise
(0)
39
,
fLandauMPV
(8.62131e+02)
40
,
fLandauSigma
(2.e+02)
41
,
fLandauGain
(1.56)
42
,
fLorentzPar0
(4.12073e+02)
43
,
fLorentzPar1
(0.8e+00)
44
,
fLorentzPar2
(0.)
45
,
fAdcDynamic
(150)
46
,
fAdcOffset
(0)
47
,
fAdcBits
(1)
48
,
fAdcSteps
(TMath::Power(2,
fAdcBits
))
49
,
fAdcStepSize
(
fAdcDynamic
/
fAdcSteps
)
50
,
fStatesPerBank
(0)
51
,
fStatesPerLine
(0)
52
,
fStatesPerFrame
(0)
53
,
fPixelsPerBank
(0)
54
,
fAnalogThreshold
(-1)
55
,
fValidData
(kFALSE)
56
57
58
{
59
}
60
61
// ----- Public method Print -------------------------------------------
62
void
CbmMvdSensorDataSheet::Print
(Option_t*
/*opt*/
)
const
{ LOG(info) <<
ToString
(); }
63
64
std::string
CbmMvdSensorDataSheet::ToString
()
const
65
{
66
std::stringstream ss;
67
ss <<
" --- "
<< GetName() <<
"--------------------------------"
<< endl;
68
ss <<
" Technical Data:"
<< endl;
69
ss <<
"--------------------------"
<< endl;
70
ss <<
"Name of the sensor: "
<<
fMimosaName
<< endl;
71
ss <<
"Pixel pitch (x/y) [micro m]: "
<<
fPixelPitchY
* 1e4 <<
"/"
<<
fPixelPitchY
* 1e-4 << endl;
72
ss <<
"N Pixels (rows/cols): "
<<
fNPixelsX
<<
"/"
<<
fNPixelsY
<< endl;
73
ss <<
"Thickness of active volume[ micro m]: "
<<
fEpiTh
* 1e4 << endl;
74
ss <<
"Integration time [micro s]: "
<<
fIntegrationTime
* 1e6 << endl;
75
ss <<
"ADC resolution: "
<<
fAdcBits
<<
"bit ADC (1 = discriminator)"
<< endl;
76
ss <<
"Default noise [e ENC]: "
<<
fNoise
<< endl;
77
ss <<
"Matrix size (x/y) [cm]: "
<<
fPixelPitchX
*
fNPixelsX
<<
" / "
<<
fPixelPitchY
*
fNPixelsY
<< endl;
78
ss << endl;
79
ss <<
"Readout system: "
<< endl;
80
ss <<
"----------------"
<< endl;
81
ss <<
"PixelNmb X from left to right?: "
<<
fPixelSignX
<< endl;
82
ss <<
"PixelNmb Y from up to down?: "
<<
fPixelSignY
<< endl;
83
ss <<
"Rolling shutter from up to down?: "
<<
fShutterSign
<< endl;
84
ss << endl;
85
ss <<
"ADC / SUZE -Settings: "
<< endl;
86
ss <<
"----------------"
<< endl;
87
ss <<
"ADC Range [e]: "
<<
fAdcDynamic
<< endl;
88
ss <<
"ADC offset [e]: "
<<
fAdcOffset
<< endl;
89
ss <<
"ADC stepsize [e]: "
<<
fAdcStepSize
<< endl;
90
ss <<
"SUZE states per banks: "
<<
fStatesPerBank
<< endl;
91
ss <<
"SUZE states per line : "
<<
fStatesPerLine
<< endl;
92
ss <<
"SUZE states per frame: "
<<
fStatesPerFrame
<< endl;
93
ss <<
"SUZE pixels per bank: "
<<
fPixelsPerBank
<< endl;
94
ss << endl;
95
ss <<
"Data card properly initialized: "
<<
fValidData
<< endl;
96
return
ss.str();
97
}
98
99
// ----------- Methode ComputeCCE ----------------------------------
100
// ----------- Computes the relative number of electrons being deposited at chargePointXYZ and collected by a diode at diodeXYZ
101
// ----------- Standard implementation for backward compatibility based on Lorentz-Model.
102
// ----------- See PhD Christina Dritsa for scientific details on this model.
103
104
Double_t
CbmMvdSensorDataSheet::ComputeCCE
(
Float_t
chargePointX,
Float_t
chargePointY,
Float_t
/*chargePointZ*/
,
105
Float_t
diodeX,
Float_t
diodeY,
Float_t
/*diodeZ*/
)
106
{
107
108
return
109
110
(0.5 *
fLorentzPar0
*
fLorentzPar1
/ TMath::Pi()
111
/ TMath::Max(1.e-10,
112
113
114
((chargePointX - diodeX) * (chargePointX - diodeX) /
fPixelPitchX
/
fPixelPitchX
)
115
+ ((chargePointY - diodeY) * (chargePointY - diodeY) /
fPixelPitchY
/
fPixelPitchY
)
116
+ 0.25 *
fLorentzPar1
*
fLorentzPar1
)
117
+
fLorentzPar2
);
118
119
// Original Equation
120
// Float_t totCharge = (sPoint->charge * fLorentzNorm * (0.5 * fPar0 * fPar1 / TMath::Pi())
121
// / TMath::Max(1.e-10, (((Current[0] - xCentre) * (Current[0] - xCentre))
122
// + ((Current[1] - yCentre) * (Current[1] - yCentre)))
123
// / fPixelSize / fPixelSize
124
// + 0.25 * fPar1 * fPar1)
125
// + fPar2);
126
}
127
128
Int_t
CbmMvdSensorDataSheet::ComputeAdcCharge
(
Float_t
charge)
129
{
130
131
Int_t
adcCharge;
132
133
if
(charge <
fAdcOffset
) {
134
return
0;
135
};
136
137
adcCharge = int((charge -
fAdcOffset
) /
fAdcStepSize
);
138
if
(adcCharge >
fAdcSteps
- 1) {
139
adcCharge =
fAdcSteps
- 1;
140
}
141
142
return
adcCharge;
143
}
144
145
ClassImp
(
CbmMvdSensorDataSheet
)
ClassImp
ClassImp(CbmConverterManager)
CbmMvdSensorDataSheet.h
Float_t
float Float_t
Definition
RootTypesDef.h:17
Int_t
int Int_t
Definition
RootTypesDef.h:16
CbmMvdSensorDataSheet
Definition
CbmMvdSensorDataSheet.h:33
CbmMvdSensorDataSheet::fAdcStepSize
Float_t fAdcStepSize
Definition
CbmMvdSensorDataSheet.h:83
CbmMvdSensorDataSheet::fShaperNormalisationFactor
Double_t fShaperNormalisationFactor
Definition
CbmMvdSensorDataSheet.h:61
CbmMvdSensorDataSheet::fEpiTh
Double_t fEpiTh
Definition
CbmMvdSensorDataSheet.h:59
CbmMvdSensorDataSheet::fLandauGain
Double_t fLandauGain
Definition
CbmMvdSensorDataSheet.h:72
CbmMvdSensorDataSheet::fStatesPerFrame
Int_t fStatesPerFrame
Definition
CbmMvdSensorDataSheet.h:88
CbmMvdSensorDataSheet::fNPixelsX
Int_t fNPixelsX
Definition
CbmMvdSensorDataSheet.h:49
CbmMvdSensorDataSheet::fPixelSignY
Int_t fPixelSignY
Definition
CbmMvdSensorDataSheet.h:54
CbmMvdSensorDataSheet::fAdcBits
Int_t fAdcBits
Definition
CbmMvdSensorDataSheet.h:81
CbmMvdSensorDataSheet::fStatesPerBank
Int_t fStatesPerBank
Definition
CbmMvdSensorDataSheet.h:86
CbmMvdSensorDataSheet::fLandauSigma
Double_t fLandauSigma
Definition
CbmMvdSensorDataSheet.h:71
CbmMvdSensorDataSheet::fAdcOffset
Int_t fAdcOffset
Definition
CbmMvdSensorDataSheet.h:80
CbmMvdSensorDataSheet::fChargeThreshold
Double_t fChargeThreshold
Definition
CbmMvdSensorDataSheet.h:63
CbmMvdSensorDataSheet::ToString
std::string ToString() const
Definition
CbmMvdSensorDataSheet.cxx:64
CbmMvdSensorDataSheet::fShutterSign
Int_t fShutterSign
Definition
CbmMvdSensorDataSheet.h:56
CbmMvdSensorDataSheet::fAdcDynamic
Int_t fAdcDynamic
Definition
CbmMvdSensorDataSheet.h:79
CbmMvdSensorDataSheet::fSignalRiseTime
Double_t fSignalRiseTime
Definition
CbmMvdSensorDataSheet.h:64
CbmMvdSensorDataSheet::fValidData
Bool_t fValidData
Definition
CbmMvdSensorDataSheet.h:97
CbmMvdSensorDataSheet::ComputeCCE
virtual Double_t ComputeCCE(Float_t chargePointX, Float_t chargePointY, Float_t chargePointZ, Float_t diodeX, Float_t diodeY, Float_t diodeZ)
Definition
CbmMvdSensorDataSheet.cxx:104
CbmMvdSensorDataSheet::fNPixelsY
Int_t fNPixelsY
Definition
CbmMvdSensorDataSheet.h:50
CbmMvdSensorDataSheet::fMimosaName
TString fMimosaName
Definition
CbmMvdSensorDataSheet.h:46
CbmMvdSensorDataSheet::fLorentzPar1
Double_t fLorentzPar1
Definition
CbmMvdSensorDataSheet.h:74
CbmMvdSensorDataSheet::fPixelsPerBank
Int_t fPixelsPerBank
Definition
CbmMvdSensorDataSheet.h:89
CbmMvdSensorDataSheet::fPixelSignX
Int_t fPixelSignX
Definition
CbmMvdSensorDataSheet.h:52
CbmMvdSensorDataSheet::fPixelPitchX
Double_t fPixelPitchX
Definition
CbmMvdSensorDataSheet.h:47
CbmMvdSensorDataSheet::fStatesPerLine
Int_t fStatesPerLine
Definition
CbmMvdSensorDataSheet.h:87
CbmMvdSensorDataSheet::fIntegrationTime
Double_t fIntegrationTime
Definition
CbmMvdSensorDataSheet.h:58
CbmMvdSensorDataSheet::fAdcSteps
Int_t fAdcSteps
Definition
CbmMvdSensorDataSheet.h:82
CbmMvdSensorDataSheet::fNPixels
Int_t fNPixels
Definition
CbmMvdSensorDataSheet.h:51
CbmMvdSensorDataSheet::ComputeAdcCharge
virtual Int_t ComputeAdcCharge(Float_t charge)
Definition
CbmMvdSensorDataSheet.cxx:128
CbmMvdSensorDataSheet::fAnalogThreshold
Int_t fAnalogThreshold
Definition
CbmMvdSensorDataSheet.h:92
CbmMvdSensorDataSheet::fNoise
Double_t fNoise
Definition
CbmMvdSensorDataSheet.h:69
CbmMvdSensorDataSheet::fLorentzPar0
Double_t fLorentzPar0
Definition
CbmMvdSensorDataSheet.h:73
CbmMvdSensorDataSheet::CbmMvdSensorDataSheet
CbmMvdSensorDataSheet()
Definition
CbmMvdSensorDataSheet.cxx:21
CbmMvdSensorDataSheet::fSignalFallTime
Double_t fSignalFallTime
Definition
CbmMvdSensorDataSheet.h:65
CbmMvdSensorDataSheet::fLandauMPV
Double_t fLandauMPV
Definition
CbmMvdSensorDataSheet.h:70
CbmMvdSensorDataSheet::Print
virtual void Print(Option_t *opt="") const
Definition
CbmMvdSensorDataSheet.cxx:62
CbmMvdSensorDataSheet::fLorentzPar2
Double_t fLorentzPar2
Definition
CbmMvdSensorDataSheet.h:75
CbmMvdSensorDataSheet::fPixelPitchY
Double_t fPixelPitchY
Definition
CbmMvdSensorDataSheet.h:48
core
detectors
mvd
SensorDataSheets
CbmMvdSensorDataSheet.cxx
Generated on Fri Jan 30 2026 23:05:24 for CbmRoot by
1.13.2