|
ATLAS Offline Software
|
#include <FastHitConvertTool.h>
|
SG::WriteHandleKey< LArHitContainer > | m_embHitContainerKey {this,"embHitContainername","LArHitEMB","Name of output FastSim LAr EM Barrel Hit Container"} |
|
SG::WriteHandleKey< LArHitContainer > | m_emecHitContainerKey {this,"emecHitContainername","LArHitEMEC","Name of output FastSim LAr EM Endcap Hit Container"} |
|
SG::WriteHandleKey< LArHitContainer > | m_fcalHitContainerKey {this,"fcalHitContainername","LArHitFCAL","Name of output FastSim LAr FCAL Hit Container"} |
|
SG::WriteHandleKey< LArHitContainer > | m_hecHitContainerKey {this,"hecHitContainername","LArHitHEC","Name of output FastSim LAr HEC Hit Container"} |
|
SG::WriteHandleKey< TileHitVector > | m_tileHitVectorKey {this,"tileHitContainername","TileHitVec","Name of output FastSim Tile Hit Container"} |
|
ServiceHandle< StoreGateSvc > | m_storeGateFastCalo |
|
PileUpMergeSvc * | m_pMergeSvc {nullptr} |
|
SG::ReadCondHandleKey< ILArfSampl > | m_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"} |
|
SG::ReadCondHandleKey< TileSamplingFraction > | m_tileSamplingFractionKey |
| Name of TileSamplingFraction in condition store. More...
|
|
ServiceHandle< TileCablingSvc > | m_tileCablingSvc |
| Name of Tile cabling service. More...
|
|
const LArEM_ID * | m_larEmID {nullptr} |
|
const LArFCAL_ID * | m_larFcalID {nullptr} |
|
const LArHEC_ID * | m_larHecID {nullptr} |
|
const TileID * | m_tileID {nullptr} |
|
const TileHWID * | m_tileHWID {nullptr} |
|
const TileCablingService * | m_tileCabling {nullptr} |
|
Gaudi::Property< bool > | m_pileup {this,"doPileup",false,"Pileup mode (default=false)"} |
|
SG::ReadHandleKey< EventInfo > | m_pileup_evt {this,"pileupEventInfo","MyEvent",""} |
|
SG::ReadHandleKey< PileUpEventInfo > | m_pileup_pOverEvent {this,"pileupOverlayEvent","OverlayEvent",""} |
|
This is for the Doxygen-Documentation. Please delete these lines and fill in information about the Algorithm! Please precede every member function declaration with a short Doxygen comment stating the purpose of this function.
- Author
- Bo Liu boliu.nosp@m.@cer.nosp@m.n.ch
Definition at line 50 of file FastHitConvertTool.h.
◆ FastHitConvertTool()
FastHitConvertTool::FastHitConvertTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~FastHitConvertTool()
virtual FastHitConvertTool::~FastHitConvertTool |
( |
| ) |
|
|
inlinevirtual |
◆ initialize()
StatusCode FastHitConvertTool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
standard Athena-Algorithm method
Definition at line 53 of file FastHitConvertTool.cxx.
62 ATH_MSG_DEBUG(
"StoreGateFastCalo Svc structure at Initialisation"<<(*m_storeGateFastCalo).dump());
67 throw std::runtime_error(
"FastHitConvertTool: Invalid LAr EM ID helper");
70 throw std::runtime_error(
"FastHitConvertTool: Invalid FCAL ID helper");
73 throw std::runtime_error(
"FastHitConvertTool: Invalid HEC ID helper");
76 throw std::runtime_error(
"FastHitConvertTool: Invalid Tile ID helper");
98 return StatusCode::SUCCESS;
◆ process()
StatusCode FastHitConvertTool::process |
( |
CaloCellContainer * |
theCellContainer, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
overridevirtual |
standard Athena-Algorithm method
Definition at line 101 of file FastHitConvertTool.cxx.
116 const double minEnergy=1
e-9;
120 double energyConv=0.0;
125 double eLArEMRead=0.0;
126 double eLArHECRead=0.0;
127 double eLArFCALRead=0.0;
128 double eTileRead=0.0;
130 double eLArEMConv=0.0;
131 double eLArHECConv=0.0;
132 double eLArFCALConv=0.0;
133 double eTileConv=0.0;
146 SampFrac=fSampl->
FSAMPL(cellid);
147 energyConv=
energy*SampFrac;
150 eLArEMConv+=energyConv;
153 if(energyConv > minEnergy)
160 embHitContainer->push_back(
new LArHit(cellid,energyConv,
hitTime));
165 emecHitContainer->push_back(
new LArHit(cellid,energyConv,
hitTime));
182 SampFrac=fSampl->
FSAMPL(cellid);
183 energyConv=
energy*SampFrac;
186 eLArHECConv+=energyConv;
190 if(energyConv>minEnergy)
195 hecHitContainer->push_back(
new LArHit(cellid,energyConv,
hitTime));
209 SampFrac=fSampl->
FSAMPL(cellid);
210 energyConv=
energy*SampFrac;
213 eLArHECConv+=energyConv;
216 if(energyConv>minEnergy)
221 fcalHitContainer->push_back(
new LArHit(cellid,energyConv,
hitTime));
228 ATH_CHECK( tileSamplingFraction.isValid() );
249 SampFrac = tileSamplingFraction->getSamplingFraction(drawerIdx,
channel);
250 energyConv=
energy/SampFrac;
253 eTileConv+=energyConv;
257 if(energyConv>minEnergy)
268 tileHitVector->push_back(
TileHit(pmt_id0,energyConv/2.0,
hitTime));
269 tileHitVector->push_back(
TileHit(pmt_id1,energyConv/2.0,
hitTime));
275 ATH_MSG_DEBUG(
"eReadTot= "<<eLArEMRead+eLArHECRead+eLArFCALRead+eTileRead);
276 ATH_MSG_DEBUG(
"eLArEMRead= "<<eLArEMRead<<
" eLArHECRead= "<<eLArHECRead<<
" eLArFCALRead= "<<eLArFCALRead<<
" eTileRead= "<<eTileRead);
277 ATH_MSG_DEBUG(
"eConvTot= "<<eLArEMConv+eLArHECConv+eLArFCALConv+eTileConv);
278 ATH_MSG_DEBUG(
"eLArEMConv= "<<eLArEMConv<<
" eLArHECConv= "<<eLArHECConv<<
"eLArFCALConv"<<eLArFCALConv<<
"eTileConv"<<eTileConv);
281 ATH_MSG_DEBUG(embHitContainer.name()<<
" : "<<embHitContainer->size()<<
" hits ");
282 ATH_MSG_DEBUG(emecHitContainer.name()<<
" : "<<emecHitContainer->size()<<
" hits ");
283 ATH_MSG_DEBUG(fcalHitContainer.name()<<
" : "<<fcalHitContainer->size()<<
" hits ");
284 ATH_MSG_DEBUG(hecHitContainer.name()<<
" : "<<hecHitContainer->size()<<
" hits ");
285 ATH_MSG_DEBUG(tileHitVector.name()<<
" : "<<tileHitVector->size()<<
" hits ");
289 CHECK((*m_storeGateFastCalo).clearStore(
true));
295 if (Gaudi::Concurrency::ConcurrencyFlags::numConcurrentEvents() > 1) {
296 ATH_MSG_ERROR (
"FastHitConvertTool doesn't support pileup in AthenaMT");
297 return StatusCode::FAILURE;
304 return StatusCode::SUCCESS;
◆ m_embHitContainerKey
◆ m_emecHitContainerKey
◆ m_fcalHitContainerKey
◆ m_fSamplKey
◆ m_hecHitContainerKey
◆ m_larEmID
◆ m_larFcalID
◆ m_larHecID
◆ m_pileup
Gaudi::Property<bool> FastHitConvertTool::m_pileup {this,"doPileup",false,"Pileup mode (default=false)"} |
|
private |
◆ m_pileup_evt
◆ m_pileup_pOverEvent
◆ m_pMergeSvc
◆ m_storeGateFastCalo
◆ m_tileCabling
◆ m_tileCablingSvc
Initial value:{ this,
"TileCablingSvc", "TileCablingSvc", "Tile cabling service"}
Name of Tile cabling service.
Definition at line 87 of file FastHitConvertTool.h.
◆ m_tileHitVectorKey
◆ m_tileHWID
◆ m_tileID
◆ m_tileSamplingFractionKey
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
Const iterator class for DataVector/DataList.
bool is_lar_fcal(Identifier id) const
const LArEM_ID * getEM_ID(void) const
const std::string & key() const
Return the StoreGate ID for the referenced object.
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
const TileID * getTileID(void) const
const LArHEC_ID * getHEC_ID(void) const
bool is_tile_gapscin(const Identifier &id) const
This class initializes the Calo (LAr and Tile) offline identifiers.
std::vector< HWIdentifier >::iterator it1
virtual const float & FSAMPL(const HWIdentifier &id) const =0
const LArFCAL_ID * getFCAL_ID(void) const
void addSubEvt(time_type t, PileUpTimeEventIndex::PileUpType puType, const EventInfo *pse, StoreGateSvc *psg)
setter for the subEvt collection t=0(ns) for the original event
#define CHECK(...)
Evaluate an expression and check for errors.
bool is_tile(Identifier id) const
bool is_lar_hec(Identifier id) const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
int drawerIdx(const HWIdentifier &id) const
construct drawer index from HW identifier
This class provides general information about an event. Event information is provided by the accessor...
StatusCode initialize(bool used=true)
Class to store hit energy and time in LAr cell from G4 simulation.
This class provides information about an overlaid event. It extends EventInfo with a list of sub-evts...
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
Identifier pmt_id(const Identifier &any_id) const
#define ATLAS_THREAD_SAFE
float hitTime(const AFP_SIDSimHit &hit)
bool is_lar_em(Identifier id) const
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
HWIdentifier s2h_channel_id(const Identifier &id) const