BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmStsDigiLight.cxx
Go to the documentation of this file.
1
/** CbmStsDigiLight.cxx
2
**@author V.Friese <v.friese@gsi.de>
3
**@since 28.08.2006
4
**@version 2.0
5
**/
6
7
#include "
CbmStsDigiLight.h
"
8
9
// ----- Bit fields for charge and time stamp --------------------------
10
const
Int_t
CbmStsDigiLight::fgkCharBits
= 12;
// in data0
11
const
Int_t
CbmStsDigiLight::fgkTimeBits
= 14;
// in data1
12
const
Int_t
CbmStsDigiLight::fgkAddrBits
=
CbmStsDigiLight::fgkStatBits
+
CbmStsDigiLight::fgkSectBits
13
+
CbmStsDigiLight::fgkSideBits
+
CbmStsDigiLight::fgkChanBits
;
14
// -------------------------------------------------------------------------
15
16
// ----- Bit shift for charge and time stamp ---------------------------
17
const
Int_t
CbmStsDigiLight::fgkCharShift
=
CbmStsDigiLight::fgkAddrBits
;
18
const
Int_t
CbmStsDigiLight::fgkTimeShift
=
CbmStsDigiLight::fgkCharShift
+
CbmStsDigiLight::fgkCharBits
;
19
// -------------------------------------------------------------------------
20
21
// ----- Bit masks for charge and time stamp ---------------------------
22
const
Long64_t
CbmStsDigiLight::fgkAddrMask
= (1 <<
CbmStsDigiLight::fgkAddrBits
) - 1;
23
const
Long64_t
CbmStsDigiLight::fgkCharMask
= (1 <<
CbmStsDigiLight::fgkCharBits
) - 1;
24
const
Long64_t
CbmStsDigiLight::fgkTimeMask
= (1 <<
CbmStsDigiLight::fgkTimeBits
) - 1;
25
// -------------------------------------------------------------------------
26
27
// ----- Default constructor -------------------------------------------
28
CbmStsDigiLight::CbmStsDigiLight
()
29
:
CbmDigi
()
30
,
CbmStsDetectorId
()
31
,
fData
(0)
32
{}
33
// -------------------------------------------------------------------------
34
35
// ----- Standard constructor ------------------------------------------
36
// CbmStsDigiLight::CbmStsDigiLight(Int_t station, Int_t sector, Int_t side,
37
// Int_t channel, Int_t adc, Int_t time)
38
// : FairMultiLinkedData(),
39
// CbmStsDetectorId(),
40
// fData(0)
41
// {
42
// AddIndex(index);
43
// fData = ( (DetectorId(station, sector, side, channel) >> 4) & fgkAddrMask )
44
// | ( (adc & fgkCharMask) << fgkCharShift )
45
// | ( (time & fgkTimeMask) << fgkTimeShift ) ;
46
//
47
// }
48
// -------------------------------------------------------------------------
49
CbmStsDigiLight::CbmStsDigiLight
(
Int_t
station,
Int_t
sector,
Int_t
side,
Int_t
channel,
Int_t
adc,
Int_t
time)
50
:
CbmDigi
()
51
,
CbmStsDetectorId
()
52
,
fData
(0)
53
{
54
// AddIndex(index,adc);
55
fData
= ((
DetectorId
(station, sector, side, channel) >> 4) &
fgkAddrMask
) | ((adc &
fgkCharMask
) <<
fgkCharShift
)
56
| ((time &
fgkTimeMask
) <<
fgkTimeShift
);
57
}
58
59
// ----- Destructor ----------------------------------------------------
60
CbmStsDigiLight::~CbmStsDigiLight
() {}
61
// -------------------------------------------------------------------------
62
63
// ----- Add charge ----------------------------------------------------
64
void
CbmStsDigiLight::AddAdc
(
Int_t
adc)
65
{
66
Int_t
maxAdc = (1 <<
fgkCharBits
) - 1;
67
Int_t
newAdc =
GetAdc
() + adc;
68
if
(newAdc > maxAdc)
69
newAdc = maxAdc;
70
SetAdc
(newAdc);
71
}
72
// -------------------------------------------------------------------------
73
74
// ----- Set new charge ------------------------------------------------
75
void
CbmStsDigiLight::SetAdc
(
Int_t
adc)
76
{
77
78
// First set old charge to zero
79
fData
=
fData
& ~(
fgkCharMask
<<
fgkCharShift
);
80
81
// Now set new charge
82
fData
=
fData
| ((adc &
fgkCharMask
) <<
fgkCharShift
);
83
}
84
// -------------------------------------------------------------------------
Int_t
int Int_t
Long64_t
long long Long64_t
DetectorId
DetectorId
BM@N DetectorID enumerator.
Definition
BmnDetectorList.h:12
CbmDigi::CbmDigi
CbmDigi()
Default constructor.
Definition
CbmDigi.cxx:13
CbmStsDetectorId::fgkSideBits
static const Int_t fgkSideBits
Definition
CbmStsDetectorId.h:69
CbmStsDetectorId::fgkStatBits
static const Int_t fgkStatBits
Number of bits for address fields (static).
Definition
CbmStsDetectorId.h:67
CbmStsDetectorId::fgkSectBits
static const Int_t fgkSectBits
Definition
CbmStsDetectorId.h:68
CbmStsDetectorId::fgkChanBits
static const Int_t fgkChanBits
Definition
CbmStsDetectorId.h:70
CbmStsDetectorId::CbmStsDetectorId
CbmStsDetectorId()
Constructor (empty).
Definition
CbmStsDetectorId.h:31
CbmStsDigiLight::AddAdc
void AddAdc(Int_t adc)
Add charge.
Definition
CbmStsDigiLight.cxx:64
CbmStsDigiLight::fData
Long64_t fData
Data members.
Definition
CbmStsDigiLight.h:90
CbmStsDigiLight::fgkAddrBits
static const Int_t fgkAddrBits
Static members for bit operations.
Definition
CbmStsDigiLight.h:96
CbmStsDigiLight::fgkAddrMask
static const Long64_t fgkAddrMask
Definition
CbmStsDigiLight.h:101
CbmStsDigiLight::fgkTimeShift
static const Int_t fgkTimeShift
Definition
CbmStsDigiLight.h:100
CbmStsDigiLight::fgkCharMask
static const Long64_t fgkCharMask
Definition
CbmStsDigiLight.h:102
CbmStsDigiLight::fgkCharShift
static const Int_t fgkCharShift
Definition
CbmStsDigiLight.h:99
CbmStsDigiLight::GetAdc
Int_t GetAdc() const
Charge.
Definition
CbmStsDigiLight.h:80
CbmStsDigiLight::SetAdc
void SetAdc(Int_t charge)
Modifiers.
Definition
CbmStsDigiLight.cxx:75
CbmStsDigiLight::CbmStsDigiLight
CbmStsDigiLight()
Default constructor.
Definition
CbmStsDigiLight.cxx:28
CbmStsDigiLight::fgkTimeBits
static const Int_t fgkTimeBits
Definition
CbmStsDigiLight.h:98
CbmStsDigiLight::fgkCharBits
static const Int_t fgkCharBits
CbmStsDigiLight.cxx.
Definition
CbmStsDigiLight.h:97
CbmStsDigiLight::~CbmStsDigiLight
virtual ~CbmStsDigiLight()
Destructor.
Definition
CbmStsDigiLight.cxx:60
CbmStsDigiLight::fgkTimeMask
static const Long64_t fgkTimeMask
Definition
CbmStsDigiLight.h:103
CbmStsDigiLight.h
detectors
sts
CbmStsDigiLight.cxx
Generated on
for BmnRoot by
1.17.0