BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmStsSector.h
Go to the documentation of this file.
1
// -------------------------------------------------------------------------
2
// ----- CbmStsSector header file -----
3
// ----- Created 28/08/06 by V. Friese -----
4
// -------------------------------------------------------------------------
5
6
/** CbmStsSector.h
7
*@author V.Friese <v.friese@gsi.de>
8
*@since 28.08.06
9
*@version 1.0
10
**
11
** This class describes the digitisation scheme for a sector of the STS.
12
** The sector is rectangular with extensions fLx and fLy. The following
13
** types are implemented:
14
** 1 = pixel detector without charge sharing
15
** 2 = double sides strip detector, all channels read out
16
** 3 = double sided strip detector with double metal layer,
17
** readout at the bottom corner
18
** In case of strip detectors, the internal coordinate system sees
19
** x across and y along the front side strips.
20
** The origin of the internal sector coordinate system is at the lower
21
** left corner of the sector, i.e. x runs from 0 to fLx,
22
** and y from 0 to fLy.
23
** For strip detectors, the readout pitch is the same on the front and
24
** the back side, i.e. the strip pitch on the back side is smaller.
25
** The sector can be translated and rotated in the c.s. of the station.
26
**/
27
28
#ifndef CBMSTSSECTOR_H
29
#define CBMSTSSECTOR_H 1
30
31
#include "
TNamed.h
"
32
#include "
TObjArray.h
"
33
#include "
TString.h
"
34
35
#include <list>
36
#include <map>
37
#include <set>
38
#include <vector>
39
40
class
CbmStsSensor
;
41
class
CbmStsSensorDigiPar
;
42
43
class
CbmStsSector
:
public
TNamed
44
{
45
public
:
46
/** Default constructor **/
47
CbmStsSector
();
48
49
/** Standard constructor
50
*@param tempName Sector name
51
*@param detId Unique detector identifier
52
**/
53
CbmStsSector
(
TString
tempName,
Int_t
detId);
54
55
/** Destructor **/
56
virtual
~CbmStsSector
();
57
58
/** Accessors **/
59
TString
GetDetectorName
()
const
{
return
fName
.Data(); }
60
Int_t
GetDetectorId
()
const
{
return
fDetectorId
; }
61
Int_t
GetSystemId
()
const
{
return
(
fDetectorId
& (15 << 24)) >> 24; }
62
Int_t
GetStationNr
()
const
{
return
(
fDetectorId
& (255 << 16)) >> 16; }
63
Int_t
GetSectorNr
()
const
64
{
// sector number within station
65
return
(
fDetectorId
& (4095 << 4)) >> 4;
66
}
67
Int_t
GetNChannels
()
const
{
return
fNChannelsFront
+
fNChannelsBack
; }
68
Int_t
GetNChannelsFront
()
const
{
return
fNChannelsFront
; }
69
Int_t
GetNChannelsBack
()
const
{
return
fNChannelsBack
; }
70
71
Int_t
GetNSensors
()
const
{
return
fSensors
->GetEntriesFast(); }
72
TObjArray
*
GetSensors
() {
return
fSensors
; }
73
74
CbmStsSensor
*
GetSensor
(
Int_t
iSensor) {
return
(
CbmStsSensor
*)
fSensors
->At(iSensor); }
75
CbmStsSensor
*
GetSensorByNr
(
Int_t
sensorNr);
76
77
void
AddSensor
(
CbmStsSensorDigiPar
* sensorPar);
78
void
AddSensor
(
CbmStsSensor
* sensor);
79
80
// Retrieve from sensor
81
Int_t
GetType
()
const
{
return
fType
; }
82
Double_t
GetRotation
()
const
{
return
fRotation
; }
83
Double_t
GetDx
()
const
{
return
fDx
; }
84
Double_t
GetDy
()
const
{
return
fDy
; }
85
Double_t
GetStereoF
()
const
{
return
fStereoF
; }
86
Double_t
GetStereoB
()
const
{
return
fStereoB
; }
87
Double_t
GetSigmaX
()
const
{
return
fSigmaX
; }
88
Double_t
GetSigmaY
()
const
{
return
fSigmaY
; }
89
Double_t
GetSigmaXY
()
const
{
return
fSigmaXY
; }
90
91
/** The index of the MCPoint that has caused a combination of
92
** front and back strip to be fired. Returns -1 for combinations
93
** of strips fired by different points (fake hits)
94
*@param iFStrip Front strip number
95
*@param iBStrip Back strip number
96
*@value Index of MCPoint
97
**/
98
Int_t
PointIndex
(
Int_t
iFStrip,
Int_t
iBStrip);
99
100
Int_t
Intersect
(
Int_t
iFStrip,
Int_t
iBStrip,
Double_t
& xCross,
Double_t
& yCross,
Double_t
& zCross);
101
Int_t
IntersectClusters
(
Double_t
fChan,
Double_t
bChan,
Double_t
& xCross,
Double_t
& yCross,
Double_t
& zCross);
102
103
/** Clear the maps of fired strips **/
104
void
Reset
();
105
106
/** Screen output **/
107
void
Print
();
108
109
private
:
110
/** ------------- Data members --------------------------**/
111
Int_t
fDetectorId
;
// Unique detector ID
112
113
TObjArray
*
fSensors
;
// Array of CbmStsSensors
114
115
Int_t
fType
;
// Sensor type
116
Double_t
fRotation
;
// Rotation angle in global c.m. [rad]
117
Double_t
fDx
;
// Strip readout pitch or pixel size in x [cm]
118
Double_t
fDy
;
// Pixel size in y [cm] for pixel sensor
119
Double_t
fStereoF
;
// StereoB angle [rad] for strip sensor.
120
Double_t
fStereoB
;
// StereoF angle [rad] for strip sensor.
121
122
/** Errors of hit coordinates. For pixel sensor: size/sqrt(12),
123
** for strip sensors RMS of overlap of front and back side strip **/
124
// Logically, this belongs to the HitFinder, but it is here
125
// for performance reasons: to be executed once per sensor, not for
126
// each MCPoint
127
Double_t
fSigmaX
;
// RMS in x, global c.s. [cm]
128
Double_t
fSigmaY
;
// RMS in y, global c.s. [cm]
129
Double_t
fSigmaXY
;
// Covariance in global c.s. [cm**2]
130
131
/** Number of channels in front and back plane **/
132
Int_t
fNChannelsFront
;
133
Int_t
fNChannelsBack
;
134
135
/** STL sets containing the active channels **/
136
std::set<Int_t>
fFrontActive
;
//!
137
std::set<Int_t>
fBackActive
;
//!
138
139
std::map<Int_t, Int_t>
fSensorMap
;
//! Map from sensor number to index
140
141
/** STL map from the indizes of the fired strips to the
142
** index of the MCPoint **/
143
std::map<std::pair<Int_t, Int_t>,
Int_t
>
fTrueHits
;
//!
144
145
CbmStsSector
(
const
CbmStsSector
&);
146
CbmStsSector
operator=
(
const
CbmStsSector
&);
147
148
ClassDef
(
CbmStsSector
, 1);
149
};
150
151
#endif
Int_t
int Int_t
Double_t
double Double_t
ClassDef
#define ClassDef(name, id)
TNamed.h
TObjArray.h
TString.h
CbmStsSector::fTrueHits
std::map< std::pair< Int_t, Int_t >, Int_t > fTrueHits
Map from sensor number to index.
Definition
CbmStsSector.h:143
CbmStsSector::GetType
Int_t GetType() const
Definition
CbmStsSector.h:81
CbmStsSector::AddSensor
void AddSensor(CbmStsSensorDigiPar *sensorPar)
Definition
CbmStsSector.cxx:125
CbmStsSector::fNChannelsFront
Int_t fNChannelsFront
Number of channels in front and back plane.
Definition
CbmStsSector.h:132
CbmStsSector::Reset
void Reset()
Clear the maps of fired strips.
Definition
CbmStsSector.cxx:92
CbmStsSector::fSensors
TObjArray * fSensors
Definition
CbmStsSector.h:113
CbmStsSector::GetSectorNr
Int_t GetSectorNr() const
Definition
CbmStsSector.h:63
CbmStsSector::fStereoF
Double_t fStereoF
Definition
CbmStsSector.h:119
CbmStsSector::GetSensors
TObjArray * GetSensors()
Definition
CbmStsSector.h:72
CbmStsSector::fType
Int_t fType
Definition
CbmStsSector.h:115
CbmStsSector::fSensorMap
std::map< Int_t, Int_t > fSensorMap
Definition
CbmStsSector.h:139
CbmStsSector::operator=
CbmStsSector operator=(const CbmStsSector &)
CbmStsSector::PointIndex
Int_t PointIndex(Int_t iFStrip, Int_t iBStrip)
The index of the MCPoint that has caused a combination of front and back strip to be fired.
Definition
CbmStsSector.cxx:82
CbmStsSector::fNChannelsBack
Int_t fNChannelsBack
Definition
CbmStsSector.h:133
CbmStsSector::fDetectorId
Int_t fDetectorId
----------— Data members -----------------------—
Definition
CbmStsSector.h:111
CbmStsSector::GetStationNr
Int_t GetStationNr() const
Definition
CbmStsSector.h:62
CbmStsSector::GetSensorByNr
CbmStsSensor * GetSensorByNr(Int_t sensorNr)
Definition
CbmStsSector.cxx:111
CbmStsSector::GetDx
Double_t GetDx() const
Definition
CbmStsSector.h:83
CbmStsSector::GetSystemId
Int_t GetSystemId() const
Definition
CbmStsSector.h:61
CbmStsSector::GetDy
Double_t GetDy() const
Definition
CbmStsSector.h:84
CbmStsSector::~CbmStsSector
virtual ~CbmStsSector()
Destructor.
Definition
CbmStsSector.cxx:72
CbmStsSector::CbmStsSector
CbmStsSector(const CbmStsSector &)
CbmStsSector::fStereoB
Double_t fStereoB
Definition
CbmStsSector.h:120
CbmStsSector::fDy
Double_t fDy
Definition
CbmStsSector.h:118
CbmStsSector::IntersectClusters
Int_t IntersectClusters(Double_t fChan, Double_t bChan, Double_t &xCross, Double_t &yCross, Double_t &zCross)
Definition
CbmStsSector.cxx:314
CbmStsSector::GetStereoF
Double_t GetStereoF() const
Definition
CbmStsSector.h:85
CbmStsSector::GetNChannels
Int_t GetNChannels() const
Definition
CbmStsSector.h:67
CbmStsSector::GetDetectorId
Int_t GetDetectorId() const
Definition
CbmStsSector.h:60
CbmStsSector::CbmStsSector
CbmStsSector()
Default constructor.
Definition
CbmStsSector.cxx:23
CbmStsSector::fRotation
Double_t fRotation
Definition
CbmStsSector.h:116
CbmStsSector::fSigmaX
Double_t fSigmaX
Errors of hit coordinates.
Definition
CbmStsSector.h:127
CbmStsSector::GetNChannelsFront
Int_t GetNChannelsFront() const
Definition
CbmStsSector.h:68
CbmStsSector::Print
void Print()
Screen output.
Definition
CbmStsSector.cxx:101
CbmStsSector::GetSigmaY
Double_t GetSigmaY() const
Definition
CbmStsSector.h:88
CbmStsSector::GetRotation
Double_t GetRotation() const
Definition
CbmStsSector.h:82
CbmStsSector::GetNChannelsBack
Int_t GetNChannelsBack() const
Definition
CbmStsSector.h:69
CbmStsSector::GetDetectorName
TString GetDetectorName() const
Accessors.
Definition
CbmStsSector.h:59
CbmStsSector::fBackActive
std::set< Int_t > fBackActive
Definition
CbmStsSector.h:137
CbmStsSector::fDx
Double_t fDx
Definition
CbmStsSector.h:117
CbmStsSector::GetSigmaXY
Double_t GetSigmaXY() const
Definition
CbmStsSector.h:89
CbmStsSector::fFrontActive
std::set< Int_t > fFrontActive
STL sets containing the active channels.
Definition
CbmStsSector.h:136
CbmStsSector::GetSigmaX
Double_t GetSigmaX() const
Definition
CbmStsSector.h:87
CbmStsSector::fSigmaY
Double_t fSigmaY
Definition
CbmStsSector.h:128
CbmStsSector::Intersect
Int_t Intersect(Int_t iFStrip, Int_t iBStrip, Double_t &xCross, Double_t &yCross, Double_t &zCross)
Definition
CbmStsSector.cxx:272
CbmStsSector::fSigmaXY
Double_t fSigmaXY
Definition
CbmStsSector.h:129
CbmStsSector::GetSensor
CbmStsSensor * GetSensor(Int_t iSensor)
Definition
CbmStsSector.h:74
CbmStsSector::GetStereoB
Double_t GetStereoB() const
Definition
CbmStsSector.h:86
CbmStsSector::GetNSensors
Int_t GetNSensors() const
Definition
CbmStsSector.h:71
CbmStsSensorDigiPar
CbmStsSensorDigiPar.h.
Definition
CbmStsSensorDigiPar.h:28
CbmStsSensor
Definition
CbmStsSensor.h:44
TNamed::TNamed
TNamed()
TNamed::fName
TString fName
TObjArray
TString
detectors
sts
CbmStsSector.h
Generated on
for BmnRoot by
1.17.0