ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileG4
TileG4Interfaces
TileG4Interfaces
ITileCalculator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//************************************************************
6
// Filename : TileGeoG4SDCalc.hh
7
// Author : Sergey Karpov <Sergey.Karpov@cern.ch>
8
// Created : July, 2013
9
//
10
// DESCRIPTION:
11
// Sensitive Detector initialisation for TileCal G4 simulations
12
// of both ordinary Hits and CalibHits
13
//
14
// HISTORY:
15
// Nov 2013 - Work with U-shape was added (Sasha Solodkov)
16
//
17
//************************************************************
18
19
#ifndef TILEG4INTERFACES_ITILECALCULATOR_H
20
#define TILEG4INTERFACES_ITILECALCULATOR_H
21
22
// Geant4 headers
23
#include "G4Types.hh"
24
25
#include "GaudiKernel/IService.h"
26
#include "Identifier/Identifier.h"
27
28
class
G4Step;
29
class
TileGeoG4Section;
30
class
TileGeoG4Cell;
31
class
TileGeoG4LookupBuilder;
32
class
TileSDOptions
;
33
34
struct
TileMicroHit
{
35
Identifier
pmt_up
;
36
Identifier
pmt_down
;
37
G4double
e_up
= 0;
38
G4double
e_down
= 0;
39
double
time_up
= 0;
40
double
time_down
= 0;
41
//int period, tilerow; // prepared for future use
42
};
43
45
struct
TileHitData
{
46
TileGeoG4Section *
section
=
nullptr
;
47
TileGeoG4Cell *
cell
=
nullptr
;
48
int
nModule
= 0;
49
int
nDetector
= 0;
50
int
nTower
= 0;
51
int
nSample
= 0;
52
int
nSide
= 0;
53
int
nrOfPMT
= 0;
54
int
tileSize
= 0;
55
int
tilePeriod
= 0;
56
double
totalTimeUp
= 0.0;
57
double
totalTimeDown
= 0.0;
58
bool
isNegative
=
false
;
59
Identifier
pmtID_up
;
60
Identifier
pmtID_down
;
61
G4double
edep_up
= 0.0;
62
G4double
edep_down
= 0.0;
63
double
scin_Time_up
= 0.0;
64
double
scin_Time_down
= 0.0;
65
};
66
67
class
ITileCalculator
:
virtual
public
IService {
68
public
:
70
ITileCalculator
() {}
72
virtual
~ITileCalculator
() {}
74
DeclareInterfaceID
(
ITileCalculator
, 1, 0);
75
77
virtual
G4bool
FindTileScinSection
(
const
G4Step*,
TileHitData
& hitData)
const
= 0;
79
virtual
G4bool
MakePmtEdepTime
(
const
G4Step*,
TileHitData
& hitData,
double
& deltaTime)
const
= 0;
81
virtual
G4bool
ManageScintHit
(
TileHitData
& hitData,
double
deltaTime)
const
= 0;
83
virtual
TileMicroHit
GetTileMicroHit
(
const
G4Step*,
TileHitData
& hitData)
const
= 0;
85
virtual
std::unique_ptr<TileGeoG4LookupBuilder>
GetLookupBuilder
()
const
= 0;
87
virtual
const
TileSDOptions
*
GetOptions
()
const
= 0;
89
virtual
void
pmtEdepFromFCS_StepInfo
(
TileHitData
& hitData,
double
ene,
double
yLocal,
double
halfYLocal,
double
zLocal,
int
Ushape)
const
= 0;
90
91
};
92
//class ITileCalculator
93
94
#endif
// not TILEG4INTERFACES_ITILECALCULATOR_H
ITileCalculator::GetOptions
virtual const TileSDOptions * GetOptions() const =0
pointer to class with all options
ITileCalculator::pmtEdepFromFCS_StepInfo
virtual void pmtEdepFromFCS_StepInfo(TileHitData &hitData, double ene, double yLocal, double halfYLocal, double zLocal, int Ushape) const =0
Method used by TileFastCaloSim/TileFCSmStepToTileHitVec.
ITileCalculator::MakePmtEdepTime
virtual G4bool MakePmtEdepTime(const G4Step *, TileHitData &hitData, double &deltaTime) const =0
Calculation of pmtID, edep and scin_Time with aStep (Sergey).
ITileCalculator::ITileCalculator
ITileCalculator()
Definition
ITileCalculator.h:70
ITileCalculator::FindTileScinSection
virtual G4bool FindTileScinSection(const G4Step *, TileHitData &hitData) const =0
Search for the tilecal sub-section, its module and some identifiers.
ITileCalculator::GetTileMicroHit
virtual TileMicroHit GetTileMicroHit(const G4Step *, TileHitData &hitData) const =0
Used by FastCaloSimParamAction.
ITileCalculator::GetLookupBuilder
virtual std::unique_ptr< TileGeoG4LookupBuilder > GetLookupBuilder() const =0
ITileCalculator::~ITileCalculator
virtual ~ITileCalculator()
Definition
ITileCalculator.h:72
ITileCalculator::ManageScintHit
virtual G4bool ManageScintHit(TileHitData &hitData, double deltaTime) const =0
Calculation of pmtID, edep and scin_Time with aStep (Sergey).
ITileCalculator::DeclareInterfaceID
DeclareInterfaceID(ITileCalculator, 1, 0)
TileSDOptions
Definition
TileSDOptions.h:18
Identifier
Definition
IdentifierFieldParser.cxx:14
TileHitData
Variables to identify Hit objects.
Definition
ITileCalculator.h:45
TileHitData::nDetector
int nDetector
Definition
ITileCalculator.h:49
TileHitData::totalTimeDown
double totalTimeDown
Definition
ITileCalculator.h:57
TileHitData::section
TileGeoG4Section * section
Definition
ITileCalculator.h:46
TileHitData::pmtID_down
Identifier pmtID_down
Definition
ITileCalculator.h:60
TileHitData::totalTimeUp
double totalTimeUp
Definition
ITileCalculator.h:56
TileHitData::edep_up
G4double edep_up
Definition
ITileCalculator.h:61
TileHitData::tilePeriod
int tilePeriod
Definition
ITileCalculator.h:55
TileHitData::cell
TileGeoG4Cell * cell
Definition
ITileCalculator.h:47
TileHitData::nTower
int nTower
Definition
ITileCalculator.h:50
TileHitData::nrOfPMT
int nrOfPMT
Definition
ITileCalculator.h:53
TileHitData::pmtID_up
Identifier pmtID_up
Definition
ITileCalculator.h:59
TileHitData::scin_Time_down
double scin_Time_down
Definition
ITileCalculator.h:64
TileHitData::scin_Time_up
double scin_Time_up
Definition
ITileCalculator.h:63
TileHitData::nModule
int nModule
Definition
ITileCalculator.h:48
TileHitData::isNegative
bool isNegative
Definition
ITileCalculator.h:58
TileHitData::nSample
int nSample
Definition
ITileCalculator.h:51
TileHitData::tileSize
int tileSize
Definition
ITileCalculator.h:54
TileHitData::nSide
int nSide
Definition
ITileCalculator.h:52
TileHitData::edep_down
G4double edep_down
Definition
ITileCalculator.h:62
TileMicroHit
Definition
ITileCalculator.h:34
TileMicroHit::time_up
double time_up
Definition
ITileCalculator.h:39
TileMicroHit::pmt_down
Identifier pmt_down
Definition
ITileCalculator.h:36
TileMicroHit::e_down
G4double e_down
Definition
ITileCalculator.h:38
TileMicroHit::time_down
double time_down
Definition
ITileCalculator.h:40
TileMicroHit::pmt_up
Identifier pmt_up
Definition
ITileCalculator.h:35
TileMicroHit::e_up
G4double e_up
Definition
ITileCalculator.h:37
Generated on
for ATLAS Offline Software by
1.17.0