|
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} |
|
ServiceHandle< IPartPropSvc > | m_ppSvc {this, "PartPropSvc", "PartPropSvc"} |
| Handle on the particle property service. More...
|
|
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 863 of file TRTDigitizationTool.cxx.
866 int dig_vers_from_condDB = (**digvers)[
"TRT_Dig_Vers"].data<
int>();
868 if (dig_vers_from_condDB!=0) {
871 ATH_MSG_INFO (
"Retrieved TRT_Settings from CondDB with TRT digitization version: digversion = " <<
872 dig_vers_from_condDB );
874 ATH_MSG_WARNING (
"Unknown TRT digitization version: digversion = " << dig_vers_from_condDB <<
875 " read from CondDB. Overriding to use default from Det Desc tag: " <<
880 ATH_MSG_WARNING (
"TRT digitization version: digversion = " << dig_vers_from_condDB <<
881 " read from CondDB. Overriding to use default from Det Desc tag: " <<
885 return StatusCode::SUCCESS;
◆ createAndStoreRDOs()
StatusCode TRTDigitizationTool::createAndStoreRDOs |
( |
| ) |
|
|
private |
Definition at line 709 of file TRTDigitizationTool.cxx.
712 std::vector<TRTDigit>::const_iterator TRTDigitIter(
m_vDigits.begin());
713 std::vector<TRTDigit>::const_iterator endOfTRTDigits(
m_vDigits.end());
722 while (TRTDigitIter != endOfTRTDigits) {
723 ATH_MSG_DEBUG (
"Digit ID " << TRTDigitIter->GetStrawID() <<
" Digit " << TRTDigitIter->GetDigit() );
726 bool identifierOK(
false);
727 idStraw =
getIdentifier(TRTDigitIter->GetStrawID(), IdHash, layer_id, identifierOK);
729 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (2)" );
742 if (IdHash != IdHashOld) {
744 ATH_MSG_DEBUG (
"New TRT RDO Collection created with IdHash " <<
static_cast<int>(IdHash) );
746 RDOColl->setIdentifier(layer_id);
749 if (
m_trtrdo_container->addCollection(RDOColl, RDOColl->identifyHash()).isFailure()) {
751 return StatusCode::FAILURE;
760 RDOColl->push_back(p_rdo);
762 ATH_MSG_FATAL (
"Failed to create the TRT_RDO_Collection before trying to add an RDO to it! IdHash = " <<
static_cast<int>(IdHash) );
764 return StatusCode::FAILURE;
770 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 775 of file TRTDigitizationTool.cxx.
784 const int mask(0x0000001F);
785 const int word_shift(5);
786 int trtID, ringID, moduleID, layerID, strawID;
787 int wheelID, planeID, sectorID;
792 if ( !(hitID & 0x00200000) ) {
793 strawID = hitID &
mask;
794 hitID >>= word_shift;
795 layerID = hitID &
mask;
796 hitID >>= word_shift;
797 moduleID = hitID &
mask;
798 hitID >>= word_shift;
799 ringID = hitID &
mask;
800 trtID = hitID >> word_shift;
803 if ( barrelElement ) {
805 IdLayer = barrelElement->
identify();
808 ATH_MSG_ERROR (
"Could not find detector element for barrel identifier with "
809 <<
"(ipos,iring,imod,ilayer,istraw) = ("
810 << trtID <<
", " << ringID <<
", " << moduleID <<
", "
811 << layerID <<
", " << strawID <<
")" );
815 strawID = hitID &
mask;
816 hitID >>= word_shift;
817 planeID = hitID &
mask;
818 hitID >>= word_shift;
819 sectorID = hitID &
mask;
820 hitID >>= word_shift;
821 wheelID = hitID &
mask;
822 trtID = hitID >> word_shift;
825 if (trtID == 3) { trtID = 0; }
830 if ( endcapElement ) {
832 IdLayer = endcapElement->
identify();
835 ATH_MSG_ERROR (
"Could not find detector element for endcap identifier with "
836 <<
"(ipos,iwheel,isector,iplane,istraw) = ("
837 << trtID <<
", " << wheelID <<
", " << sectorID <<
", "
838 << planeID <<
", " << strawID <<
")" );
839 ATH_MSG_ERROR (
"If this happens very rarely, don't be alarmed (it is a Geant4 'feature')" );
840 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 86 of file TRTDigitizationTool.cxx.
124 return StatusCode::FAILURE;
178 return StatusCode::SUCCESS;
◆ lateInitialize()
StatusCode TRTDigitizationTool::lateInitialize |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 237 of file TRTDigitizationTool.cxx.
250 ATH_MSG_ERROR (
"Folder holder TRT digitization version exists in condDB, but tag is faulty" );
251 return StatusCode::FAILURE;
253 ATH_MSG_DEBUG (
"Using Digitization version as defined in conditions tag" );
289 noiseThreshRndmEngine,
290 noiseElecResetRndmEngine,
318 pTRTsimdrifttimetool,
330 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 627 of file TRTDigitizationTool.cxx.
631 ATH_MSG_DEBUG(
"mergeEvent: there are " << ii->first <<
" events in bunch xing " << ii->second );
637 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
638 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
639 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
640 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
641 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
646 return StatusCode::FAILURE;
659 return StatusCode::FAILURE;
665 std::set<int> sim_hitids;
666 std::set<Identifier> simhitsIdentifiers;
670 ATH_CHECK(this->
processStraws(ctx, *
m_thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
679 const unsigned int numberOfDigitsBeforeNoise(
m_vDigits.size());
699 return StatusCode::FAILURE;
705 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 182 of file TRTDigitizationTool.cxx.
188 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 486 of file TRTDigitizationTool.cxx.
490 CLHEP::HepRandomEngine *elecNoiseRndmEngine =
getRandomEngine(
"TRT_ElectronicsNoise", ctx);
491 CLHEP::HepRandomEngine *noiseRndmEngine =
getRandomEngine(
"TRT_NoiseDigitPool", ctx);
492 CLHEP::HepRandomEngine *strawRndmEngine =
getRandomEngine(
"TRT_ProcessStraw", ctx);
493 CLHEP::HepRandomEngine *elecProcRndmEngine =
getRandomEngine(
"TRT_ThresholdFluctuations", ctx);
494 CLHEP::HepRandomEngine *paiRndmEngine =
getRandomEngine(
"TRT_PAI", ctx);
499 return StatusCode::FAILURE;
505 ATH_MSG_DEBUG (
"TRTDigitizationTool::processAllSubEvents()" );
513 return StatusCode::FAILURE;
526 if (!hitCollection.isValid()) {
527 ATH_MSG_ERROR(
"Could not get TRTUncompressedHitCollection container " << hitCollection.name() <<
" from store " << hitCollection.store());
528 return StatusCode::FAILURE;
535 thpctrt.
insert(0, hitCollection.cptr());
536 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollection->size() <<
" hits");
539 TimedHitCollList hitCollList;
540 unsigned int numberOfSimHits(0);
541 if ( !(
m_mergeSvc->retrieveSubEvtsData(
m_dataObjectName, hitCollList, numberOfSimHits).isSuccess()) && hitCollList.empty() ) {
543 return StatusCode::FAILURE;
549 thpctrt.
reserve(numberOfSimHits);
556 while ( iColl != endColl ) {
562 thpctrt.
insert(iColl->first, p_collection);
563 ATH_MSG_DEBUG (
"TRTUncompressedHitCollection found with " << p_collection->size() <<
" hits" );
569 std::set<int> sim_hitids;
570 std::set<Identifier> simhitsIdentifiers;
573 ATH_CHECK(this->
processStraws(ctx, thpctrt, sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine,paiRndmEngine));
579 const int numberOfDigitsBeforeNoise(
m_vDigits.size());
599 return StatusCode::FAILURE;
605 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 192 of file TRTDigitizationTool.cxx.
206 TimedHitCollList hitCollList;
209 bSubEvents, eSubEvents).isSuccess()) &&
210 hitCollList.empty()) {
212 return StatusCode::FAILURE;
214 ATH_MSG_VERBOSE(hitCollList.size() <<
" TRTUncompressedHitCollection with key " <<
221 for( ; iColl != endColl; ++iColl){
224 ATH_MSG_DEBUG(
"TRTUncompressedHitCollection found with " << hitCollPtr->
size() <<
227 <<
" index: " << timeIndex.index()
228 <<
" type: " << timeIndex.type());
233 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 334 of file TRTDigitizationTool.cxx.
354 if (fieldCondObj ==
nullptr) {
356 return StatusCode::FAILURE;
358 fieldCondObj->getInitializedCache (fieldCache);
364 ATH_CHECK(simDataMap.record(std::make_unique<InDetSimDataCollection>() ));
367 if (not simDataMap.isValid()) {
369 return StatusCode::FAILURE;
380 std::vector<InDetSimData::Deposit> depositVector(100);
386 int hitID((*i)->GetHitID());
393 sim_hitids.insert(hitID);
396 if ( hitID & 0xc0000000 ) {
397 ATH_MSG_ERROR (
"Hit ID not Valid (" << MSG::hex << hitID <<
")" << MSG::dec );
406 if ( !identifierOK ) {
407 ATH_MSG_ERROR (
"Ignoring simhits with suspicious identifier (1)" );
412 simhitsIdentifiers.insert(idStraw);
416 depositVector.clear();
421 (*hit_iter)->GetEnergyDeposit() );
425 ATH_MSG_VERBOSE (
"Deposit: trackID " << deposit.first <<
" energyDeposit " << deposit.second );
426 depositVector.emplace_back(std::move(deposit));
430 const double bunchCrossingTime(
hitTime(theHit) -
static_cast<double>(theHit->GetGlobalTime()));
433 if ( !depositVector.empty() &&
436 simDataMap->try_emplace(idStraw, std::move(depositVector));
453 bool emulateArFlag =
m_sumTool->getStatusHT(idStraw, ctx) == 6;
454 bool emulateKrFlag =
m_sumTool->getStatusHT(idStraw, ctx) == 7;
455 const int statusHT =
m_sumTool->getStatusHT(idStraw, ctx);
482 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_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)
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.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
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