|
ATLAS Offline Software
|
a PileUpTool to merge MC truth collection in the overlay store
More...
#include <MergeMcEventCollTool.h>
|
StatusCode | processEvent (const McEventCollection *pMcEvtColl, const double currentEventTime, const int currentBkgEventIndex, int pileupType) |
|
StatusCode | processFirstSubEvent (const McEventCollection *pMcEvtColl) |
|
StatusCode | processUnfilteredEvent (const McEventCollection *pMcEvtColl, const double currentEventTime, const int currentBkgEventIndex, int pileupType) |
|
StatusCode | processTruthFilteredEvent (const McEventCollection *pMcEvtColl, const double currentEventTime, const int currentBkgEventIndex, int pileupType) |
|
StatusCode | compressOutputMcEventCollection () |
|
void | printDetailsOfMergedMcEventCollection () const |
|
StatusCode | saveHeavyIonInfo (const McEventCollection *pMcEvtColl) |
|
MergeMcEventCollTool::puType | classifyVertex (const HepMC::ConstGenParticlePtr &pCurrentVertexParticle, const HepMC::ConstGenVertexPtr &pCurrentParticleProductionVertex, double currentEventTime) |
|
bool | isInitialCollisionVertex (const HepMC::ConstGenVertexPtr &pCurrentVertex) const |
|
bool | isTruthFiltertedMcEventCollection (const McEventCollection *pMcEvtColl) const |
|
void | updateClassificationMap (int signal_process_id, int event_number, int hack, int classification, bool firstUpdateForThisEvent) |
|
|
PileUpBackgroundMap | m_backgroundClassificationMap |
|
ServiceHandle< PileUpMergeSvc > | m_pMergeSvc {this, "PileUpMergeSvc", "PileUpMergeSvc", "Handle for the PileUpMergeSvc (provides input McEventCollections)"} |
|
McEventCollection * | m_pOvrlMcEvColl {} |
|
StringProperty | m_truthCollInputKey {this, "TruthCollInputKey", "TruthEvent", "Name of input McEventCollection"} |
|
StringProperty | m_truthCollOutputKey {this, "TruthCollOutputKey", "TruthEvent", "Name of output McEventCollection"} |
|
BooleanProperty | m_keepUnstable {this, "KeepUnstable", false, "Do not cut unstable particles"} |
|
DoubleProperty | m_absEtaMax {this, "AbsEtaMax", 5.0, "Eta cut-off for INTIME GenParticles"} |
|
DoubleProperty | m_absEtaMax_outOfTime {this,"OutOfTimeAbsEtaMax", 3.0, "Eta cut-off for OUTOFTIME GenParticles"} |
|
DoubleProperty | m_lowTimeToKeep {this, "LowTimeToKeep", -51.0, "leading edge in ns of the time window to keep if SaveOutOfTimePileUp is true"} |
|
DoubleProperty | m_highTimeToKeep {this, "HighTimeToKeep", 51.0, "trailing edge in ns of the time window to keep if SaveOutOfTimePileUp is true"} |
|
DoubleProperty | m_rRange {this, "rRange", 20.0*Gaudi::Units::mm, "rRange of production vertex in mm"} |
|
double | m_r2Range {400.0} |
|
DoubleProperty | m_zRange {this, "zRange", 200.0*Gaudi::Units::mm, "z range of production vertex in mm"} |
|
DoubleProperty | m_ptMin {this, "ptMin", 0.4*Gaudi::Units::GeV, "Minimum threshold for pT for selected pileup particles in MeV"} |
|
DoubleProperty | m_minKinE {this, "EKinMin", 1.0*Gaudi::Units::MeV, "Minimum threshold for Kinetic Energy of selected cavern events in MeV"} |
|
BooleanProperty | m_saveInTimePileup {this, "SaveInTimeMinBias", true, "save min bias particles in the t0 xing"} |
|
BooleanProperty | m_saveOutOfTimePileup {this, "SaveOutOfTimeMinBias", true, "save out of time min bias particles in the [LowTimeToKeep:HighTimeToKeep] range"} |
|
BooleanProperty | m_saveRestOfPileup {this, "SaveRestOfMinBias", false, "save the rest of out of time min bias particles as well"} |
|
BooleanProperty | m_saveCavernBackground {this, "SaveCavernBackground", true, "save the cavern background as well"} |
|
BooleanProperty | m_doSlimming {this, "DoSlimming", true, "flag to do the slimming or save everything"} |
|
bool | m_saveType [NOPUTYPE] ={} |
|
unsigned int | m_startingIndexForBackground {0} |
|
bool | m_newevent {true} |
|
unsigned int | m_nInputMcEventColls {0} |
|
unsigned int | m_nBkgEventsReadSoFar {0} |
|
BooleanProperty | m_addBackgroundCollisionVertices {this, "AddBackgroundCollisionVertices", true, "ensure that the collision GenVertex objects of minbias background events are saved."} |
|
BooleanProperty | m_compressOutputCollection {this, "CompressOutputCollection", false, "Remove all empty GenEvents from the output McEventCollection"} |
|
BooleanProperty | m_onlySaveSignalTruth {this, "OnlySaveSignalTruth", false, "Just save the Signal GenEvent"} |
|
int | m_signal_event_number {0} |
|
a PileUpTool to merge MC truth collection in the overlay store
$Id:
- Author
- jchap.nosp@m.man@.nosp@m.cern..nosp@m.ch
Definition at line 28 of file MergeMcEventCollTool.h.
◆ PileUpBackgroundMap
◆ puType
◆ puType
◆ MergeMcEventCollTool()
MergeMcEventCollTool::MergeMcEventCollTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ classifyVertex()
cut to select between minbias and cavern background pileup events
Definition at line 513 of file MergeMcEventCollTool.cxx.
518 if ( pCurrentParticleProductionVertex ) {
522 if ( std::abs(pCurrentParticleProductionVertex->position().z()) <
m_zRange ) {
523 const float xi((pCurrentParticleProductionVertex->position()).x());
524 const float yi((pCurrentParticleProductionVertex->position()).y());
526 const double eta(pCurrentVertexParticle->momentum().pseudoRapidity());
529 if ( currentEventIsInTime ) {
531 if ( 0.0==currentEventTime ) {
532 particleClassification=
INTIME;
549 double mass(pCurrentVertexParticle->momentum().m());
551 const double kineticEnergy(pCurrentVertexParticle->momentum().e() -
mass);
553 particleClassification=
CAVERN;
558 return particleClassification;
◆ compressOutputMcEventCollection()
StatusCode MergeMcEventCollTool::compressOutputMcEventCollection |
( |
| ) |
|
|
private |
Definition at line 561 of file MergeMcEventCollTool.cxx.
570 ++currentClassification;
573 if((*outputEventItr)->vertices_empty()) {
576 ATH_MSG_VERBOSE(
"compressOutputMcEventCollection() Removed Empty GenEvent #" << event_number <<
", signal_process_id(" <<
signal_process_id <<
"), category = " << currentClassification);
582 return StatusCode::SUCCESS;
◆ filterPassed()
virtual bool PileUpToolBase::filterPassed |
( |
| ) |
const |
|
inlineoverridevirtualinherited |
◆ initialize()
StatusCode MergeMcEventCollTool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ isInitialCollisionVertex()
Definition at line 498 of file MergeMcEventCollTool.cxx.
501 for (
const auto& pCurrentVertexParticle: pCurrentVertex->particles_in()) {
503 auto currentVertexParticleIter = pCurrentVertex->particles_in_const_begin();
504 auto endOfListOfParticlesFromCurrentVertex = pCurrentVertex->particles_in_const_end();
505 for( ;currentVertexParticleIter != endOfListOfParticlesFromCurrentVertex; ++currentVertexParticleIter ) {
506 auto pCurrentVertexParticle = *currentVertexParticleIter;
508 if (
MC::isBeam(pCurrentVertexParticle))
return true;
◆ isTruthFiltertedMcEventCollection()
Definition at line 308 of file MergeMcEventCollTool.cxx.
309 const HepMC::GenEvent* currentBackgroundEvent = *(pMcEvtColl->begin());
311 if (currentBackgroundEvent->particles().size()!=1)
return false;
312 if (currentBackgroundEvent->particles().at(0)->pdg_id()==999)
return true;
314 if (currentBackgroundEvent->particles_size()!=1)
return false;
315 if ((*(currentBackgroundEvent->particles_begin()))->pdg_id()==999)
return true;
◆ mergeEvent()
StatusCode MergeMcEventCollTool::mergeEvent |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
called at the end of the subevts loop.
Not (necessarily) able to access SubEvents
Definition at line 209 of file MergeMcEventCollTool.cxx.
213 return StatusCode::FAILURE;
230 ATH_MSG_FATAL(
"Signal GenEvent is not first in the list! Something has gone wrong during the GenEvent sorting!");
231 return StatusCode::FAILURE;
236 return StatusCode::SUCCESS;
◆ prepareEvent()
StatusCode MergeMcEventCollTool::prepareEvent |
( |
const EventContext & |
ctx, |
|
|
unsigned int |
nInputEvents |
|
) |
| |
|
finaloverridevirtual |
called before the subevts loop.
Not (necessarily) able to access SubEvents
Definition at line 98 of file MergeMcEventCollTool.cxx.
107 <<
"prepareEvent: TimedTruthList with key "
110 return StatusCode::RECOVERABLE;
114 return StatusCode::SUCCESS;
◆ printDetailsOfMergedMcEventCollection()
void MergeMcEventCollTool::printDetailsOfMergedMcEventCollection |
( |
| ) |
const |
|
private |
◆ processAllSubEvents() [1/2]
StatusCode MergeMcEventCollTool::processAllSubEvents |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtual |
return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing
Reimplemented from PileUpToolBase.
Definition at line 117 of file MergeMcEventCollTool.cxx.
121 ATH_MSG_FATAL (
"processAllSubEvents: Could not find PileUpMergeSvc" );
122 return StatusCode::FAILURE;
129 TimedTruthList truthList;
132 <<
"execute: Can not find TimedTruthList with key "
134 return StatusCode::RECOVERABLE;
144 <<
"execute: TimedTruthList with key "
147 return StatusCode::RECOVERABLE;
153 while (timedTruthListIter != endOfTimedTruthList) {
156 if (!
processEvent(pBackgroundMcEvtColl, currentPileUpTimeEventIndex.time(), currentPileUpTimeEventIndex.index(),
static_cast<int>(currentPileUpTimeEventIndex.type())).isSuccess()) {
158 return StatusCode::FAILURE;
160 ++timedTruthListIter;
176 ATH_MSG_FATAL(
"Signal GenEvent is not first in the list! Something has gone wrong during the GenEvent sorting!");
177 return StatusCode::FAILURE;
182 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
Reimplemented from PileUpToolBase.
Definition at line 185 of file MergeMcEventCollTool.cxx.
192 while (iEvt != eSubEvents) {
195 bunchXing, iEvt).isSuccess()){
197 return StatusCode::FAILURE;
200 if (!
processEvent(pMEC,iEvt->time(),iEvt->index(),
static_cast<int>(iEvt->type())).isSuccess()) {
201 ATH_MSG_ERROR (
"processBunchXing: Failed to process McEventCollection." );
202 return StatusCode::FAILURE;
206 return StatusCode::SUCCESS;
◆ processEvent()
StatusCode MergeMcEventCollTool::processEvent |
( |
const McEventCollection * |
pMcEvtColl, |
|
|
const double |
currentEventTime, |
|
|
const int |
currentBkgEventIndex, |
|
|
int |
pileupType |
|
) |
| |
|
private |
Definition at line 320 of file MergeMcEventCollTool.cxx.
326 return StatusCode::SUCCESS;
335 return StatusCode::SUCCESS;
338 ATH_MSG_ERROR (
"Failed to process a Truth Filtered GenEvent.");
342 if (
processUnfilteredEvent(pMcEvtColl, currentEventTime, currentBkgEventIndex, pileupType).isSuccess() ) {
344 return StatusCode::SUCCESS;
352 return StatusCode::FAILURE;
◆ processFirstSubEvent()
Definition at line 257 of file MergeMcEventCollTool.cxx.
264 m_pOvrlMcEvColl->at(0)->add_attribute(
"BunchCrossingTime",std::make_shared<HepMC3::IntAttribute>(0));
265 m_pOvrlMcEvColl->at(0)->add_attribute(
"PileUpType",std::make_shared<HepMC3::IntAttribute>(0));
269 ATH_MSG_DEBUG(
"execute: copied original event McEventCollection" );
277 ATH_MSG_DEBUG (
"Total Size of Output McEventCollection = " << outCollSize );
290 unsigned int currentMcEventCollectionIndex(1);
294 currentMcEventCollectionIndex += 1;
298 ATH_MSG_DEBUG (
"Placing Separator for Type: "<<
type<<
" at Posistion: " << currentMcEventCollectionIndex-1 );
◆ processTruthFilteredEvent()
StatusCode MergeMcEventCollTool::processTruthFilteredEvent |
( |
const McEventCollection * |
pMcEvtColl, |
|
|
const double |
currentEventTime, |
|
|
const int |
currentBkgEventIndex, |
|
|
int |
pileupType |
|
) |
| |
|
private |
Definition at line 371 of file MergeMcEventCollTool.cxx.
373 ATH_MSG_VERBOSE (
"processTruthFilteredEvent(): Event Type: " << pileupType );
379 const int bunchCrossingTime=
static_cast<int>(currentEventTime);
380 currentBackgroundEvent.add_attribute(
"BunchCrossingTime",std::make_shared<HepMC3::IntAttribute>(bunchCrossingTime));
381 currentBackgroundEvent.add_attribute(
"PileUpType",std::make_shared<HepMC3::IntAttribute>(pileupType));
384 currentBackgroundEvent.set_event_number(currentBkgEventIndex);
386 if ( std::abs(currentEventTime)<51.0 ) {
387 currentGenEventClassification = ( std::abs(currentEventTime)<1.0 ) ?
INTIME :
OUTOFTIME;
390 currentBackgroundEvent.event_number(),
391 0, currentGenEventClassification,
true);
392 return StatusCode::SUCCESS;
◆ processUnfilteredEvent()
StatusCode MergeMcEventCollTool::processUnfilteredEvent |
( |
const McEventCollection * |
pMcEvtColl, |
|
|
const double |
currentEventTime, |
|
|
const int |
currentBkgEventIndex, |
|
|
int |
pileupType |
|
) |
| |
|
private |
add the in-coming particles to the in-time minbias vertex only
Definition at line 395 of file MergeMcEventCollTool.cxx.
396 ATH_MSG_VERBOSE (
"processUnfilteredEvent() Event Type: " << pileupType );
398 const HepMC::GenEvent& currentBackgroundEvent(**(pMcEvtColl->begin()));
407 const int bunchCrossingTime=
static_cast<int>(currentEventTime);
408 evt->add_attribute(
"BunchCrossingTime",std::make_shared<HepMC3::IntAttribute>(bunchCrossingTime));
409 evt->add_attribute(
"PileUpType",std::make_shared<HepMC3::IntAttribute>(pileupType));
411 evt->set_event_number(currentBkgEventIndex);
412 evt->add_vertex(pCopyOfGenVertex);
418 unsigned int nCollisionVerticesFound(0);
421 auto currentVertexIter = currentBackgroundEvent.vertices().begin();
422 auto endOfCurrentListOfVertices = currentBackgroundEvent.vertices().end();
424 if (
HepMC::signal_process_vertex(¤tBackgroundEvent) ) pCopyOfGenVertex =
new HepMC::GenVertex ( *currentBackgroundEvent.signal_process_vertex() );
429 unsigned int nCollisionVerticesFound(0);
432 auto currentVertexIter = currentBackgroundEvent.vertices_begin();
433 auto endOfCurrentListOfVertices = currentBackgroundEvent.vertices_end();
435 for (; currentVertexIter != endOfCurrentListOfVertices; ++currentVertexIter) {
436 const auto& pCurrentVertex=*currentVertexIter;
441 bool isCollisionVertex(
false);
444 if(isCollisionVertex) ++nCollisionVerticesFound;
450 ATH_MSG_VERBOSE(
"Found a particle at location " << std::hex << currentVertexParticle << std::dec <<
" with PDG ID = " << currentVertexParticle->pdg_id() );
452 puType particleClassification(
classifyVertex(currentVertexParticle, pCurrentParticleProductionVertex,currentEventTime));
454 if(isCollisionVertex &&
NOPUTYPE==particleClassification) {
455 particleClassification=
INTIME;
459 if (!pCopyOfVertexForClassification[particleClassification]) {
460 pCopyOfVertexForClassification[particleClassification] =
HepMC::newGenVertexPtr(pCurrentVertex->position());
461 ATH_MSG_VERBOSE(
"Added bkg vertex " << pCopyOfVertexForClassification[particleClassification] <<
" at position " << pCopyOfVertexForClassification[particleClassification] <<
" for pu type = " << particleClassification );
464 pCopyOfVertexForClassification[particleClassification]->add_particle_out(std::make_shared<HepMC3::GenParticle>(currentVertexParticle->data()));
466 pCopyOfVertexForClassification[particleClassification]->add_particle_out(
new HepMC::GenParticle(*currentVertexParticle) );
468 ATH_MSG_VERBOSE(
"Added bkg particle at location " << std::hex << currentVertexParticle << std::dec <<
" with PDG ID = " << currentVertexParticle->pdg_id() );
474 for (
const auto& currentVertexParticle: pCurrentVertex->particles_in()) {
475 pCopyOfVertexForClassification[
INTIME]->add_particle_in (std::make_shared<HepMC3::GenParticle>(currentVertexParticle->data()));
478 HepMC::GenVertex::particles_in_const_iterator currentVertexParticleIter(pCurrentVertex->particles_in_const_begin());
479 const HepMC::GenVertex::particles_in_const_iterator endOfListOfParticlesFromCurrentVertex(pCurrentVertex->particles_in_const_end());
480 for (; currentVertexParticleIter != endOfListOfParticlesFromCurrentVertex; ++currentVertexParticleIter) {
487 if (!pCopyOfVertexForClassification[
type])
continue;
488 int n_particles_out=pCopyOfVertexForClassification[
type]->particles_out_size();
495 return StatusCode::SUCCESS;
◆ resetFilter()
virtual void PileUpToolBase::resetFilter |
( |
| ) |
|
|
inlineoverridevirtualinherited |
◆ saveHeavyIonInfo()
Definition at line 355 of file MergeMcEventCollTool.cxx.
358 if (pMcEvtColl->at(0)->heavy_ion())
362 HepMC::GenHeavyIonPtr hinew=std::make_shared<HepMC::GenHeavyIon>(*(pMcEvtColl->at(0)->heavy_ion()));
365 m_pOvrlMcEvColl->at(0)->set_heavy_ion(*(pMcEvtColl->at(0)->heavy_ion()));
368 return StatusCode::SUCCESS;
◆ toProcess()
virtual bool PileUpToolBase::toProcess |
( |
int |
bunchXing | ) |
const |
|
inlineoverridevirtualinherited |
◆ updateClassificationMap()
void MergeMcEventCollTool::updateClassificationMap |
( |
int |
signal_process_id, |
|
|
int |
event_number, |
|
|
int |
hack, |
|
|
int |
classification, |
|
|
bool |
firstUpdateForThisEvent = false |
|
) |
| |
|
private |
Definition at line 585 of file MergeMcEventCollTool.cxx.
588 ATH_MSG_ERROR(
"updateClassidificationMap: GenEvent #" << event_number <<
", signal_process_id(" <<
signal_process_id <<
"), category = " << classification );
593 ATH_MSG_ERROR(
"updateClassidificationMap: GenEvent #" << event_number <<
", signal_process_id(" <<
signal_process_id <<
"), category = " << classification );
594 ATH_MSG_FATAL (
"Should only ever be one signal event in the background classification map! Bailing out.");
600 key=makekey(separator_hack,event_number);
602 ATH_MSG_VERBOSE(
"updateClassidificationMap: GenEvent #" << event_number <<
", signal_process_id(" <<
signal_process_id <<
"), category = " << classification <<
", key = " <<
key);
605 if(firstUpdateForThisEvent) {
606 ATH_MSG_ERROR(
"updateClassidificationMap: Repeated KEY! "<<
key <<
". Previous category = " <<
event->second );
609 ATH_MSG_DEBUG(
"updateClassidificationMap: Updating category for existing key "<<
key <<
". Previous category = " <<
event->second <<
", new category = " << classification );
612 if(
event->second<=classification)
return;
◆ m_absEtaMax
DoubleProperty MergeMcEventCollTool::m_absEtaMax {this, "AbsEtaMax", 5.0, "Eta cut-off for INTIME GenParticles"} |
|
private |
◆ m_absEtaMax_outOfTime
DoubleProperty MergeMcEventCollTool::m_absEtaMax_outOfTime {this,"OutOfTimeAbsEtaMax", 3.0, "Eta cut-off for OUTOFTIME GenParticles"} |
|
private |
◆ m_addBackgroundCollisionVertices
BooleanProperty MergeMcEventCollTool::m_addBackgroundCollisionVertices {this, "AddBackgroundCollisionVertices", true, "ensure that the collision GenVertex objects of minbias background events are saved."} |
|
private |
◆ m_backgroundClassificationMap
◆ m_compressOutputCollection
BooleanProperty MergeMcEventCollTool::m_compressOutputCollection {this, "CompressOutputCollection", false, "Remove all empty GenEvents from the output McEventCollection"} |
|
private |
◆ m_doSlimming
BooleanProperty MergeMcEventCollTool::m_doSlimming {this, "DoSlimming", true, "flag to do the slimming or save everything"} |
|
private |
◆ m_filterPassed
bool PileUpToolBase::m_filterPassed {true} |
|
protectedinherited |
◆ 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_highTimeToKeep
DoubleProperty MergeMcEventCollTool::m_highTimeToKeep {this, "HighTimeToKeep", 51.0, "trailing edge in ns of the time window to keep if SaveOutOfTimePileUp is true"} |
|
private |
◆ m_keepUnstable
BooleanProperty MergeMcEventCollTool::m_keepUnstable {this, "KeepUnstable", false, "Do not cut unstable particles"} |
|
private |
◆ 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_lowTimeToKeep
DoubleProperty MergeMcEventCollTool::m_lowTimeToKeep {this, "LowTimeToKeep", -51.0, "leading edge in ns of the time window to keep if SaveOutOfTimePileUp is true"} |
|
private |
◆ m_minKinE
DoubleProperty MergeMcEventCollTool::m_minKinE {this, "EKinMin", 1.0*Gaudi::Units::MeV, "Minimum threshold for Kinetic Energy of selected cavern events in MeV"} |
|
private |
◆ m_nBkgEventsReadSoFar
unsigned int MergeMcEventCollTool::m_nBkgEventsReadSoFar {0} |
|
private |
◆ m_newevent
bool MergeMcEventCollTool::m_newevent {true} |
|
private |
◆ m_nInputMcEventColls
unsigned int MergeMcEventCollTool::m_nInputMcEventColls {0} |
|
private |
◆ m_onlySaveSignalTruth
BooleanProperty MergeMcEventCollTool::m_onlySaveSignalTruth {this, "OnlySaveSignalTruth", false, "Just save the Signal GenEvent"} |
|
private |
◆ m_pMergeSvc
◆ m_pOvrlMcEvColl
◆ m_ptMin
DoubleProperty MergeMcEventCollTool::m_ptMin {this, "ptMin", 0.4*Gaudi::Units::GeV, "Minimum threshold for pT for selected pileup particles in MeV"} |
|
private |
◆ m_r2Range
double MergeMcEventCollTool::m_r2Range {400.0} |
|
private |
◆ m_rRange
DoubleProperty MergeMcEventCollTool::m_rRange {this, "rRange", 20.0*Gaudi::Units::mm, "rRange of production vertex in mm"} |
|
private |
◆ m_saveCavernBackground
BooleanProperty MergeMcEventCollTool::m_saveCavernBackground {this, "SaveCavernBackground", true, "save the cavern background as well"} |
|
private |
◆ m_saveInTimePileup
BooleanProperty MergeMcEventCollTool::m_saveInTimePileup {this, "SaveInTimeMinBias", true, "save min bias particles in the t0 xing"} |
|
private |
◆ m_saveOutOfTimePileup
BooleanProperty MergeMcEventCollTool::m_saveOutOfTimePileup {this, "SaveOutOfTimeMinBias", true, "save out of time min bias particles in the [LowTimeToKeep:HighTimeToKeep] range"} |
|
private |
◆ m_saveRestOfPileup
BooleanProperty MergeMcEventCollTool::m_saveRestOfPileup {this, "SaveRestOfMinBias", false, "save the rest of out of time min bias particles as well"} |
|
private |
◆ m_saveType
bool MergeMcEventCollTool::m_saveType[NOPUTYPE] ={} |
|
private |
◆ m_signal_event_number
int MergeMcEventCollTool::m_signal_event_number {0} |
|
private |
◆ m_startingIndexForBackground
unsigned int MergeMcEventCollTool::m_startingIndexForBackground {0} |
|
private |
◆ m_truthCollInputKey
StringProperty MergeMcEventCollTool::m_truthCollInputKey {this, "TruthCollInputKey", "TruthEvent", "Name of input McEventCollection"} |
|
private |
◆ m_truthCollOutputKey
StringProperty MergeMcEventCollTool::m_truthCollOutputKey {this, "TruthCollOutputKey", "TruthEvent", "Name of output McEventCollection"} |
|
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.
◆ m_zRange
DoubleProperty MergeMcEventCollTool::m_zRange {this, "zRange", 200.0*Gaudi::Units::mm, "z range of production vertex in mm"} |
|
private |
The documentation for this class was generated from the following files:
HepMC::GenVertex * GenVertexPtr
JetConstituentVector::iterator iterator
char data[hepevt_bytes_allocation_ATLAS]
Scalar eta() const
pseudorapidity method
int signal_process_id(const GenEvent &e)
GenEvent * newGenEvent(const int a, const int b)
#define ATH_MSG_VERBOSE(x)
void fillBarcodesAttribute(GenEvent *)
std::list< value_t > type
type of the collection of timed data object
void set_signal_process_vertex(GenEvent *e, T v)
POOL::TEvent event(POOL::TEvent::kClassAccess)
GenVertexPtr newGenVertexPtr(const HepMC::FourVector &pos=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), const int i=0)
::StatusCode StatusCode
StatusCode definition for legacy code.
#define CHECK(...)
Evaluate an expression and check for errors.
const GenParticle * ConstGenParticlePtr
double charge(const T &p)
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
bool isBeam(const T &p)
Identify if the particle is beam particle.
int mpi(const GenEvent &e)
const HepMC::GenVertex * ConstGenVertexPtr
bool isSimStable(const T &p)
Identify if the particle is considered stable at the post-detector-sim stage.
void set_signal_process_id(GenEvent *e, const int i)
a struct encapsulating the identifier of a pile-up event
void set_mpi(GenEvent *e, const int i)
GenVertex * signal_process_vertex(const GenEvent *e)