CbmRoot
Loading...
Searching...
No Matches
CbmMuchLayer.cxx
Go to the documentation of this file.
1
/* Copyright (C) 2008-2020 St. Petersburg Polytechnic University, St. Petersburg
2
SPDX-License-Identifier: GPL-3.0-only
3
Authors: Florian Uhlig, Mikhail Ryzhinskiy [committer], Evgeny Kryshen */
4
13
#include "
CbmMuchLayer.h
"
14
15
#include "
CbmMuchAddress.h
"
// for CbmMuchAddress
16
#include "
CbmMuchLayerSide.h
"
// for CbmMuchLayerSide
17
#include "
CbmMuchModule.h
"
// for CbmMuchModule
18
19
#include <TMathBase.h>
// for Abs
20
#include <TObject.h>
// for TObject
21
#include <TVector3.h>
// for TVector3
22
23
// ----- Default constructor -------------------------------------------
24
CbmMuchLayer::CbmMuchLayer
()
25
: TObject()
26
,
fDetectorId
(0)
27
,
fZ
(0.)
28
,
fSideF
()
29
,
fSideB
()
30
,
fSupportDx
(0.)
31
,
fSupportDy
(0.)
32
,
fSupportDz
(0.)
33
,
fZtoStationCenter
()
34
{
35
}
36
// -------------------------------------------------------------------------
37
38
// ----- Standard constructor ------------------------------------------
39
CbmMuchLayer::CbmMuchLayer
(
Int_t
detId, Double_t z, Double_t zRel)
40
: TObject()
41
,
fDetectorId
(detId)
42
,
fZ
(z)
43
,
fSideF
()
44
,
fSideB
()
45
,
fSupportDx
(0.)
46
,
fSupportDy
(0.)
47
,
fSupportDz
(0.)
48
,
fZtoStationCenter
(zRel)
49
{
50
Int_t
iStation =
CbmMuchAddress::GetStationIndex
(detId);
51
Int_t
iLayer =
CbmMuchAddress::GetLayerIndex
(detId);
52
fSideF
=
CbmMuchLayerSide
(iStation, iLayer, 0, z);
53
fSideB
=
CbmMuchLayerSide
(iStation, iLayer, 1, z);
54
}
55
// -------------------------------------------------------------------------
56
57
// ----- Standard constructor ------------------------------------------
58
CbmMuchLayer::CbmMuchLayer
(
Int_t
iStation,
Int_t
iLayer, Double_t z, Double_t zRel)
59
: TObject()
60
,
fDetectorId
(
CbmMuchAddress
::GetAddress(iStation, iLayer))
61
,
fZ
(z)
62
,
fSideF
()
63
,
fSideB
()
64
,
fSupportDx
(0.)
65
,
fSupportDy
(0.)
66
,
fSupportDz
(0.)
67
,
fZtoStationCenter
(zRel)
68
69
{
70
fSideF
=
CbmMuchLayerSide
(iStation, iLayer, 0, z);
71
fSideB
=
CbmMuchLayerSide
(iStation, iLayer, 1, z);
72
}
73
// -------------------------------------------------------------------------
74
75
// ----- Destructor ----------------------------------------------------
76
CbmMuchLayer::~CbmMuchLayer
() {}
77
// -------------------------------------------------------------------------
78
79
80
// -------------------------------------------------------------------------
81
Double_t
CbmMuchLayer::GetDz
()
82
{
83
Double_t dzmax =
fSupportDz
;
84
85
for
(
Int_t
s = 0; s < 2; s++) {
86
CbmMuchLayerSide
* side =
GetSide
(s);
87
for
(
Int_t
i = 0; i < side->
GetNModules
(); i++) {
88
CbmMuchModule
* module = side->
GetModule
(i);
89
Double_t lz =
module
->GetSize().Z();
90
Double_t z =
module
->GetPosition().Z();
91
Double_t dz = TMath::Abs(z -
fZ
) + lz / 2.;
92
if
(dz > dzmax) dzmax = dz;
93
}
94
}
95
return
dzmax;
96
}
97
// -------------------------------------------------------------------------
98
99
ClassImp
(
CbmMuchLayer
)
ClassImp
ClassImp(CbmConverterManager)
CbmMuchAddress.h
CbmMuchLayerSide.h
CbmMuchLayer.h
CbmMuchModule.h
Int_t
int Int_t
Definition
RootTypesDef.h:16
CbmMuchAddress
Interface class to unique address for the MUCH.
Definition
CbmMuchAddress.h:55
CbmMuchAddress::GetLayerIndex
static int32_t GetLayerIndex(int32_t address)
Definition
CbmMuchAddress.h:106
CbmMuchAddress::GetStationIndex
static int32_t GetStationIndex(int32_t address)
Definition
CbmMuchAddress.h:105
CbmMuchLayerSide
Definition
CbmMuchLayerSide.h:26
CbmMuchLayerSide::GetNModules
Int_t GetNModules() const
Definition
CbmMuchLayerSide.h:51
CbmMuchLayerSide::GetModule
CbmMuchModule * GetModule(Int_t iModule) const
Definition
CbmMuchLayerSide.h:56
CbmMuchLayer
Definition
CbmMuchLayer.h:25
CbmMuchLayer::~CbmMuchLayer
virtual ~CbmMuchLayer()
Definition
CbmMuchLayer.cxx:76
CbmMuchLayer::fZ
Double32_t fZ
Definition
CbmMuchLayer.h:71
CbmMuchLayer::CbmMuchLayer
CbmMuchLayer()
Definition
CbmMuchLayer.cxx:24
CbmMuchLayer::GetSide
CbmMuchLayerSide * GetSide(Bool_t side)
Definition
CbmMuchLayer.h:53
CbmMuchLayer::fSupportDx
Double_t fSupportDx
Definition
CbmMuchLayer.h:74
CbmMuchLayer::fZtoStationCenter
Double_t fZtoStationCenter
Definition
CbmMuchLayer.h:77
CbmMuchLayer::fSideB
CbmMuchLayerSide fSideB
Definition
CbmMuchLayer.h:73
CbmMuchLayer::fDetectorId
Int_t fDetectorId
Definition
CbmMuchLayer.h:70
CbmMuchLayer::fSupportDy
Double_t fSupportDy
Definition
CbmMuchLayer.h:75
CbmMuchLayer::fSideF
CbmMuchLayerSide fSideF
Definition
CbmMuchLayer.h:72
CbmMuchLayer::fSupportDz
Double_t fSupportDz
Definition
CbmMuchLayer.h:76
CbmMuchLayer::GetDz
Double_t GetDz()
Definition
CbmMuchLayer.cxx:81
CbmMuchModule
Definition
CbmMuchModule.h:28
core
detectors
much
CbmMuchLayer.cxx
Generated on Fri Jan 30 2026 23:05:23 for CbmRoot by
1.13.2