CbmRoot
Loading...
Searching...
No Matches
CbmMvdMimosis.cxx
Go to the documentation of this file.
1/* Copyright (C) 2017 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Philipp Sitzmann [committer] */
4
5// -------------------------------------------------------------------------
6// ----- CbmMvdMimosis source file -----
7// ----- -----
8// -------------------------------------------------------------------------
9
10#include "CbmMvdMimosis.h"
11
12#include <RtypesCore.h> // for kTRUE
13#include <TMath.h> // for Power
14#include <TString.h> // for TString
15
16// ----- Default constructor -------------------------------------------
18{
19
20 fMimosaName = "Mimosis"; // Clear name of the simulated sensor
21 fPixelPitchX = 0.003024; // Pixel pitch in x of this sensor in cm
22 fPixelPitchY = 0.002688; // Pixel pitch in y of this sensor in cm
23 fNPixelsX = 1024; // Number of pixels in row
24 fNPixelsY = 504; // Number of pixels in col
25 fNPixels = fNPixelsX * fNPixelsY; // Number of pixels in sensor
26 fPixelSignX = 1; // Direction of the pixel count X, if true, Pixel x=0 is at
27 // left corner, else at right corner
28 fPixelSignY = 1; // Direction of the pixel count Y, if true, Pixel x=0 is at
29 // the lower corner, else at upper corner
30 fShutterSign = 1;
31 fIntegrationTime = 5.0e3; // Integration time of the pixels in ns
32 fEpiTh = 25e-4; // Thickness of the epitaxial layer
33
35 fAnalogThreshold = 90; //Threshold in electrons, must not be below 90e
36
38 fNoise = 13;
39 fLorentzPar0 = 520.;
40 fLorentzPar1 = 0.34;
41 fLorentzPar2 = -1.2;
42 fLandauMPV = 877.4;
43 fLandauSigma = 204.93;
44 fLandauGain = 3.58;
45
48 fAdcDynamic = 150;
49 fAdcOffset = 0;
50 fAdcBits = 1;
51 fAdcSteps = TMath::Power(2, fAdcBits);
55 fStatesPerFrame = 570;
56 fPixelsPerBank = 64;
57
58 fSignalRiseTime = 100; // to be updated.
59 fSignalFallTime = 3e6; // to be updated.
60 fShaperNormalisationFactor = 1.; // to be updated
61
64 fValidData = kTRUE;
65}
66
67
69{
70 return 2519.5443 * std::pow(charge, 0.035720252);
71} //Fast settings, AC -1V
72
74{
75
76 Double_t delay = GetDelay(charge);
77 Double_t delaySigma = GetDelaySigma(charge);
78 return delay + fRandom->Gaus(delay, delaySigma); //models the pixel-to-pixel variation in terms of delay
79}
80
81Double_t CbmMvdMimosis::GetDelay(Float_t charge) { return 47591.8471 * std::pow(charge, -0.9990384691); };
82Double_t CbmMvdMimosis::GetDelaySigma(Float_t charge) { return 11909.5799315438 * std::pow(charge, -1.0784955428); };
83
85{
86
87 Double_t jitter = GetJitter(charge); // Full width of jitter as function of charge
88 return fRandom->Uniform(-jitter, jitter);
89}
90
91Double_t CbmMvdMimosis::GetJitter(Float_t charge) { return 194945.6385 * std::pow(charge, -1.6138338012) / 2; }
92
93
94// ----- Destructor ----------------------------------------------------
96// -------------------------------------------------------------------------
97
ClassImp(CbmConverterManager)
float Float_t
Double_t ComputeHitDeadTime(Float_t charge)
Double_t GetDelay(Float_t charge)
Double_t GetJitter(Float_t charge)
Double_t ComputeHitDelay(Float_t charge)
Double_t GetDelaySigma(Float_t charge)
TRandom * fRandom
Double_t ComputeHitJitter(Float_t charge)