BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmStsDigi.h
Go to the documentation of this file.
1/** CbmStsDigi.h
2 **@author V.Friese <v.friese@gsi.de>
3 **@since 28.08.2006
4 **@version 2.0
5 **
6 ** Data class for digital STS information
7 ** Data level: RAW
8 **
9 ** The information is encoded into 8 bytes (1 Long64_t).
10 ** Address: 25 bits
11 ** - Station Nr. 4 bits
12 ** - Sector Nr. 8 bits //AZ
13 ** - Side (front/back) 1 bit
14 ** - Channel Nr. 12 bits //AZ
15 ** Charge (ADC): 12 bits
16 ** Time (ns): 14 bits
17 **
18 ** The time is relative to the event time.
19 **/
20
21#ifndef CBMSTSDIGI_H
22#define CBMSTSDIGI_H 1
23
24#include "CbmStsDetectorId.h"
25#include "FairMultiLinkedData.h"
26
27#include <vector>
28
29class CbmStsDigi
30 : public FairMultiLinkedData
31 , public CbmStsDetectorId
32{
33
34 public:
35 /** Default constructor **/
37
38 /** Constructor from station number, sector number,
39 ** front/back side and channel number
40 **@param station station number (1 - 15)
41 **@param sector sector number (1 - 255)
42 **@param side 0=front side; 1=back side
43 **@param channel channel number (1 - 4095)
44 **@param adc Charge ADC channel (0 - 4095)
45 **@param time Time within event [ns]
46 **/
47 // CbmStsDigi(std::vector<Int_t> index, Int_t station, Int_t sector, Int_t side,
48 // Int_t channel, Int_t adc, Int_t time);
49 CbmStsDigi(Int_t station, Int_t sector, Int_t side, Int_t channel, Int_t adc, Int_t time);
50
51 /** Destructor **/
52 virtual ~CbmStsDigi();
53
54 /** Add charge **/
55 void AddAdc(Int_t adc);
56 // void AddIndex(int index, int adc){
57 // AddLink(FairLink(kStsPoint, index, adc));
58 // }
59 // void AddIndex(std::vector<Int_t> index){
60 // SetLinks(FairMultiLinkedData(kStsPoint, index));
61 // }
62
63 /** Maximal number of ADC bits **/
64 static Int_t GetNofAdcBits() { return fgkCharBits; }
65
66 /** Station number **/
68
69 /** Sector number **/
70 Int_t GetSectorNr() const { return SectorNr(GetDetectorId()); }
71
72 /** Side ( 0 = front, 1 = back ) **/
73 Int_t GetSide() const { return Side(GetDetectorId()); }
74
75 /** Channel number **/
77
78 /** Charge **/
79 Int_t GetAdc() const { return ((fData >> fgkCharShift) & fgkCharMask); }
80
81 /** Maximum ADC **/
82 static Int_t GetMaxAdc() { return ((1 << fgkCharBits) - 1); }
83
84 /** Time **/
85 Int_t GetTime() const { return ((fData >> fgkTimeShift) & fgkTimeMask); }
86
87 /** Unique detector ID **/
88 Int_t GetDetectorId() const { return (kGEM | ((fData & fgkAddrMask) << 4)); }
89
90 private:
91 /** Data members **/
93
94 /** Modifiers **/
95 void SetAdc(Int_t charge);
96
97 /** Static members for bit operations **/
98 static const Int_t fgkAddrBits;
99 static const Int_t fgkCharBits;
100 static const Int_t fgkTimeBits;
101 static const Int_t fgkCharShift;
102 static const Int_t fgkTimeShift;
103 static const Long64_t fgkAddrMask;
104 static const Long64_t fgkCharMask;
105 static const Long64_t fgkTimeMask;
106
108};
109
110#endif
int Int_t
long long Long64_t
#define ClassDef(name, id)
@ kGEM
CbmStsDetectorId.h.
Int_t StationNr(Int_t detectorId) const
Get station number from detectorId.
Int_t ChannelNr(Int_t detectorId) const
Get channel number from detectorId.
Int_t Side(Int_t detectorId) const
Get side from detectorId.
Int_t SectorNr(Int_t detectorId) const
Get sector number from detectorId.
CbmStsDigi.h.
Definition CbmStsDigi.h:32
Int_t GetTime() const
Time.
Definition CbmStsDigi.h:85
static const Long64_t fgkTimeMask
Definition CbmStsDigi.h:105
static const Int_t fgkTimeBits
Definition CbmStsDigi.h:100
Int_t GetSide() const
Side ( 0 = front, 1 = back ).
Definition CbmStsDigi.h:73
Int_t GetAdc() const
Charge.
Definition CbmStsDigi.h:79
static const Int_t fgkCharShift
Definition CbmStsDigi.h:101
static const Int_t fgkTimeShift
Definition CbmStsDigi.h:102
Long64_t fData
Data members.
Definition CbmStsDigi.h:92
void AddAdc(Int_t adc)
Add charge.
static Int_t GetNofAdcBits()
Maximal number of ADC bits.
Definition CbmStsDigi.h:64
CbmStsDigi()
Default constructor.
static Int_t GetMaxAdc()
Maximum ADC.
Definition CbmStsDigi.h:82
Int_t GetSectorNr() const
Sector number.
Definition CbmStsDigi.h:70
Int_t GetDetectorId() const
Unique detector ID.
Definition CbmStsDigi.h:88
static const Long64_t fgkAddrMask
Definition CbmStsDigi.h:103
static const Int_t fgkCharBits
CbmStsDigi.cxx.
Definition CbmStsDigi.h:99
Int_t GetChannelNr() const
Channel number.
Definition CbmStsDigi.h:76
void SetAdc(Int_t charge)
Modifiers.
static const Long64_t fgkCharMask
Definition CbmStsDigi.h:104
virtual ~CbmStsDigi()
Destructor.
static const Int_t fgkAddrBits
Static members for bit operations.
Definition CbmStsDigi.h:98
Int_t GetStationNr() const
Station number.
Definition CbmStsDigi.h:67
CbmStsDigi(Int_t station, Int_t sector, Int_t side, Int_t channel, Int_t adc, Int_t time)
Constructor from station number, sector number, front/back side and channel number.