ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileG4
TileAncillary
MinBiasScintillator
src
MinBiasScintillatorSD.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//************************************************************
6
//
7
// Class MinBiasScintillatorSD
8
// Sensitive detector for the Minimum Bias Scintillator
9
//
10
// Author: A. Solodkov
11
// April 01, 2006.
12
//
13
//************************************************************
14
15
#ifndef MINBIASSCINTILLATOR_MINBIASSCINTILLATORSD_H
16
#define MINBIASSCINTILLATOR_MINBIASSCINTILLATORSD_H
17
18
// Base class
19
#include "G4VSensitiveDetector.hh"
20
21
#include "Identifier/Identifier.h"
22
#include "
MinBiasScintSDOptions.h
"
23
#include "
TileSimEvent/TileHitVectorCellBuilder.h
"
24
25
// STL headers
26
#include <string>
27
#include <vector>
28
29
// G4 needed classes
30
class
G4Step;
31
class
G4TouchableHistory;
32
33
class
TileTBID
;
34
35
class
MinBiasScintillatorSD
:
public
G4VSensitiveDetector {
36
public
:
37
MinBiasScintillatorSD
(
const
G4String& name,
const
std::string& hitCollectionName,
38
const
MinBiasScintSDOptions
& opts);
39
~MinBiasScintillatorSD
() =
default
;
40
41
static
constexpr
int
NCells
= 32;
42
using
HitVectorBuilder
=
TileHitVectorCellBuilder<NCells>
;
43
44
virtual
void
Initialize
(G4HCofThisEvent*)
override
final
;
45
46
virtual
G4bool
ProcessHits
(G4Step*, G4TouchableHistory*)
override
final
;
47
48
private
:
49
// Options for the SD configuration
50
const
MinBiasScintSDOptions
m_options
;
51
52
const
TileTBID
*
m_tileTBID
;
53
54
static
const
int
N_SIDE
= 2;
55
static
const
int
N_PHI
= 8;
56
static
const
int
N_ETA
= 2;
57
static
const
int
N_DIST
=
N_SIDE
*
N_ETA
;
58
59
HitVectorBuilder
*
GetHitCollection
();
60
61
const
std::string
m_hitCollectionName
;
62
HitVectorBuilder
*
m_hitCollection
{};
63
64
inline
int
cell_index
(
int
side,
int
phi
,
int
eta
)
const
{
65
return
(side *
N_PHI
+
phi
) *
N_ETA
+
eta
;
66
}
67
inline
int
dist_index
(
int
side,
int
eta
)
const
{
68
return
side *
N_ETA
+
eta
;
69
}
70
74
Identifier
m_channelID
[
NCells
];
75
78
double
m_deltaT
;
79
std::vector<double>
m_deltaTvec
;
80
83
double
m_timeCut
;
84
88
double
m_lateHitTime
;
89
90
double
m_deltaT_cell
[
N_DIST
];
91
92
G4double
BirkLaw
(
const
G4Step* aStep)
const
;
93
97
98
inline
double
deltaT
(
double
time)
const
{
99
unsigned
int
i = 0;
100
double
delta =
m_deltaTvec
[i++];
101
while
(i <
m_deltaTvec
.size()) {
102
if
(time >
m_deltaTvec
[i++] && time <
m_deltaTvec
[i++])
break
;
103
delta =
m_deltaTvec
[i++];
104
}
105
return
delta;
106
}
107
};
108
109
#endif
//MINBIASSCINTILLATOR_MINBIASSCINTILLATORSD_H
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
MinBiasScintSDOptions.h
TileHitVectorCellBuilder.h
MinBiasScintillatorSD::m_channelID
Identifier m_channelID[NCells]
array to cache look-ups of Identifiers for each cell (size=nCell).
Definition
MinBiasScintillatorSD.h:74
MinBiasScintillatorSD::N_DIST
static const int N_DIST
Definition
MinBiasScintillatorSD.h:57
MinBiasScintillatorSD::m_deltaT
double m_deltaT
granularity in time for hits
Definition
MinBiasScintillatorSD.h:78
MinBiasScintillatorSD::~MinBiasScintillatorSD
~MinBiasScintillatorSD()=default
MinBiasScintillatorSD::deltaT
double deltaT(double time) const
function to provide correct deltaT bin width for given time
Definition
MinBiasScintillatorSD.h:98
MinBiasScintillatorSD::m_hitCollection
HitVectorBuilder * m_hitCollection
Definition
MinBiasScintillatorSD.h:62
MinBiasScintillatorSD::m_options
const MinBiasScintSDOptions m_options
Definition
MinBiasScintillatorSD.h:50
MinBiasScintillatorSD::BirkLaw
G4double BirkLaw(const G4Step *aStep) const
MinBiasScintillatorSD::MinBiasScintillatorSD
MinBiasScintillatorSD(const G4String &name, const std::string &hitCollectionName, const MinBiasScintSDOptions &opts)
MinBiasScintillatorSD::NCells
static constexpr int NCells
Definition
MinBiasScintillatorSD.h:41
MinBiasScintillatorSD::cell_index
int cell_index(int side, int phi, int eta) const
Definition
MinBiasScintillatorSD.h:64
MinBiasScintillatorSD::m_tileTBID
const TileTBID * m_tileTBID
Definition
MinBiasScintillatorSD.h:52
MinBiasScintillatorSD::N_SIDE
static const int N_SIDE
Definition
MinBiasScintillatorSD.h:54
MinBiasScintillatorSD::dist_index
int dist_index(int side, int eta) const
Definition
MinBiasScintillatorSD.h:67
MinBiasScintillatorSD::m_lateHitTime
double m_lateHitTime
time for hits which are above m_timeCut threshold it is equal to m_tilesize_deltaT - m_deltaT
Definition
MinBiasScintillatorSD.h:88
MinBiasScintillatorSD::HitVectorBuilder
TileHitVectorCellBuilder< NCells > HitVectorBuilder
Definition
MinBiasScintillatorSD.h:42
MinBiasScintillatorSD::Initialize
virtual void Initialize(G4HCofThisEvent *) override final
MinBiasScintillatorSD::m_timeCut
double m_timeCut
max allowed time for hits
Definition
MinBiasScintillatorSD.h:83
MinBiasScintillatorSD::m_deltaT_cell
double m_deltaT_cell[N_DIST]
Definition
MinBiasScintillatorSD.h:90
MinBiasScintillatorSD::N_PHI
static const int N_PHI
Definition
MinBiasScintillatorSD.h:55
MinBiasScintillatorSD::GetHitCollection
HitVectorBuilder * GetHitCollection()
MinBiasScintillatorSD::m_deltaTvec
std::vector< double > m_deltaTvec
Definition
MinBiasScintillatorSD.h:79
MinBiasScintillatorSD::m_hitCollectionName
const std::string m_hitCollectionName
Definition
MinBiasScintillatorSD.h:61
MinBiasScintillatorSD::N_ETA
static const int N_ETA
Definition
MinBiasScintillatorSD.h:56
MinBiasScintillatorSD::ProcessHits
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
TileHitVectorCellBuilder
Event-owned TileHit accumulator for SDs that merge one TileSimHit per cell.
Definition
TileHitVectorCellBuilder.h:26
TileTBID
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
Definition
Calorimeter/CaloIdentifier/CaloIdentifier/TileTBID.h:65
Identifier
Definition
IdentifierFieldParser.cxx:14
MinBiasScintSDOptions
Definition
MinBiasScintSDOptions.h:20
Generated on
for ATLAS Offline Software by
1.17.0