CbmRoot
Loading...
Searching...
No Matches
CbmDigiData.h
Go to the documentation of this file.
1/* Copyright (C) 2021-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer] */
4
5
6#ifndef CBMDIGIDATA_H
7#define CBMDIGIDATA_H 1
8
9#include "CbmBmonDigiData.h"
10#include "CbmFsdDigiData.h"
11#include "CbmMuchDigiData.h"
12#include "CbmMvdDigiData.h"
13#include "CbmPsdDigiData.h"
14#include "CbmRichDigiData.h"
15#include "CbmStsDigiData.h"
16#include "CbmTofDigiData.h"
17#include "CbmTrdDigiData.h"
18
19#include <boost/serialization/access.hpp>
20#include <boost/serialization/base_object.hpp>
21
22#ifndef NO_ROOT
23#include <Rtypes.h> // for ClassDef
24#endif
25
26
34
35 public:
46
49 template<class Archive>
50 void serialize(Archive& ar, const unsigned int /*version*/)
51 {
52 // note, version is always the latest when saving
53 ar& fBmon;
54 ar& fSts;
55 ar& fMuch;
56 ar& fMvd;
57 ar& fTrd;
58 ar& fTrd2d;
59 ar& fTof;
60 ar& fPsd;
61 ar& fFsd;
62 ar& fRich;
63 }
64
65 // --- ROOT serializer
66#ifndef NO_ROOT
68#endif
69
71 void Clear()
72 {
73 fBmon.Clear();
74 fSts.Clear();
75 fMuch.Clear();
76 fMvd.Clear();
77 fTrd.Clear();
78 fTrd2d.Clear();
79 fTof.Clear();
80 fPsd.Clear();
81 fFsd.Clear();
82 fRich.Clear();
83 }
84
86 size_t Size(ECbmModuleId system) const
87 {
88 switch (system) {
89 case ECbmModuleId::kBmon: return fBmon.Size(); break;
90 case ECbmModuleId::kSts: return fSts.Size(); break;
91 case ECbmModuleId::kMuch: return fMuch.Size(); break;
92 case ECbmModuleId::kMvd: return fMvd.Size(); break;
93 case ECbmModuleId::kTrd: return fTrd.Size(); break;
94 case ECbmModuleId::kTrd2d: return fTrd2d.Size(); break;
95 case ECbmModuleId::kTof: return fTof.Size(); break;
96 case ECbmModuleId::kPsd: return fPsd.Size(); break;
97 case ECbmModuleId::kRich: return fRich.Size(); break;
98 case ECbmModuleId::kFsd: return fFsd.Size(); break;
99 default: return 0; break;
100 }
101 }
102
104 size_t SizeBytes() const
105 {
106 size_t size = 0;
107 size += fBmon.Size() * sizeof(CbmBmonDigi);
108 size += fSts.Size() * sizeof(CbmStsDigi);
109 size += fMuch.Size() * sizeof(CbmMuchDigi);
110 size += fMvd.Size() * sizeof(CbmMvdRawDigi);
111 size += fTrd.Size() * sizeof(CbmTrdDigi);
112 size += fTrd2d.Size() * sizeof(CbmTrdDigi);
113 size += fTof.Size() * sizeof(CbmTofDigi);
114 size += fPsd.Size() * sizeof(CbmPsdDigi);
115 size += fFsd.Size() * sizeof(CbmFsdDigi);
116 size += fRich.Size() * sizeof(CbmRichDigi);
117 return size;
118 }
119};
120
121BOOST_CLASS_VERSION(CbmDigiData, 5)
122#endif /* CBMDIGIDATA_H */
ECbmModuleId
Enumerator for module Identifiers.
Definition CbmDefs.h:45
@ kMvd
Micro-Vertex Detector.
Definition CbmDefs.h:47
@ kTrd
Transition Radiation Detector.
Definition CbmDefs.h:51
@ kTof
Time-of-flight Detector.
Definition CbmDefs.h:52
@ kPsd
Projectile spectator detector.
Definition CbmDefs.h:54
@ kSts
Silicon Tracking System.
Definition CbmDefs.h:48
@ kTrd2d
TRD-FASP Detector (FIXME)
Definition CbmDefs.h:58
@ kMuch
Muon detection system.
Definition CbmDefs.h:50
@ kFsd
Forward spectator detector.
Definition CbmDefs.h:59
@ kBmon
Bmon Counter.
Definition CbmDefs.h:57
@ kRich
Ring-Imaging Cherenkov Detector.
Definition CbmDefs.h:49
static constexpr size_t size()
Definition KfSimdPseudo.h:2
Container class for CbmBmonDigi objects.
Data class for a signal in the t-zero detector.
Definition CbmBmonDigi.h:31
Collection of digis from all detector systems.
Definition CbmDigiData.h:33
CbmPsdDigiData fPsd
PSD data.
Definition CbmDigiData.h:44
CbmTrdDigiData fTrd2d
TRD2D data.
Definition CbmDigiData.h:42
CbmTrdDigiData fTrd
TRD data.
Definition CbmDigiData.h:41
CbmTofDigiData fTof
TOF data.
Definition CbmDigiData.h:43
CbmMvdDigiData fMvd
MVD data.
Definition CbmDigiData.h:39
CbmStsDigiData fSts
STS data.
Definition CbmDigiData.h:37
size_t SizeBytes() const
Return total size in bytes.
CbmFsdDigiData fFsd
FSD data.
Definition CbmDigiData.h:45
void Clear()
Clear content.
Definition CbmDigiData.h:71
size_t Size(ECbmModuleId system) const
Size of detector data.
Definition CbmDigiData.h:86
CbmRichDigiData fRich
RICH data.
Definition CbmDigiData.h:40
ClassDefNV(CbmDigiData, 5)
void serialize(Archive &ar, const unsigned int)
BOOST serializer.
Definition CbmDigiData.h:50
friend class boost::serialization::access
Definition CbmDigiData.h:47
CbmMuchDigiData fMuch
MUCH data.
Definition CbmDigiData.h:38
CbmBmonDigiData fBmon
Beam monitor data.
Definition CbmDigiData.h:36
Container class for CbmFsdDigi objects.
Data class for FSD digital information.
Definition CbmFsdDigi.h:36
Container class for CbmMuchDigi objects.
Container class for CbmMvdRawDigi objects.
Container class for CbmPsdDigi objects.
Data class for PSD digital information.
Definition CbmPsdDigi.h:36
Container class for CbmRichDigi objects.
Container class for CbmStsDigi objects.
Data class for a single-channel message in the STS.
Definition CbmStsDigi.h:40
Container class for CbmTofDigi objects.
Data class for expanded digital TOF information.
Definition CbmTofDigi.h:47
Container class for CbmTrdDigi objects.