44 #ifndef CEXMC_ENERGY_DEPOSIT_DIGITIZER_HH
45 #define CEXMC_ENERGY_DEPOSIT_DIGITIZER_HH
102 G4bool fromMessenger =
true );
105 G4bool fromMessenger =
true );
108 G4bool fromMessenger =
true );
113 G4bool fromMessenger =
true );
116 G4bool fromMessenger =
true );
122 G4bool fromMessenger =
true );
126 G4bool fromMessenger =
true );
129 G4bool fromMessenger =
true );
132 G4bool fromMessenger =
true );
136 G4bool fromMessenger =
true );
170 void InitializeData(
void );
187 G4int calorimeterEDLeftMaxX;
189 G4int calorimeterEDLeftMaxY;
191 G4int calorimeterEDRightMaxX;
193 G4int calorimeterEDRightMaxY;
195 G4bool monitorHasTriggered;
202 G4double vetoCounterEDLeftThreshold;
204 G4double vetoCounterEDRightThreshold;
206 G4double calorimeterEDLeftThreshold;
208 G4double calorimeterEDRightThreshold;
218 G4double vetoCounterEDLeftThresholdRef;
220 G4double vetoCounterEDRightThresholdRef;
222 G4double calorimeterEDLeftThresholdRef;
224 G4double calorimeterEDRightThresholdRef;
230 G4double outerCrystalsVetoFractionRef;
233 G4int nCrystalsInColumn;
235 G4int nCrystalsInRow;
238 G4bool applyFiniteCrystalResolution;
255 return vetoCounterEDLeft;
262 return vetoCounterEDRight;
268 return calorimeterEDLeft;
275 return calorimeterEDRight;
282 return calorimeterEDLeftMaxX;
289 return calorimeterEDLeftMaxY;
296 return calorimeterEDRightMaxX;
303 return calorimeterEDRightMaxY;
310 return calorimeterEDLeftCollection;
317 return calorimeterEDRightCollection;
323 return monitorHasTriggered;
338 value < monitorEDThresholdRef );
340 monitorEDThresholdRef =
value;
342 monitorEDThreshold =
value;
351 value > vetoCounterEDLeftThresholdRef );
353 vetoCounterEDLeftThresholdRef =
value;
355 vetoCounterEDLeftThreshold =
value;
364 value > vetoCounterEDRightThresholdRef );
366 vetoCounterEDRightThresholdRef =
value;
368 vetoCounterEDRightThreshold =
value;
376 value > vetoCounterEDLeftThresholdRef ||
377 value > vetoCounterEDRightThresholdRef );
379 vetoCounterEDLeftThreshold =
value;
380 vetoCounterEDRightThreshold =
value;
389 value < calorimeterEDLeftThresholdRef );
391 calorimeterEDLeftThresholdRef =
value;
393 calorimeterEDLeftThreshold =
value;
402 value < calorimeterEDRightThresholdRef );
404 calorimeterEDRightThresholdRef =
value;
406 calorimeterEDRightThreshold =
value;
414 value < calorimeterEDLeftThresholdRef ||
415 value < calorimeterEDRightThresholdRef );
417 calorimeterEDLeftThreshold =
value;
418 calorimeterEDRightThreshold =
value;
427 ! ( calorimeterTriggerAlgorithmRef ==
429 value == calorimeterTriggerAlgorithmRef ) );
431 calorimeterTriggerAlgorithmRef =
value;
433 calorimeterTriggerAlgorithm =
value;
443 value == outerCrystalsVetoAlgorithmRef ) );
445 outerCrystalsVetoAlgorithmRef =
value;
447 outerCrystalsVetoAlgorithm =
value;
456 value > outerCrystalsVetoFractionRef );
458 outerCrystalsVetoFractionRef =
value;
460 outerCrystalsVetoFraction =
value;
470 applyFiniteCrystalResolution =
value;
483 bottom * CLHEP::GeV, top * CLHEP::GeV, value ) );
493 crystalResolutionData.clear();
501 crystalResolutionData =
data;
508 return column == 0 || column == nCrystalsInRow - 1 ||
509 row == 0 || row == nCrystalsInColumn - 1;
515 return monitorEDThreshold;
522 return vetoCounterEDLeftThreshold;
529 return vetoCounterEDRightThreshold;
536 return calorimeterEDLeftThreshold;
543 return calorimeterEDRightThreshold;
551 return calorimeterTriggerAlgorithm;
559 return outerCrystalsVetoAlgorithm;
566 return outerCrystalsVetoFraction;
573 return applyFiniteCrystalResolution;
580 return crystalResolutionData;
584 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
G4bool MonitorHasTriggered(void) const
G4int GetCalorimeterEDRightMaxY(void) const
G4bool IsFiniteCrystalResolutionApplied(void) const
std::vector< CexmcEnergyDepositCrystalRowCollection > CexmcEnergyDepositCalorimeterCollection
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
void ApplyFiniteCrystalResolution(G4bool value, G4bool fromMessenger=true)
const CexmcEnergyDepositCalorimeterCollection & GetCalorimeterEDRightCollection(void) const
CexmcOuterCrystalsVetoAlgorithm
const XML_Char int const XML_Char * value
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
const XML_Char const XML_Char * data
G4double GetCalorimeterEDLeft(void) const
std::vector< CexmcEnergyRangeWithDoubleValue > CexmcEnergyRangeWithDoubleValueList
G4double GetVetoCounterRightThreshold(void) const