 |
ATLAS Offline Software
|
#include <TRTDigitizationTool.h>
|
CLHEP::HepRandomEngine * | getRandomEngine (const std::string &streamName, const EventContext &ctx) const |
|
CLHEP::HepRandomEngine * | getRandomEngine (const std::string &streamName, unsigned long int randomSeedOffset, const EventContext &ctx) const |
|
Identifier | getIdentifier (int hitID, IdentifierHash &hashId, Identifier &layerID, bool &statusok) const |
|
StatusCode | lateInitialize (const EventContext &ctx) |
|
StatusCode | processStraws (const EventContext &ctx, TimedHitCollection< TRTUncompressedHit > &thpctrt, std::set< int > &sim_hitids, std::set< Identifier > &simhitsIdentifiers, CLHEP::HepRandomEngine *rndmEngine, CLHEP::HepRandomEngine *strawRndmEngine, CLHEP::HepRandomEngine *elecProcRndmEngine, CLHEP::HepRandomEngine *elecNoiseRndmEngine, CLHEP::HepRandomEngine *paiRndmEngine) |
|
StatusCode | createAndStoreRDOs () |
|
|
ToolHandle< ITRT_PAITool > | m_TRTpaiToolXe {this, "PAI_Tool_Xe", "TRT_PAI_Process_Xe", "The PAI model for ionisation in the TRT Xe gas"} |
| Configurable properties. More...
|
|
ToolHandle< ITRT_PAITool > | m_TRTpaiToolAr {this, "PAI_Tool_Ar", "TRT_PAI_Process_Ar", "The PAI model for ionisation in the TRT Ar gas"} |
|
ToolHandle< ITRT_PAITool > | m_TRTpaiToolKr {this, "PAI_Tool_Kr", "TRT_PAI_Process_Kr", "The PAI model for ionisation in the TRT Kr gas"} |
|
ToolHandle< ITRT_SimDriftTimeTool > | m_TRTsimdrifttimetool {this, "SimDriftTimeTool", "TRT_SimDriftTimeTool", "Drift time versus distance (r-t-relation) for TRT straws"} |
|
ToolHandle< ITRT_StrawStatusSummaryTool > | m_sumTool {this, "InDetTRTStrawStatusSummaryTool", "TRT_StrawStatusSummaryTool", ""} |
|
ToolHandle< ITRT_CalDbTool > | m_calDbTool {this, "InDetTRTCalDbTool", "TRT_CalDbTool", ""} |
|
ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "MergeSvc", "PileUpMergeSvc", "Merge service"} |
|
ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
| Random number service. More...
|
|
ServiceHandle< ITRT_StrawNeighbourSvc > | m_TRTStrawNeighbourSvc {this, "TRT_StrawNeighbourSvc", "TRT_StrawNeighbourSvc", ""} |
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCacheCondObjInputKey |
|
Gaudi::Property< bool > | m_onlyUseContainerName {this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."} |
|
SG::ReadHandleKey< TRTUncompressedHitCollection > | m_hitsContainerKey {this, "DataObjectName", "TRTUncompressedHits", "Data Object Name"} |
|
std::string | m_dataObjectName {""} |
|
SG::WriteHandleKey< TRT_RDO_Container > | m_outputRDOCollName {this,"OutputObjectName","TRT_RDOs","WHK Output Object name"} |
| name of the output RDOs. More...
|
|
SG::WriteHandleKey< InDetSimDataCollection > | m_outputSDOCollName {this,"OutputSDOName","TRT_SDO_Map","WHK Output SDO container name"} |
| name of the output SDOs. More...
|
|
SG::WriteHandle< TRT_RDO_Container > | m_trtrdo_container |
|
Gaudi::Property< bool > | m_printOverrideableSettings {this, "PrintOverrideableSettings", false, "Print overrideable settings"} |
|
Gaudi::Property< bool > | m_printUsedDigSettings {this, "PrintDigSettings", true, "Print ditigization settings"} |
|
Gaudi::Property< int > | m_HardScatterSplittingMode {this, "HardScatterSplittingMode", 0, ""} |
|
Gaudi::Property< int > | m_UseGasMix {this, "UseGasMix", 0, ""} |
|
Gaudi::Property< unsigned long int > | m_randomSeedOffset {this, "RandomSeedOffset", 678910, ""} |
|
TRTDigSettings * | m_settings {} |
|
std::vector< std::pair< unsigned int, int > > | m_seen |
|
std::vector< TRTDigit > | m_vDigits |
| Vector of all digits. More...
|
|
TRTElectronicsProcessing * | m_pElectronicsProcessing {} |
|
TRTProcessingOfStraw * | m_pProcessingOfStraw {} |
|
TRTDigCondBase * | m_pDigConditions {} |
|
TRTNoise * | m_pNoise {} |
|
const InDetDD::TRT_DetectorManager * | m_manager {} |
|
const TRT_ID * | m_trt_id {} |
| TRT Id Helper. More...
|
|
std::vector< TRTUncompressedHitCollection * > | m_trtHitCollList |
|
TimedHitCollection< TRTUncompressedHit > * | m_thpctrt {} |
|
bool | m_alreadyPrintedPDGcodeWarning {false} |
|
double | m_minCrossingTimeSDO {0.0} |
|
double | m_maxCrossingTimeSDO {0.0} |
|
double | m_minpileuptruthEkin {0.0} |
|
double | m_cosmicEventPhase {0.0} |
|
ServiceHandle< IPartPropSvc > | m_ppSvc {this, "PartPropSvc", "PartPropSvc"} |
| Handle on the particle property service. More...
|
|
const HepPDT::ParticleDataTable * | m_particleTable {} |
|
bool | m_first_event {true} |
|
bool | m_HardScatterSplittingSkipper {false} |
|
Definition at line 63 of file TRTDigitizationTool.h.
◆ TRTDigitizationTool()
TRTDigitizationTool::TRTDigitizationTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~TRTDigitizationTool()
TRTDigitizationTool::~TRTDigitizationTool |
( |
| ) |
|
◆ createAndStoreRDOs()
StatusCode TRTDigitizationTool::createAndStoreRDOs |
( |
| ) |
|
|
private |
Definition at line 684 of file TRTDigitizationTool.cxx.
687 std::vector<TRTDigit>::const_iterator TRTDigitIter(
m_vDigits.begin());
688 std::vector<TRTDigit>::const_iterator endOfTRTDigits(
m_vDigits.end());
697 while (TRTDigitIter != endOfTRTDigits) {
698 ATH_MSG_DEBUG (
"Digit ID " << TRTDigitIter->GetStrawID() <<
" Digit " << TRTDigitIter->GetDigit() );
701 bool identifierOK(
false);
702 idStraw =
getIdentifier(TRTDigitIter->GetStrawID(), IdHash, layer_id, identifierOK);
704 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (2)" );
717 if (IdHash != IdHashOld) {
719 ATH_MSG_DEBUG (
"New TRT RDO Collection created with IdHash " <<
static_cast<int>(IdHash) );
721 RDOColl->setIdentifier(layer_id);
724 if (
m_trtrdo_container->addCollection(RDOColl, RDOColl->identifyHash()).isFailure()) {
726 return StatusCode::FAILURE;
735 RDOColl->push_back(p_rdo);
737 ATH_MSG_FATAL (
"Failed to create the TRT_RDO_Collection before trying to add an RDO to it! IdHash = " <<
static_cast<int>(IdHash) );
739 return StatusCode::FAILURE;
745 return StatusCode::SUCCESS;
◆ DeclareInterfaceID()
IPileUpTool::DeclareInterfaceID |
( |
IPileUpTool |
, |
|
|
1 |
, |
|
|
0 |
|
|
) |
| |
|
inherited |
Creates the InterfaceID and interfaceID() method.
◆ filterPassed() [1/2]
virtual bool IPileUpTool::filterPassed |
( |
| ) |
const |
|
pure virtualinherited |
flags whether the event should be removed or not
◆ filterPassed() [2/2]
virtual bool PileUpToolBase::filterPassed |
( |
| ) |
const |
|
inlineoverridevirtualinherited |
◆ finalize()
StatusCode TRTDigitizationTool::finalize |
( |
| ) |
|
|
finaloverridevirtual |
◆ getCosmicEventPhase()
double TRTDigitizationTool::getCosmicEventPhase |
( |
CLHEP::HepRandomEngine * |
rndmEngine | ) |
|
|
staticprivate |
◆ getIdentifier()
Definition at line 750 of file TRTDigitizationTool.cxx.
759 const int mask(0x0000001F);
760 const int word_shift(5);
761 int trtID, ringID, moduleID, layerID, strawID;
762 int wheelID, planeID, sectorID;
767 if ( !(hitID & 0x00200000) ) {
768 strawID = hitID &
mask;
769 hitID >>= word_shift;
770 layerID = hitID &
mask;
771 hitID >>= word_shift;
772 moduleID = hitID &
mask;
773 hitID >>= word_shift;
774 ringID = hitID &
mask;
775 trtID = hitID >> word_shift;
778 if ( barrelElement ) {
780 IdLayer = barrelElement->
identify();
783 ATH_MSG_ERROR (
"Could not find detector element for barrel identifier with "
784 <<
"(ipos,iring,imod,ilayer,istraw) = ("
785 << trtID <<
", " << ringID <<
", " << moduleID <<
", "
786 << layerID <<
", " << strawID <<
")" );
790 strawID = hitID &
mask;
791 hitID >>= word_shift;
792 planeID = hitID &
mask;
793 hitID >>= word_shift;
794 sectorID = hitID &
mask;
795 hitID >>= word_shift;
796 wheelID = hitID &
mask;
797 trtID = hitID >> word_shift;
800 if (trtID == 3) { trtID = 0; }
805 if ( endcapElement ) {
807 IdLayer = endcapElement->
identify();
810 ATH_MSG_ERROR (
"Could not find detector element for endcap identifier with "
811 <<
"(ipos,iwheel,isector,iplane,istraw) = ("
812 << trtID <<
", " << wheelID <<
", " << sectorID <<
", "
813 << planeID <<
", " << strawID <<
")" );
814 ATH_MSG_ERROR (
"If this happens very rarely, don't be alarmed (it is a Geant4 'feature')" );
815 ATH_MSG_ERROR (
"If it happens a lot, you probably have misconfigured geometry in the sim. job." );
◆ getRandomEngine() [1/2]
CLHEP::HepRandomEngine * TRTDigitizationTool::getRandomEngine |
( |
const std::string & |
streamName, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
private |
◆ getRandomEngine() [2/2]
CLHEP::HepRandomEngine * TRTDigitizationTool::getRandomEngine |
( |
const std::string & |
streamName, |
|
|
unsigned long int |
randomSeedOffset, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
private |
◆ initialize()
StatusCode TRTDigitizationTool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
Initialize.
Get the PAI Tool for Xe, Ar, Kr gas mixtures:
Get the Sim-DriftTime Tool:
Reimplemented from PileUpToolBase.
Definition at line 76 of file TRTDigitizationTool.cxx.
112 return StatusCode::FAILURE;
166 return StatusCode::SUCCESS;
◆ lateInitialize()
StatusCode TRTDigitizationTool::lateInitialize |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 225 of file TRTDigitizationTool.cxx.
264 noiseThreshRndmEngine,
265 noiseElecResetRndmEngine,
293 pTRTsimdrifttimetool,
305 return StatusCode::SUCCESS;
◆ mergeEvent()
StatusCode TRTDigitizationTool::mergeEvent |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
called at the end of the subevts loop. Not (necessarily) able to access SubEvents
Reimplemented from IPileUpTool.
Definition at line 602 of file TRTDigitizationTool.cxx.
606 ATH_MSG_DEBUG(
"mergeEvent: there are " << ii->first <<
" events in bunch xing " << ii->second );
612 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
613 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
614 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
615 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
616 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
621 return StatusCode::FAILURE;
634 return StatusCode::FAILURE;
640 std::set<int> sim_hitids;
641 std::set<Identifier> simhitsIdentifiers;
645 ATH_CHECK(this->
processStraws(ctx, *
m_thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
654 const unsigned int numberOfDigitsBeforeNoise(
m_vDigits.size());
674 return StatusCode::FAILURE;
680 return StatusCode::SUCCESS;
◆ prepareEvent()
StatusCode TRTDigitizationTool::prepareEvent |
( |
const EventContext & |
ctx, |
|
|
const unsigned int |
nInputEvents |
|
) |
| |
|
finaloverridevirtual |
return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing
Reimplemented from IPileUpTool.
Definition at line 170 of file TRTDigitizationTool.cxx.
176 return StatusCode::SUCCESS;
◆ processAllSubEvents() [1/2]
StatusCode TRTDigitizationTool::processAllSubEvents |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
Perform digitization:
- Get G4 hits
- Process hits straw by straw [call
ProcessStraw()
]
- Add noise
- Create RDO collection
Implements IPileUpTool.
Definition at line 461 of file TRTDigitizationTool.cxx.
465 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
466 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
467 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
468 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
469 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
474 return StatusCode::FAILURE;
480 ATH_MSG_DEBUG (
"TRTDigitizationTool::processAllSubEvents()" );
488 return StatusCode::FAILURE;
501 if (!hitCollection.isValid()) {
502 ATH_MSG_ERROR(
"Could not get TRTUncompressedHitCollection container " << hitCollection.name() <<
" from store " << hitCollection.store());
503 return StatusCode::FAILURE;
510 thpctrt.
insert(0, hitCollection.cptr());
511 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollection->size() <<
" hits");
514 TimedHitCollList hitCollList;
515 unsigned int numberOfSimHits(0);
516 if ( !(
m_mergeSvc->retrieveSubEvtsData(
m_dataObjectName, hitCollList, numberOfSimHits).isSuccess()) && hitCollList.empty() ) {
518 return StatusCode::FAILURE;
524 thpctrt.
reserve(numberOfSimHits);
531 while ( iColl != endColl ) {
537 thpctrt.
insert(iColl->first, p_collection);
538 ATH_MSG_DEBUG (
"TRTUncompressedHitCollection found with " << p_collection->size() <<
" hits" );
544 std::set<int> sim_hitids;
545 std::set<Identifier> simhitsIdentifiers;
548 ATH_CHECK(this->
processStraws(ctx, thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
554 const int numberOfDigitsBeforeNoise(
m_vDigits.size());
574 return StatusCode::FAILURE;
580 return StatusCode::SUCCESS;
◆ processAllSubEvents() [2/2]
virtual StatusCode IPileUpTool::processAllSubEvents |
|
inherited |
dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface.
◆ processBunchXing()
called for each active bunch-crossing to process current SubEvents bunchXing is in ns
Implements IPileUpTool.
Definition at line 180 of file TRTDigitizationTool.cxx.
194 TimedHitCollList hitCollList;
197 bSubEvents, eSubEvents).isSuccess()) &&
198 hitCollList.empty()) {
200 return StatusCode::FAILURE;
202 ATH_MSG_VERBOSE(hitCollList.size() <<
" TRTUncompressedHitCollection with key " <<
209 for( ; iColl != endColl; ++iColl){
212 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollPtr->
size() <<
215 <<
" index: " << timeIndex.index()
216 <<
" type: " << timeIndex.type());
221 return StatusCode::SUCCESS;
◆ processStraws()
StatusCode TRTDigitizationTool::processStraws |
( |
const EventContext & |
ctx, |
|
|
TimedHitCollection< TRTUncompressedHit > & |
thpctrt, |
|
|
std::set< int > & |
sim_hitids, |
|
|
std::set< Identifier > & |
simhitsIdentifiers, |
|
|
CLHEP::HepRandomEngine * |
rndmEngine, |
|
|
CLHEP::HepRandomEngine * |
strawRndmEngine, |
|
|
CLHEP::HepRandomEngine * |
elecProcRndmEngine, |
|
|
CLHEP::HepRandomEngine * |
elecNoiseRndmEngine, |
|
|
CLHEP::HepRandomEngine * |
paiRndmEngine |
|
) |
| |
|
private |
Definition at line 309 of file TRTDigitizationTool.cxx.
329 if (fieldCondObj ==
nullptr) {
331 return StatusCode::FAILURE;
333 fieldCondObj->getInitializedCache (fieldCache);
339 ATH_CHECK(simDataMap.record(std::make_unique<InDetSimDataCollection>() ));
342 if (not simDataMap.isValid()) {
344 return StatusCode::FAILURE;
355 std::vector<InDetSimData::Deposit> depositVector(100);
361 int hitID((*i)->GetHitID());
368 sim_hitids.insert(hitID);
371 if ( hitID & 0xc0000000 ) {
372 ATH_MSG_ERROR (
"Hit ID not Valid (" << MSG::hex << hitID <<
")" << MSG::dec );
381 if ( !identifierOK ) {
382 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (1)" );
387 simhitsIdentifiers.insert(idStraw);
391 depositVector.clear();
396 (*hit_iter)->GetEnergyDeposit() );
400 ATH_MSG_VERBOSE (
"Deposit: trackID " << deposit.first <<
" energyDeposit " << deposit.second );
401 depositVector.emplace_back(std::move(deposit));
405 const double bunchCrossingTime(
hitTime(theHit) -
static_cast<double>(theHit->GetGlobalTime()));
408 if ( !depositVector.empty() &&
411 simDataMap->try_emplace(idStraw, std::move(depositVector));
428 bool emulateArFlag =
m_sumTool->getStatusHT(idStraw, ctx) == 6;
429 bool emulateKrFlag =
m_sumTool->getStatusHT(idStraw, ctx) == 7;
430 const int statusHT =
m_sumTool->getStatusHT(idStraw, ctx);
457 return StatusCode::SUCCESS;
◆ resetFilter() [1/2]
virtual void PileUpToolBase::resetFilter |
( |
| ) |
|
|
inlineoverridevirtualinherited |
◆ resetFilter() [2/2]
virtual void IPileUpTool::resetFilter |
( |
| ) |
|
|
pure virtualinherited |
◆ toProcess() [1/2]
virtual bool IPileUpTool::toProcess |
( |
int |
bunchXing | ) |
const |
|
pure virtualinherited |
flags whether this tool is "live" for bunchXing (time in ns) implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing
◆ toProcess() [2/2]
virtual bool PileUpToolBase::toProcess |
( |
int |
bunchXing | ) |
const |
|
inlineoverridevirtualinherited |
◆ m_alreadyPrintedPDGcodeWarning
bool TRTDigitizationTool::m_alreadyPrintedPDGcodeWarning {false} |
|
private |
◆ m_calDbTool
◆ m_cosmicEventPhase
double TRTDigitizationTool::m_cosmicEventPhase {0.0} |
|
private |
◆ m_dataObjectName
std::string TRTDigitizationTool::m_dataObjectName {""} |
|
private |
◆ m_fieldCacheCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 132 of file TRTDigitizationTool.h.
◆ m_filterPassed
bool PileUpToolBase::m_filterPassed {true} |
|
protectedinherited |
◆ m_first_event
bool TRTDigitizationTool::m_first_event {true} |
|
private |
◆ m_firstXing
Gaudi::Property<int> PileUpToolBase::m_firstXing |
|
protectedinherited |
Initial value:{this, "FirstXing", -999,
"First bunch-crossing in which det is live"}
Definition at line 54 of file PileUpToolBase.h.
◆ m_HardScatterSplittingMode
Gaudi::Property<int> TRTDigitizationTool::m_HardScatterSplittingMode {this, "HardScatterSplittingMode", 0, ""} |
|
private |
◆ m_HardScatterSplittingSkipper
bool TRTDigitizationTool::m_HardScatterSplittingSkipper {false} |
|
private |
◆ m_hitsContainerKey
◆ m_lastXing
Gaudi::Property<int> PileUpToolBase::m_lastXing |
|
protectedinherited |
Initial value:{this, "LastXing", 999,
"Last bunch-crossing in which det is live"}
Definition at line 56 of file PileUpToolBase.h.
◆ m_manager
◆ m_maxCrossingTimeSDO
double TRTDigitizationTool::m_maxCrossingTimeSDO {0.0} |
|
private |
◆ m_mergeSvc
◆ m_minCrossingTimeSDO
double TRTDigitizationTool::m_minCrossingTimeSDO {0.0} |
|
private |
◆ m_minpileuptruthEkin
double TRTDigitizationTool::m_minpileuptruthEkin {0.0} |
|
private |
◆ m_onlyUseContainerName
Gaudi::Property<bool> TRTDigitizationTool::m_onlyUseContainerName {this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."} |
|
private |
◆ m_outputRDOCollName
◆ m_outputSDOCollName
◆ m_particleTable
const HepPDT::ParticleDataTable* TRTDigitizationTool::m_particleTable {} |
|
private |
◆ m_pDigConditions
◆ m_pElectronicsProcessing
◆ m_pNoise
TRTNoise* TRTDigitizationTool::m_pNoise {} |
|
private |
◆ m_pProcessingOfStraw
◆ m_ppSvc
ServiceHandle<IPartPropSvc> TRTDigitizationTool::m_ppSvc {this, "PartPropSvc", "PartPropSvc"} |
|
private |
◆ m_printOverrideableSettings
Gaudi::Property<bool> TRTDigitizationTool::m_printOverrideableSettings {this, "PrintOverrideableSettings", false, "Print overrideable settings"} |
|
private |
◆ m_printUsedDigSettings
Gaudi::Property<bool> TRTDigitizationTool::m_printUsedDigSettings {this, "PrintDigSettings", true, "Print ditigization settings"} |
|
private |
◆ m_randomSeedOffset
Gaudi::Property<unsigned long int> TRTDigitizationTool::m_randomSeedOffset {this, "RandomSeedOffset", 678910, ""} |
|
private |
◆ m_rndmSvc
◆ m_seen
std::vector<std::pair<unsigned int, int> > TRTDigitizationTool::m_seen |
|
private |
◆ m_settings
◆ m_sumTool
◆ m_thpctrt
◆ m_trt_id
◆ m_trtHitCollList
◆ m_TRTpaiToolAr
ToolHandle<ITRT_PAITool> TRTDigitizationTool::m_TRTpaiToolAr {this, "PAI_Tool_Ar", "TRT_PAI_Process_Ar", "The PAI model for ionisation in the TRT Ar gas"} |
|
private |
◆ m_TRTpaiToolKr
ToolHandle<ITRT_PAITool> TRTDigitizationTool::m_TRTpaiToolKr {this, "PAI_Tool_Kr", "TRT_PAI_Process_Kr", "The PAI model for ionisation in the TRT Kr gas"} |
|
private |
◆ m_TRTpaiToolXe
ToolHandle<ITRT_PAITool> TRTDigitizationTool::m_TRTpaiToolXe {this, "PAI_Tool_Xe", "TRT_PAI_Process_Xe", "The PAI model for ionisation in the TRT Xe gas"} |
|
private |
◆ m_trtrdo_container
◆ m_TRTsimdrifttimetool
◆ m_TRTStrawNeighbourSvc
◆ m_UseGasMix
Gaudi::Property<int> TRTDigitizationTool::m_UseGasMix {this, "UseGasMix", 0, ""} |
|
private |
◆ m_vDigits
std::vector<TRTDigit> TRTDigitizationTool::m_vDigits |
|
private |
◆ m_vetoPileUpTruthLinks
Gaudi::Property<int> PileUpToolBase::m_vetoPileUpTruthLinks |
|
protectedinherited |
Initial value:{this, "VetoPileUpTruthLinks", true,
"Ignore links to suppressed pile-up truth"}
Definition at line 58 of file PileUpToolBase.h.
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
double pileUpSDOsMinEkin() const
Get minimum Ekin for pileup track to enter MC-truth.
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
bool getT0FromData() const
bool doCosmicTimingPit() const
Cosmics timing corresponding to pit setup?
unsigned GetDigit() const
Get digit.
bool useMagneticFieldMap() const
const TRT_BarrelElement * getBarrelElement(unsigned int positive, unsigned int moduleIndex, unsigned int phiIndex, unsigned int strawLayerIndex) const
Access Barrel Elements:---------------—(Fast)-------------------------—.
static void sortDigits(std::vector< TRTDigit > &digitVect)
void appendCrossTalkNoiseToProperDigits(std::vector< TRTDigit > &digitVect, const std::set< Identifier > &simhitsIdentifiers, const ServiceHandle< ITRT_StrawNeighbourSvc > &m_TRTStrawNeighbourSvc, CLHEP::HepRandomEngine *noiseRndmEngine)
void printFlagsForOverrideableParameters(const std::string &front="") const
Print TRT digitization settings overrideable parameters.
void addPropertiesForOverrideableParameters(Algorithm *alg)
Add properties for overrideable parameters.
bool noiseInUnhitStraws() const
Query whether simulation of noise in unhit straws.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool ignoreTruthLink(const T &p, bool vetoPileUp)
Helper function for SDO creation in PileUpTools.
bool nextDetectorElement(const_iterator &b, const_iterator &e)
sets an iterator range with the hits of current detector element returns a bool when done
std::list< value_t > type
type of the collection of timed data object
"Fake" straw map until "real" map is known.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Simulate TRT Electronics Noise For description of metod, see Thomas Kittelmanns PhD thesis chapters ...
InDetRawDataCollection< TRT_RDORawData > TRT_RDO_Collection
void appendPureNoiseToProperDigits(std::vector< TRTDigit > &digitVect, const std::set< int > &sim_hitids, CLHEP::HepRandomEngine *noiseRndmEngine)
Append noise digits to list of digits from proper hits.
void insert(const PileUpTimeEventIndex &timeEventIndex, const AtlasHitsVector< HIT > *inputCollection)
void reserve(unsigned int numberOfHits)
reserve a timed vector numberOfHits in size.
Simulation of noise hits in the TRT.
const Version & getVersion() const
Get version information.
int majorNum() const
Major version number.
virtual Identifier identify() const override final
identifier of this detector element:
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual IdentifierHash identifyHash() const override final
identifier hash
bool noiseInSimhits() const
Query whether simulation of noise in hit straws.
TRT Digitization: Processing of a TRT Straws.
void ProcessStraw(MagField::AtlasFieldCache &fieldCache, hitCollConstIter i, hitCollConstIter e, TRTDigit &outdigit, bool &m_alreadyPrintedPDGcodeWarning, double m_cosmicEventPhase, int strawGasType, bool emulationArflag, bool emulationKrflag, CLHEP::HepRandomEngine *rndmEngine, CLHEP::HepRandomEngine *elecProcRndmEngine, CLHEP::HepRandomEngine *elecNoiseRndmEngine, CLHEP::HepRandomEngine *paiRndmEngine)
Process this straw all the way from Geant4 hit to output digit.
const TRT_EndcapElement * getEndcapElement(unsigned int positive, unsigned int wheelIndex, unsigned int strawLayerIndex, unsigned int phiIndex) const
Access Endcap Elements:---------------—(Fast)--------------------------—.
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
A wrapper class for event-slot-local random engines.
static HepMcParticleLink getRedirectedLink(const HepMcParticleLink &particleLink, uint32_t eventIndex, const EventContext &ctx)
Return a HepMcParticleLink pointing at the same particle, but in a different GenEvent.
StatusCode initialize(bool used=true)
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
unsigned int storeSDO() const
double timeInterval() const
Get time interval covered by each digit.
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
void print(const std::string &front="") const
Printing of TRT digitization settings.
void initialize(const InDetDD::TRT_DetectorManager *detmgr)
Initialize: fill defaults and overwrite by user values where appropriate.
int StrawGasType(int statusHT, int useGasMix, MsgStream *log)
float hitTime(const AFP_SIDSimHit &hit)
Class containing parameters and settings used by TRT digitization.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
size_type straw_layer_hash_max() const
std::pair< HepMcParticleLink, float > Deposit
bool doCrosstalk() const
Switch on crosstalk noise based on Cosmic 08 measurements.
a struct encapsulating the identifier of a pile-up event
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
float strawAverageNoiseLevel() const
Get average noise level in straw.
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
void initialize(CLHEP::HepRandomEngine *rndmEngine)
AtlasHitsVector< TRTUncompressedHit > TRTUncompressedHitCollection