diff --git a/docs/digitizer_and_detector_modeling.rst b/docs/digitizer_and_detector_modeling.rst index 9b6f03e8a..2318dfcf0 100644 --- a/docs/digitizer_and_detector_modeling.rst +++ b/docs/digitizer_and_detector_modeling.rst @@ -1542,7 +1542,6 @@ Here is an example of how to configure this in a macro file: **Example** :: - /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/insert buffer /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/buffer/setBufferSize 64 B /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/buffer/setReadFrequency 10 MHz @@ -1561,10 +1560,8 @@ A presort buffer contains singles that have not yet been checked for coincidence Multiple coincidence removal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - If the multiple coincidences are kept and not split into pairs (i.e., if any of the **keepXXX** multiple coincidence policies are used), the multicoincidences could contribute to dataflow occupancy but cannot be written to the disk. Unless otherwise specified, any multicoincidence is then cleared from data just before the disk writing. If needed, this clearing could be performed at any earlier coincidence processing step by inserting the **multiplesKiller** module at the required level. This module has no parameters and simply removes the multicoincidence events. Multiple coincidences split into many pairs are not affected by this module and cannot be distinguished from normal "simple" coincidences. To insert a multipleKiller, use the syntax :: - /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/insert multiplesKiller @@ -1574,8 +1571,11 @@ Coincidence Time Difference Selector This module reprocesses the list of coincidences and applies a cut on the time difference between two Singles forming the coincidence, i. e. appalling a cut tighter than coincidence time window selected by coincidence sorter. + + **Example** :: + /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/insert timeDiffSelector /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/timeDiffSelector/setMin 1 ns /gate/digitizerMgr/CoincidenceDigitizer/finalCoinc/timeDiffSelector/setMax 100 ns diff --git a/source/digits_hits/include/GateCoincidenceTimeDiffSelector.hh b/source/digits_hits/include/GateCoincidenceTimeDiffSelector.hh index 75e08e466..eca546407 100644 --- a/source/digits_hits/include/GateCoincidenceTimeDiffSelector.hh +++ b/source/digits_hits/include/GateCoincidenceTimeDiffSelector.hh @@ -31,9 +31,7 @@ See LICENSE.md for further details class GateCoincidenceTimeDiffSelectorMessenger; - class GateCoincidenceTimeDiffSelector : public GateVDigitizerModule - { public: diff --git a/source/digits_hits/src/GateCoincidenceDigitizerMessenger.cc b/source/digits_hits/src/GateCoincidenceDigitizerMessenger.cc index 44e98b225..76e5d4445 100644 --- a/source/digits_hits/src/GateCoincidenceDigitizerMessenger.cc +++ b/source/digits_hits/src/GateCoincidenceDigitizerMessenger.cc @@ -124,9 +124,7 @@ void GateCoincidenceDigitizerMessenger::SetNewValue(G4UIcommand* command,G4Strin const G4String& GateCoincidenceDigitizerMessenger::DumpMap() { - - - static G4String theList = "deadtime multiplesKiller buffer timeDiffSelector" ;//readout adder energyFraming timeResolution energyResolution spatialResolution efficiency deadtime pileup adderCompton opticaladder noise merger"; + static G4String theList = "deadtime multiplesKiller buffer timeDiffSelector";//readout adder energyFraming timeResolution energyResolution spatialResolution efficiency deadtime pileup adderCompton opticaladder noise merger"; return theList; @@ -165,6 +163,11 @@ void GateCoincidenceDigitizerMessenger::DoInsertion(const G4String& childTypeNam newDM = new GateCoincidenceBuffer(m_CoinDigitizer, DMname); m_CoinDigitizer->AddNewModule(newDM); } + else if (childTypeName=="timeDiffSelector") + { + newDM = new GateCoincidenceTimeDiffSelector(m_CoinDigitizer, DMname); + m_CoinDigitizer->AddNewModule(newDM); + } else if (childTypeName=="timeDiffSelector") {