CbmRoot
Loading...
Searching...
No Matches
CbmMvdDigi.cxx
Go to the documentation of this file.
1/* Copyright (C) 2008-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Christina Dritsa [committer], Florian Uhlig, Philipp Sitzmann */
4
5// -----------------------------------------------------------------------
6// ----- CbmMvdDigi source file -----
7// ----- Created 17/04/08 by C. Dritsa -----
8// -----------------------------------------------------------------------
9
10#include "CbmMvdDigi.h"
11
12#include <Logger.h> // for LOG, Logger
13
14#include <TObject.h> // for TObject
15
16#include <cmath>
17
18// ----- Default constructor -------------------------------------------
20 : TObject()
22 , fCharge(0.)
23 , fChannelNrX(0)
24 , fChannelNrY(0)
25 , fPixelSizeX(0.)
26 , fPixelSizeY(0.)
27 , fDetectorId(0)
28 , fChannelNr(0)
29 , fDigiTime(0.)
30 , fFrameNumber(0)
31 , fRefId(-1)
32 , fDigiFlag(-1)
33{
34}
35// -------------------------------------------------------------------------
36
37
38/*
39// ----- Constructor with parameters -----------------------------------
40CbmMvdDigi::CbmMvdDigi(int32_t iStation, int32_t iChannelNrX, int32_t iChannelNrY, float charge,
41 float pixelSizeX, float pixelSizeY)
42 : CbmDigi(kMVD, 0),
43 CbmMvdDetectorId(),
44 fCharge(charge),
45 fChannelNrX(iChannelNrX),
46 fChannelNrY(iChannelNrY),
47 fTrackID(-1),
48 fPointID(0),
49 fPixelSizeX(pixelSizeX),
50 fPixelSizeY(pixelSizeY),
51 fDetectorId(0),
52 fChannelNr(0),
53 fDigiTime(0.),
54 fFrameNumber(0),
55 fRefId(-1),
56 fDigiFlag(-1)
57{
58 // Check range for station
59 if ( ! ( iStation >= 0 && iStation <= 255 ) ) {
60 LOG(fatal) << "Illegal station number " << iStation;
61 }
62
63 fDetectorId = DetectorId(iStation);
64
65 fChannelNrY = iChannelNrY;
66 fCharge = charge;
67 fChannelNrX=iChannelNrX;
68 fChannelNrY=iChannelNrY;
69 fPixelSizeX=pixelSizeX;
70 fPixelSizeY=pixelSizeY;
71 fDigiFlag=-1;
72
73}
74// -------------------------------------------------------------------------
75*/
76
77// ----- Constructor with parameters --> used only due to error TODO include correct version -----------------------------------
78CbmMvdDigi::CbmMvdDigi(int32_t iStation, int32_t iChannelNrX, int32_t iChannelNrY, float charge, float pixelSizeX,
79 float pixelSizeY, float time, int32_t frame)
80 : TObject()
82 , fCharge(charge)
83 , fChannelNrX(iChannelNrX)
84 , fChannelNrY(iChannelNrY)
85 , fPixelSizeX(pixelSizeX)
86 , fPixelSizeY(pixelSizeY)
87 , fDetectorId(DetectorId(iStation))
88 , fChannelNr(0)
89 , fDigiTime(time)
90 , fFrameNumber(frame)
91 , fRefId(-1)
92 , fDigiFlag(-1)
93{
94 // Check range for station
95 if (!(iStation >= 0 && iStation <= 600)) { LOG(fatal) << "Illegal station number " << iStation; }
96}
97// -------------------------------------------------------------------------
98
99int32_t CbmMvdDigi::GetAdcCharge(int32_t adcDynamic, int32_t adcOffset, int32_t adcBits)
100{
113 int32_t adcCharge;
114
115 if (fCharge < adcOffset) { return 0; };
116
117
118 double stepSize;
119 // int32_t adcMax = adcOffset + adcDynamic;
120
121 stepSize = adcDynamic / pow(2, adcBits);
122 adcCharge = int((fCharge - adcOffset) / stepSize);
123
124
125 if (adcCharge > int(pow(2, adcBits) - 1)) { adcCharge = (int) pow(2, adcBits) - 1; }
126
127 if (gDebug > 0) { LOG(debug) << "CbmMvdDigi::GetAdcCharge() " << adcCharge; }
128
129 return adcCharge;
130}
131
132
133// -------------------------------------------------------------------------
135// -------------------------------------------------------------------------
137// -------------------------------------------------------------------------
138
140int32_t CbmMvdDigi::GetAddress() const { return 0; }
141
142// -------------------------------------------------------------------------
143
145double CbmMvdDigi::GetTime() const { return fDigiTime; }
146
147
148// -------------------------------------------------------------------------
149
150
151// ----- Destructor ----------------------------------------------------
153// -------------------------------------------------------------------------
154
ClassImp(CbmConverterManager)
double GetTime() const
int32_t fChannelNrY
Definition CbmMvdDigi.h:88
int32_t GetAdcCharge(int32_t adcDynamic, int32_t adcOffset, int32_t adcBits)
float fCharge
Definition CbmMvdDigi.h:86
int32_t GetAddress() const
int32_t GetPixelY()
int32_t GetPixelX()
double fDigiTime
Definition CbmMvdDigi.h:95
int32_t fChannelNrX
Definition CbmMvdDigi.h:87