ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
EFTracking
FPGATrackSim
FPGATrackSimBinning
FPGATrackSimBinning
FPGATrackSimBinnedHits.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
#ifndef FPGATrackSimBinnedHits_H
4
#define FPGATrackSimBinnedHits_H
5
24
#include "
AthenaBaseComps/AthAlgTool.h
"
25
26
#include "
FPGATrackSimBinning/FPGATrackSimBinTool.h
"
27
#include "
FPGATrackSimBinning/FPGATrackSimBinUtil.h
"
28
#include "
FPGATrackSimObjects/FPGATrackSimHit.h
"
29
#include "
FPGATrackSimBinning/FPGATrackSimBinArray.h
"
30
31
#include "GaudiKernel/StatusCode.h"
32
33
#include <GaudiKernel/ToolHandle.h>
34
35
#include <string>
36
#include <vector>
37
#include <bit>
38
39
//-------------------------------------------------------------------------------------------------------
40
// BinnedHits
41
// Nomenclature:
42
// parameter = parameter of track e.g. (pT,eta,phi,d0,z0) but could be
43
// in different coordinates
44
// such at in the keylayer format where its
45
// (z_in,z_out,phi_in,phi_out,x_m)
46
// bin = a bin in the full parameters space (upto 5-d)
47
// subbin = a binning used as part of the total binning e.g. only in
48
// (pT,phi) or only in (z_in,z_out)
49
//-------------------------------------------------------------------------------------------------------
50
class
FPGATrackSimBinnedHits
:
public
AthAlgTool
{
51
public
:
52
FPGATrackSimBinnedHits
(
const
std::string &algname,
const
std::string &name,
53
const
IInterface *ifc)
54
:
AthAlgTool
(algname, name, ifc) {}
55
56
virtual
StatusCode
initialize
()
override
;
57
void
initBinnedDataArrays
();
58
59
StatusCode
fill
(
const
std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits);
60
void
resetBins
();
61
62
// access to tool
63
const
FPGATrackSimBinTool
&
getBinTool
()
const
{
return
*
m_bintool
.get();}
64
FPGATrackSimBinTool
&
getBinTool
() {
return
*
m_bintool
.get();}
65
67
// Internal Storage Classes
68
69
// each bin contains a list of StoredHit objects
70
struct
BinEntry
{
71
BinEntry
() {}
72
void
reset
();
73
void
addHit
(
const
FPGATrackSimBinUtil::StoredHit
&
hit
);
74
unsigned
int
lyrCnt
()
const
{
return
std::popcount(
lyrhit
); };
75
unsigned
int
hitsInLyr
(
unsigned
lyr)
const
;
76
unsigned
int
hitCnt
= 0;
77
layer_bitmask_t
lyrhit
= 0;
78
std::vector<FPGATrackSimBinUtil::StoredHit>
hits
{};
79
};
80
81
// access to binned hits..
82
const
std::vector<FPGATrackSimBinArray<BinEntry>> &
binnedHits
()
const
{
83
return
m_binnedHitsStep
;
84
}
85
const
FPGATrackSimBinArray<BinEntry>
&
lastStepBinnedHits
()
const
{
86
return
m_binnedHitsStep
.back();
87
}
88
89
// Layer Map
90
// structure is indexed on bin, then layer, then a set of modules
91
void
readLayerMap
(
const
std::string & filename);
92
FPGATrackSimBinArray< std::vector <std::set<unsigned>
> >
m_lyr_to_mod_map
;
93
FPGATrackSimBinArray< std::map<unsigned,unsigned>
>
m_mod_to_lyr_map
;
94
95
// structure is list of hits
96
void
readLayerRadii
(
const
std::string & filename);
97
FPGATrackSimBinArray < std::vector < std::pair<double,double> > >
m_lyr_radii
;
98
99
// Number of layers
100
void
setNLayers
(
const
unsigned
&nLayers) {
m_nLayers
= nLayers; }
101
unsigned
getNLayers
()
const
{
return
m_nLayers
;}
102
103
private
:
104
Gaudi::Property<std::string>
m_lyrmapFile
{
this
,
"layerMapFile"
,{
""
},
"use externally defined layer map"
};
105
Gaudi::Property<std::string>
m_lyrradiiFile
{
this
,
"layerRadiiFile"
,{
""
},
"define layers in terms of rz radius instead of modules"
};
106
ServiceHandle<IFPGATrackSimEventSelectionSvc>
m_EvtSel
{
this
,
"FPGATrackSimEventSelectionSvc"
,
""
};
107
108
// Vector of BinEntry for each step
109
std::vector<FPGATrackSimBinArray<BinEntry>>
m_binnedHitsStep
;
110
111
// The tool where the steps are defined
112
ToolHandle<FPGATrackSimBinTool>
m_bintool
{
113
this
,
"BinTool"
,
"FPGATrackSimBinTool"
,
114
"FPGATrackSimBinTool: contains tools describe which parameters are used and each step of binning"
};
115
116
// The number of layers, either set externally from pmap or set by the layerMap
117
unsigned
m_nLayers
{0};
118
};
119
120
#endif
// FPGATrackSimBinnedHits_H
AthAlgTool.h
FPGATrackSimBinArray.h
Iterable Multidimensional Array Class for FPGATrackSimBinTool.
FPGATrackSimBinTool.h
Binning Classes for BinTool.
FPGATrackSimBinUtil.h
Binning Utilities for GenScanTool.
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
layer_bitmask_t
uint32_t layer_bitmask_t
Definition
FPGATrackSimTypes.h:22
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
FPGATrackSimBinArray
Definition
FPGATrackSimBinArray.h:41
FPGATrackSimBinTool
Definition
FPGATrackSimBinTool.h:40
FPGATrackSimBinnedHits::m_lyr_radii
FPGATrackSimBinArray< std::vector< std::pair< double, double > > > m_lyr_radii
Definition
FPGATrackSimBinnedHits.h:97
FPGATrackSimBinnedHits::getBinTool
FPGATrackSimBinTool & getBinTool()
Definition
FPGATrackSimBinnedHits.h:64
FPGATrackSimBinnedHits::m_nLayers
unsigned m_nLayers
Definition
FPGATrackSimBinnedHits.h:117
FPGATrackSimBinnedHits::setNLayers
void setNLayers(const unsigned &nLayers)
Definition
FPGATrackSimBinnedHits.h:100
FPGATrackSimBinnedHits::readLayerMap
void readLayerMap(const std::string &filename)
Definition
FPGATrackSimBinnedHits.cxx:208
FPGATrackSimBinnedHits::m_EvtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Definition
FPGATrackSimBinnedHits.h:106
FPGATrackSimBinnedHits::getNLayers
unsigned getNLayers() const
Definition
FPGATrackSimBinnedHits.h:101
FPGATrackSimBinnedHits::getBinTool
const FPGATrackSimBinTool & getBinTool() const
Definition
FPGATrackSimBinnedHits.h:63
FPGATrackSimBinnedHits::m_lyrradiiFile
Gaudi::Property< std::string > m_lyrradiiFile
Definition
FPGATrackSimBinnedHits.h:105
FPGATrackSimBinnedHits::initBinnedDataArrays
void initBinnedDataArrays()
Definition
FPGATrackSimBinnedHits.cxx:60
FPGATrackSimBinnedHits::binnedHits
const std::vector< FPGATrackSimBinArray< BinEntry > > & binnedHits() const
Definition
FPGATrackSimBinnedHits.h:82
FPGATrackSimBinnedHits::initialize
virtual StatusCode initialize() override
Definition
FPGATrackSimBinnedHits.cxx:22
FPGATrackSimBinnedHits::fill
StatusCode fill(const std::vector< std::shared_ptr< const FPGATrackSimHit > > &hits)
Definition
FPGATrackSimBinnedHits.cxx:82
FPGATrackSimBinnedHits::m_binnedHitsStep
std::vector< FPGATrackSimBinArray< BinEntry > > m_binnedHitsStep
Definition
FPGATrackSimBinnedHits.h:109
FPGATrackSimBinnedHits::m_lyrmapFile
Gaudi::Property< std::string > m_lyrmapFile
Definition
FPGATrackSimBinnedHits.h:104
FPGATrackSimBinnedHits::m_mod_to_lyr_map
FPGATrackSimBinArray< std::map< unsigned, unsigned > > m_mod_to_lyr_map
Definition
FPGATrackSimBinnedHits.h:93
FPGATrackSimBinnedHits::FPGATrackSimBinnedHits
FPGATrackSimBinnedHits(const std::string &algname, const std::string &name, const IInterface *ifc)
Definition
FPGATrackSimBinnedHits.h:52
FPGATrackSimBinnedHits::m_lyr_to_mod_map
FPGATrackSimBinArray< std::vector< std::set< unsigned > > > m_lyr_to_mod_map
Definition
FPGATrackSimBinnedHits.h:92
FPGATrackSimBinnedHits::readLayerRadii
void readLayerRadii(const std::string &filename)
Definition
FPGATrackSimBinnedHits.cxx:256
FPGATrackSimBinnedHits::lastStepBinnedHits
const FPGATrackSimBinArray< BinEntry > & lastStepBinnedHits() const
Definition
FPGATrackSimBinnedHits.h:85
FPGATrackSimBinnedHits::resetBins
void resetBins()
Definition
FPGATrackSimBinnedHits.cxx:72
FPGATrackSimBinnedHits::m_bintool
ToolHandle< FPGATrackSimBinTool > m_bintool
Definition
FPGATrackSimBinnedHits.h:112
ServiceHandle
Definition
ClusterMakerTool.h:36
FPGATrackSimBinUtil::StoredHit
Definition
FPGATrackSimBinUtil.h:92
FPGATrackSimBinnedHits::BinEntry::lyrCnt
unsigned int lyrCnt() const
Definition
FPGATrackSimBinnedHits.h:74
FPGATrackSimBinnedHits::BinEntry::hitsInLyr
unsigned int hitsInLyr(unsigned lyr) const
Definition
FPGATrackSimBinnedHits.cxx:197
FPGATrackSimBinnedHits::BinEntry::lyrhit
layer_bitmask_t lyrhit
Definition
FPGATrackSimBinnedHits.h:77
FPGATrackSimBinnedHits::BinEntry::BinEntry
BinEntry()
Definition
FPGATrackSimBinnedHits.h:71
FPGATrackSimBinnedHits::BinEntry::hitCnt
unsigned int hitCnt
Definition
FPGATrackSimBinnedHits.h:76
FPGATrackSimBinnedHits::BinEntry::reset
void reset()
Definition
FPGATrackSimBinnedHits.cxx:180
FPGATrackSimBinnedHits::BinEntry::addHit
void addHit(const FPGATrackSimBinUtil::StoredHit &hit)
Definition
FPGATrackSimBinnedHits.cxx:187
FPGATrackSimBinnedHits::BinEntry::hits
std::vector< FPGATrackSimBinUtil::StoredHit > hits
Definition
FPGATrackSimBinnedHits.h:78
Generated on
for ATLAS Offline Software by
1.17.0