CbmRoot
Loading...
Searching...
No Matches
CbmMustLayer.h
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Radoslaw Karabowicz [committer] */
4
15
16
17#ifndef CBMMUSTLAYER_H
18#define CBMMUSTLAYER_H 1
19
20
21#include <Rtypes.h> // for THashConsistencyHolder, ClassDef
22#include <TObject.h> // for TObject
23
24#include <vector> // for vector
25
26class CbmMustModule;
27class CbmMustTube;
28
29class CbmMustLayer : public TObject {
30
31 public:
34
40 CbmMustLayer(uint32_t address, double z, double zRel);
41
48 CbmMustLayer(int iStation, int iLayer, double z, double zRel);
49
51 virtual ~CbmMustLayer();
52
54 uint32_t GetAddress() const { return fAddress; }
55 double GetZ() const { return fZ; }
56 double GetZtoStationCenter() const { return fZtoStationCenter; }
57
58 int GetNModules() const { return fModules.size(); }
59
60 CbmMustModule* GetModule(int iModule) const { return fModules.at(iModule); }
61
62 CbmMustTube* GetTube(uint32_t address) const;
63
64 CbmMustModule* FindModule(uint32_t address);
65 bool AddModule(CbmMustModule* module);
66 void Show();
67
68 protected:
69 uint32_t fAddress{0}; // Unique detector address (CbmMustAddress)
70 double fZ{0.};
71 double fZtoStationCenter{0.}; // Relative position of the layer center with respect
72 // to the station center
73 std::vector<CbmMustModule*> fModules; // Array of CbmMustModules
74
76};
77#endif
uint32_t GetAddress() const
double GetZ() const
CbmMustTube * GetTube(uint32_t address) const
int GetNModules() const
CbmMustModule * GetModule(int iModule) const
bool AddModule(CbmMustModule *module)
virtual ~CbmMustLayer()
double fZtoStationCenter
double GetZtoStationCenter() const
ClassDef(CbmMustLayer, 1)
uint32_t fAddress
std::vector< CbmMustModule * > fModules
CbmMustModule * FindModule(uint32_t address)