diff --git a/DDDigi/README.md b/DDDigi/README.md index 0520844afcaee809b514ccf98bf427c672b48c6a..f3c2720e355d20c99fa68d760583dcf69498941c 100644 --- a/DDDigi/README.md +++ b/DDDigi/README.md @@ -68,13 +68,19 @@ energy deposits of the simulation. Functionality: self explaining -- DigiAttenuate +- DigiAttenuator Deposit attenuator for energy deposits according to decay time constant. <br/> Properties: <br/> |**Property** |**Data type** |**Description** | |:--- |:--- |:--- | |`.input` | vector<string> | List of input files to be processed | + |`.attenuate_history`| boolean | Propagate the weight also to the history entries. default: true | + |`.processor_type`| string | Processor type used for single container attenuation default: `DigiAttenuator` | + |`.containers` | vector<string> | List of containers to be attenuated. | + |`.signal_decay`| string | Decay function. default: `exponential` | + |`.t0` | double | Time constant for exponential signal decay. | +  diff --git a/DDDigi/src/DigiAttenuator.cpp b/DDDigi/src/DigiAttenuator.cpp index 62845b03b0e4c7225c1fe7474f5dece37043e2d0..d736a11e4207e7b3b3464c4707178837e3fd9fc5 100644 --- a/DDDigi/src/DigiAttenuator.cpp +++ b/DDDigi/src/DigiAttenuator.cpp @@ -48,6 +48,8 @@ DigiAttenuator::attenuate(T& cont, const predicate_t& predicate) const { for( auto& dep : cont ) { if ( predicate(dep) ) { dep.second.deposit *= m_factor; + if ( !m_attenuate_history ) + continue; auto& e = dep.second.history; for( auto& h : e.hits ) h.weight *= m_factor; for( auto& h : e.particles ) h.weight *= m_factor;