44 #ifndef CEXMC_ENERGY_DEPOSIT_DIGITIZER_HH
45 #define CEXMC_ENERGY_DEPOSIT_DIGITIZER_HH
101 G4bool fromMessenger =
true );
104 G4bool fromMessenger =
true );
107 G4bool fromMessenger =
true );
112 G4bool fromMessenger =
true );
115 G4bool fromMessenger =
true );
121 G4bool fromMessenger =
true );
125 G4bool fromMessenger =
true );
128 G4bool fromMessenger =
true );
131 G4bool fromMessenger =
true );
135 G4bool fromMessenger =
true );
169 void InitializeData(
void );
186 G4int calorimeterEDLeftMaxX;
188 G4int calorimeterEDLeftMaxY;
190 G4int calorimeterEDRightMaxX;
192 G4int calorimeterEDRightMaxY;
194 G4bool monitorHasTriggered;
201 G4double vetoCounterEDLeftThreshold;
203 G4double vetoCounterEDRightThreshold;
205 G4double calorimeterEDLeftThreshold;
207 G4double calorimeterEDRightThreshold;
217 G4double vetoCounterEDLeftThresholdRef;
219 G4double vetoCounterEDRightThresholdRef;
221 G4double calorimeterEDLeftThresholdRef;
223 G4double calorimeterEDRightThresholdRef;
229 G4double outerCrystalsVetoFractionRef;
232 G4int nCrystalsInColumn;
234 G4int nCrystalsInRow;
237 G4bool applyFiniteCrystalResolution;
254 return vetoCounterEDLeft;
261 return vetoCounterEDRight;
267 return calorimeterEDLeft;
274 return calorimeterEDRight;
281 return calorimeterEDLeftMaxX;
288 return calorimeterEDLeftMaxY;
295 return calorimeterEDRightMaxX;
302 return calorimeterEDRightMaxY;
309 return calorimeterEDLeftCollection;
316 return calorimeterEDRightCollection;
322 return monitorHasTriggered;
337 value < monitorEDThresholdRef );
339 monitorEDThresholdRef =
value;
341 monitorEDThreshold =
value;
350 value > vetoCounterEDLeftThresholdRef );
352 vetoCounterEDLeftThresholdRef =
value;
354 vetoCounterEDLeftThreshold =
value;
363 value > vetoCounterEDRightThresholdRef );
365 vetoCounterEDRightThresholdRef =
value;
367 vetoCounterEDRightThreshold =
value;
375 value > vetoCounterEDLeftThresholdRef ||
376 value > vetoCounterEDRightThresholdRef );
378 vetoCounterEDLeftThreshold =
value;
379 vetoCounterEDRightThreshold =
value;
388 value < calorimeterEDLeftThresholdRef );
390 calorimeterEDLeftThresholdRef =
value;
392 calorimeterEDLeftThreshold =
value;
401 value < calorimeterEDRightThresholdRef );
403 calorimeterEDRightThresholdRef =
value;
405 calorimeterEDRightThreshold =
value;
413 value < calorimeterEDLeftThresholdRef ||
414 value < calorimeterEDRightThresholdRef );
416 calorimeterEDLeftThreshold =
value;
417 calorimeterEDRightThreshold =
value;
426 ! ( calorimeterTriggerAlgorithmRef ==
428 value == calorimeterTriggerAlgorithmRef ) );
430 calorimeterTriggerAlgorithmRef =
value;
432 calorimeterTriggerAlgorithm =
value;
442 value == outerCrystalsVetoAlgorithmRef ) );
444 outerCrystalsVetoAlgorithmRef =
value;
446 outerCrystalsVetoAlgorithm =
value;
455 value > outerCrystalsVetoFractionRef );
457 outerCrystalsVetoFractionRef =
value;
459 outerCrystalsVetoFraction =
value;
469 applyFiniteCrystalResolution =
value;
482 bottom *
GeV, top * GeV, value ) );
492 crystalResolutionData.clear();
500 crystalResolutionData =
data;
507 return column == 0 || column == nCrystalsInRow - 1 ||
508 row == 0 || row == nCrystalsInColumn - 1;
514 return monitorEDThreshold;
521 return vetoCounterEDLeftThreshold;
528 return vetoCounterEDRightThreshold;
535 return calorimeterEDLeftThreshold;
542 return calorimeterEDRightThreshold;
550 return calorimeterTriggerAlgorithm;
558 return outerCrystalsVetoAlgorithm;
565 return outerCrystalsVetoFraction;
572 return applyFiniteCrystalResolution;
579 return crystalResolutionData;
583 std::ostream &
operator<<( std::ostream & out,
G4bool HasTriggered(void) const
void SetOuterCrystalsVetoFraction(G4double value, G4bool fromMessenger=true)
void SetCalorimetersThreshold(G4double value)
G4double GetVetoCounterEDRight(void) const
void SetCalorimeterLeftThreshold(G4double value, G4bool fromMessenger=true)
CexmcEnergyDepositDigitizer(const G4String &name)
void SetVetoCountersThreshold(G4double value)
void SetOuterCrystalsVetoAlgorithm(CexmcOuterCrystalsVetoAlgorithm value, G4bool fromMessenger=true)
CexmcSimpleRangeWithValue< CexmcEnergyValueCategory > CexmcEnergyRangeWithDoubleValue
void ClearCrystalResolutionData(G4bool fromMessenger=true)
void SetCalorimeterRightThreshold(G4double value, G4bool fromMessenger=true)
void SetVetoCounterRightThreshold(G4double value, G4bool fromMessenger=true)
CexmcOuterCrystalsVetoAlgorithm GetOuterCrystalsVetoAlgorithm(void) const
G4bool IsOuterCrystal(G4int column, G4int row) const
const XML_Char const XML_Char * data
G4bool MonitorHasTriggered(void) const
G4int GetCalorimeterEDRightMaxY(void) const
G4bool IsFiniteCrystalResolutionApplied(void) const
std::vector< CexmcEnergyDepositCrystalRowCollection > CexmcEnergyDepositCalorimeterCollection
const XML_Char int const XML_Char * value
G4double GetVetoCounterEDLeft(void) const
void AddCrystalResolutionRange(G4double bottom, G4double top, G4double value, G4bool fromMessenger=true)
G4double GetMonitorED(void) const
void SetCrystalResolutionData(const CexmcEnergyRangeWithDoubleValueList &data)
const CexmcEnergyRangeWithDoubleValueList & GetCrystalResolutionData(void) const
CexmcCalorimeterTriggerAlgorithm GetCalorimeterTriggerAlgorithm(void) const
G4double GetCalorimeterRightThreshold(void) const
G4int GetCalorimeterEDLeftMaxY(void) const
G4double GetCalorimeterEDRight(void) const
~CexmcEnergyDepositDigitizer()
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
G4int GetCalorimeterEDLeftMaxX(void) const
static constexpr double GeV
void ApplyFiniteCrystalResolution(G4bool value, G4bool fromMessenger=true)
const CexmcEnergyDepositCalorimeterCollection & GetCalorimeterEDRightCollection(void) const
CexmcOuterCrystalsVetoAlgorithm
void SetCalorimeterTriggerAlgorithm(CexmcCalorimeterTriggerAlgorithm value, G4bool fromMessenger=true)
void SetVetoCounterLeftThreshold(G4double value, G4bool fromMessenger=true)
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
G4int GetCalorimeterEDRightMaxX(void) const
const CexmcEnergyDepositCalorimeterCollection & GetCalorimeterEDLeftCollection(void) const
G4double GetMonitorThreshold(void) const
G4double GetVetoCounterLeftThreshold(void) const
G4double GetOuterCrystalsVetoFraction(void) const
G4double GetCalorimeterLeftThreshold(void) const
void SetMonitorThreshold(G4double value, G4bool fromMessenger=true)
CexmcCalorimeterTriggerAlgorithm
G4double GetCalorimeterEDLeft(void) const
std::vector< CexmcEnergyRangeWithDoubleValue > CexmcEnergyRangeWithDoubleValueList
G4double GetVetoCounterRightThreshold(void) const