BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmDigi.h
Go to the documentation of this file.
1/** @file CbmDigi.h
2 ** @author Volker Friese <v.friese@gsi.de>
3 ** @date 30.04.2013
4 **/
5
6#ifndef CBMDIGI_H
7#define CBMDIGI_H 1
8
9#include "TObject.h"
10
12
13/** @class CbmDigi
14 ** @brief Base class for persistent representation of digital information.
15 ** @author V.Friese <v.friese@gsi.de>
16 ** @version 2.0
17 **
18 ** CbmDigi is an abstract base class for the ROOT representation of
19 ** the smallest information unit delivered by the detector front-ends.
20 ** It is equivalent to the message of a single electronics channel.
21 ** The information content is the channel address (unique identifier),
22 ** the time stamp and (optionally) the charge (ADC).
23 **
24 ** Unlike the data class used to actually transport the information
25 ** through the data acquisition ("message"), the digi contains
26 ** context-free information, i.e. absolute time and unique address.
27 **
28 ** The class contains a pointer to an object of type FairMultiLinkedData,
29 ** where the link information to MCPoints can be stored and retrieved.
30 ** If there is no such information (as in case of real data), the pointer
31 ** will be NULL.
32 **
33 ** Note that the Digi class is not responsible for the validity of the
34 ** pointer. Copy constructor and assignment operator will perform a
35 ** shallow copy only. It is the user's responsibility to ensure the validity
36 ** of the pointer and to delete the FairMultiLinkedData wherever appropriate.
37 **/
38class CbmDigi : public TObject
39{
40
41 public:
42 /** Default constructor **/
43 CbmDigi();
44
45 /** Destructor **/
46 virtual ~CbmDigi() {};
47
48 /** Unique channel address **/
49 virtual Int_t GetAddress() const = 0;
50
51 /** Charge (optional) **/
52 virtual Double_t GetCharge() const { return 0.; }
53
54 /** Get pointer to link collection **/
55 FairMultiLinkedData* GetLinks() const { return fLinks; }
56
57 /** System (enum DetectorId) **/
58 virtual Int_t GetSystemId() const = 0;
59
60 /** Absolute time [ns] **/
61 virtual Double_t GetTime() const = 0;
62
63 /** Set pointer to link collection **/
64 void SetLinks(FairMultiLinkedData* links) { fLinks = links; }
65
66 protected:
67 FairMultiLinkedData* fLinks; ///< Monte-Carlo link collection
68
69 CbmDigi(const CbmDigi&);
70 CbmDigi& operator=(const CbmDigi&);
71
72 ClassDef(CbmDigi, 2);
73};
74
75#endif
int Int_t
double Double_t
#define ClassDef(name, id)
CbmDigi & operator=(const CbmDigi &)
Definition CbmDigi.cxx:28
virtual Double_t GetTime() const =0
Absolute time [ns].
virtual Int_t GetAddress() const =0
Unique channel address.
void SetLinks(FairMultiLinkedData *links)
Set pointer to link collection.
Definition CbmDigi.h:64
virtual Double_t GetCharge() const
Charge (optional).
Definition CbmDigi.h:52
virtual ~CbmDigi()
Destructor.
Definition CbmDigi.h:46
CbmDigi()
Default constructor.
Definition CbmDigi.cxx:13
FairMultiLinkedData * fLinks
Monte-Carlo link collection.
Definition CbmDigi.h:67
virtual Int_t GetSystemId() const =0
System (enum DetectorId).
FairMultiLinkedData * GetLinks() const
Get pointer to link collection.
Definition CbmDigi.h:55