![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
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 | ConditionsDependingInitialization (const EventContext &ctx) |
|
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} |
|
const HepPDT::ParticleDataTable * | m_particleTable {} |
|
SG::ReadCondHandleKey< AthenaAttributeList > | m_digverscontainerkey { this, "DigVersContainerKey", "", "" } |
|
bool | m_first_event {true} |
|
bool | m_HardScatterSplittingSkipper {false} |
|
Definition at line 65 of file TRTDigitizationTool.h.
◆ TRTDigitizationTool()
TRTDigitizationTool::TRTDigitizationTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~TRTDigitizationTool()
TRTDigitizationTool::~TRTDigitizationTool |
( |
| ) |
|
◆ ConditionsDependingInitialization()
StatusCode TRTDigitizationTool::ConditionsDependingInitialization |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 872 of file TRTDigitizationTool.cxx.
875 int dig_vers_from_condDB = (**digvers)[
"TRT_Dig_Vers"].data<
int>();
877 if (dig_vers_from_condDB!=0) {
880 ATH_MSG_INFO (
"Retrieved TRT_Settings from CondDB with TRT digitization version: digversion = " <<
881 dig_vers_from_condDB );
883 ATH_MSG_WARNING (
"Unknown TRT digitization version: digversion = " << dig_vers_from_condDB <<
884 " read from CondDB. Overriding to use default from Det Desc tag: " <<
889 ATH_MSG_WARNING (
"TRT digitization version: digversion = " << dig_vers_from_condDB <<
890 " read from CondDB. Overriding to use default from Det Desc tag: " <<
894 return StatusCode::SUCCESS;
◆ createAndStoreRDOs()
StatusCode TRTDigitizationTool::createAndStoreRDOs |
( |
| ) |
|
|
private |
Definition at line 718 of file TRTDigitizationTool.cxx.
721 std::vector<TRTDigit>::const_iterator TRTDigitIter(
m_vDigits.begin());
722 std::vector<TRTDigit>::const_iterator endOfTRTDigits(
m_vDigits.end());
731 while (TRTDigitIter != endOfTRTDigits) {
732 ATH_MSG_DEBUG (
"Digit ID " << TRTDigitIter->GetStrawID() <<
" Digit " << TRTDigitIter->GetDigit() );
735 bool identifierOK(
false);
736 idStraw =
getIdentifier(TRTDigitIter->GetStrawID(), IdHash, layer_id, identifierOK);
738 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (2)" );
751 if (IdHash != IdHashOld) {
753 ATH_MSG_DEBUG (
"New TRT RDO Collection created with IdHash " <<
static_cast<int>(IdHash) );
755 RDOColl->setIdentifier(layer_id);
758 if (
m_trtrdo_container->addCollection(RDOColl, RDOColl->identifyHash()).isFailure()) {
760 return StatusCode::FAILURE;
769 RDOColl->push_back(p_rdo);
771 ATH_MSG_FATAL (
"Failed to create the TRT_RDO_Collection before trying to add an RDO to it! IdHash = " <<
static_cast<int>(IdHash) );
773 return StatusCode::FAILURE;
779 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 784 of file TRTDigitizationTool.cxx.
793 const int mask(0x0000001F);
794 const int word_shift(5);
795 int trtID, ringID, moduleID, layerID, strawID;
796 int wheelID, planeID, sectorID;
801 if ( !(hitID & 0x00200000) ) {
802 strawID = hitID &
mask;
803 hitID >>= word_shift;
804 layerID = hitID &
mask;
805 hitID >>= word_shift;
806 moduleID = hitID &
mask;
807 hitID >>= word_shift;
808 ringID = hitID &
mask;
809 trtID = hitID >> word_shift;
812 if ( barrelElement ) {
814 IdLayer = barrelElement->
identify();
817 ATH_MSG_ERROR (
"Could not find detector element for barrel identifier with "
818 <<
"(ipos,iring,imod,ilayer,istraw) = ("
819 << trtID <<
", " << ringID <<
", " << moduleID <<
", "
820 << layerID <<
", " << strawID <<
")" );
824 strawID = hitID &
mask;
825 hitID >>= word_shift;
826 planeID = hitID &
mask;
827 hitID >>= word_shift;
828 sectorID = hitID &
mask;
829 hitID >>= word_shift;
830 wheelID = hitID &
mask;
831 trtID = hitID >> word_shift;
834 if (trtID == 3) { trtID = 0; }
839 if ( endcapElement ) {
841 IdLayer = endcapElement->
identify();
844 ATH_MSG_ERROR (
"Could not find detector element for endcap identifier with "
845 <<
"(ipos,iwheel,isector,iplane,istraw) = ("
846 << trtID <<
", " << wheelID <<
", " << sectorID <<
", "
847 << planeID <<
", " << strawID <<
")" );
848 ATH_MSG_ERROR (
"If this happens very rarely, don't be alarmed (it is a Geant4 'feature')" );
849 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 93 of file TRTDigitizationTool.cxx.
131 return StatusCode::FAILURE;
147 IPartPropSvc* p_PartPropSvc(
nullptr);
148 static const bool CREATEIFNOTTHERE(
true);
149 ATH_CHECK(service(
"PartPropSvc", p_PartPropSvc, CREATEIFNOTTHERE));
187 return StatusCode::SUCCESS;
◆ lateInitialize()
StatusCode TRTDigitizationTool::lateInitialize |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 246 of file TRTDigitizationTool.cxx.
259 ATH_MSG_ERROR (
"Folder holder TRT digitization version exists in condDB, but tag is faulty" );
260 return StatusCode::FAILURE;
262 ATH_MSG_DEBUG (
"Using Digitization version as defined in conditions tag" );
298 noiseThreshRndmEngine,
299 noiseElecResetRndmEngine,
327 pTRTsimdrifttimetool,
339 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 636 of file TRTDigitizationTool.cxx.
640 ATH_MSG_DEBUG(
"mergeEvent: there are " << ii->first <<
" events in bunch xing " << ii->second );
646 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
647 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
648 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
649 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
650 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
655 return StatusCode::FAILURE;
668 return StatusCode::FAILURE;
674 std::set<int> sim_hitids;
675 std::set<Identifier> simhitsIdentifiers;
679 ATH_CHECK(this->
processStraws(ctx, *
m_thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
688 const unsigned int numberOfDigitsBeforeNoise(
m_vDigits.size());
708 return StatusCode::FAILURE;
714 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 191 of file TRTDigitizationTool.cxx.
197 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 495 of file TRTDigitizationTool.cxx.
499 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
500 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
501 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
502 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
503 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
508 return StatusCode::FAILURE;
514 ATH_MSG_DEBUG (
"TRTDigitizationTool::processAllSubEvents()" );
522 return StatusCode::FAILURE;
535 if (!hitCollection.isValid()) {
536 ATH_MSG_ERROR(
"Could not get TRTUncompressedHitCollection container " << hitCollection.name() <<
" from store " << hitCollection.store());
537 return StatusCode::FAILURE;
544 thpctrt.
insert(0, hitCollection.cptr());
545 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollection->size() <<
" hits");
548 TimedHitCollList hitCollList;
549 unsigned int numberOfSimHits(0);
550 if ( !(
m_mergeSvc->retrieveSubEvtsData(
m_dataObjectName, hitCollList, numberOfSimHits).isSuccess()) && hitCollList.empty() ) {
552 return StatusCode::FAILURE;
558 thpctrt.
reserve(numberOfSimHits);
565 while ( iColl != endColl ) {
571 thpctrt.
insert(iColl->first, p_collection);
572 ATH_MSG_DEBUG (
"TRTUncompressedHitCollection found with " << p_collection->size() <<
" hits" );
578 std::set<int> sim_hitids;
579 std::set<Identifier> simhitsIdentifiers;
582 ATH_CHECK(this->
processStraws(ctx, thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
588 const int numberOfDigitsBeforeNoise(
m_vDigits.size());
608 return StatusCode::FAILURE;
614 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 201 of file TRTDigitizationTool.cxx.
215 TimedHitCollList hitCollList;
218 bSubEvents, eSubEvents).isSuccess()) &&
219 hitCollList.empty()) {
221 return StatusCode::FAILURE;
223 ATH_MSG_VERBOSE(hitCollList.size() <<
" TRTUncompressedHitCollection with key " <<
230 for( ; iColl != endColl; ++iColl){
233 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollPtr->
size() <<
236 <<
" index: " << timeIndex.index()
237 <<
" type: " << timeIndex.type());
242 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 343 of file TRTDigitizationTool.cxx.
363 if (fieldCondObj ==
nullptr) {
365 return StatusCode::FAILURE;
367 fieldCondObj->getInitializedCache (fieldCache);
373 ATH_CHECK(simDataMap.record(std::make_unique<InDetSimDataCollection>() ));
376 if (not simDataMap.isValid()) {
378 return StatusCode::FAILURE;
389 std::vector<InDetSimData::Deposit> depositVector(100);
395 int hitID((*i)->GetHitID());
402 sim_hitids.insert(hitID);
405 if ( hitID & 0xc0000000 ) {
406 ATH_MSG_ERROR (
"Hit ID not Valid (" << MSG::hex << hitID <<
")" << MSG::dec );
415 if ( !identifierOK ) {
416 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (1)" );
421 simhitsIdentifiers.insert(idStraw);
425 depositVector.clear();
430 (*hit_iter)->GetEnergyDeposit() );
434 ATH_MSG_VERBOSE (
"Deposit: trackID " << deposit.first <<
" energyDeposit " << deposit.second );
435 depositVector.emplace_back(std::move(deposit));
439 const double bunchCrossingTime(
hitTime(theHit) -
static_cast<double>(theHit->GetGlobalTime()));
442 if ( !depositVector.empty() &&
445 simDataMap->try_emplace(idStraw, std::move(depositVector));
462 bool emulateArFlag =
m_sumTool->getStatusHT(idStraw) == 6;
463 bool emulateKrFlag =
m_sumTool->getStatusHT(idStraw) == 7;
464 const int statusHT =
m_sumTool->getStatusHT(idStraw);
491 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_digverscontainerkey
◆ m_fieldCacheCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 136 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_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)
size_type straw_layer_hash_max(void) const
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 empty() const
Test if the key is blank.
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.
StatusCode DigSettingsFromCondDB(int m_dig_vers_from_condDB)
#define ATH_MSG_WARNING(x)
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.
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