Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
CexmcEnergyDepositDigitizer Class Reference

#include <CexmcEnergyDepositDigitizer.hh>

Inheritance diagram for CexmcEnergyDepositDigitizer:
G4VDigitizerModule

Public Member Functions

 CexmcEnergyDepositDigitizer (const G4String &name)
 
 ~CexmcEnergyDepositDigitizer ()
 
void Digitize (void)
 
G4double GetMonitorED (void) const
 
G4double GetVetoCounterEDLeft (void) const
 
G4double GetVetoCounterEDRight (void) const
 
G4double GetCalorimeterEDLeft (void) const
 
G4double GetCalorimeterEDRight (void) const
 
G4int GetCalorimeterEDLeftMaxX (void) const
 
G4int GetCalorimeterEDLeftMaxY (void) const
 
G4int GetCalorimeterEDRightMaxX (void) const
 
G4int GetCalorimeterEDRightMaxY (void) const
 
const
CexmcEnergyDepositCalorimeterCollection
GetCalorimeterEDLeftCollection (void) const
 
const
CexmcEnergyDepositCalorimeterCollection
GetCalorimeterEDRightCollection (void) const
 
G4bool MonitorHasTriggered (void) const
 
G4bool HasTriggered (void) const
 
void SetMonitorThreshold (G4double value, G4bool fromMessenger=true)
 
void SetVetoCounterLeftThreshold (G4double value, G4bool fromMessenger=true)
 
void SetVetoCounterRightThreshold (G4double value, G4bool fromMessenger=true)
 
void SetVetoCountersThreshold (G4double value)
 
void SetCalorimeterLeftThreshold (G4double value, G4bool fromMessenger=true)
 
void SetCalorimeterRightThreshold (G4double value, G4bool fromMessenger=true)
 
void SetCalorimetersThreshold (G4double value)
 
void SetCalorimeterTriggerAlgorithm (CexmcCalorimeterTriggerAlgorithm value, G4bool fromMessenger=true)
 
void SetOuterCrystalsVetoAlgorithm (CexmcOuterCrystalsVetoAlgorithm value, G4bool fromMessenger=true)
 
void SetOuterCrystalsVetoFraction (G4double value, G4bool fromMessenger=true)
 
void ApplyFiniteCrystalResolution (G4bool value, G4bool fromMessenger=true)
 
void AddCrystalResolutionRange (G4double bottom, G4double top, G4double value, G4bool fromMessenger=true)
 
void ClearCrystalResolutionData (G4bool fromMessenger=true)
 
void SetCrystalResolutionData (const CexmcEnergyRangeWithDoubleValueList &data)
 
G4double GetMonitorThreshold (void) const
 
G4double GetVetoCounterLeftThreshold (void) const
 
G4double GetVetoCounterRightThreshold (void) const
 
G4double GetCalorimeterLeftThreshold (void) const
 
G4double GetCalorimeterRightThreshold (void) const
 
CexmcCalorimeterTriggerAlgorithm GetCalorimeterTriggerAlgorithm (void) const
 
CexmcOuterCrystalsVetoAlgorithm GetOuterCrystalsVetoAlgorithm (void) const
 
G4double GetOuterCrystalsVetoFraction (void) const
 
G4bool IsFiniteCrystalResolutionApplied (void) const
 
const
CexmcEnergyRangeWithDoubleValueList
GetCrystalResolutionData (void) const
 
G4bool IsOuterCrystal (G4int column, G4int row) const
 
- Public Member Functions inherited from G4VDigitizerModule
 G4VDigitizerModule (G4String modName)
 
virtual ~G4VDigitizerModule ()
 
int operator== (const G4VDigitizerModule &right) const
 
int operator!= (const G4VDigitizerModule &right) const
 
G4int GetNumberOfCollections () const
 
G4String GetCollectionName (G4int i) const
 
G4String GetName () const
 
void SetVerboseLevel (G4int val)
 

Additional Inherited Members

- Protected Member Functions inherited from G4VDigitizerModule
void StoreDigiCollection (G4VDigiCollection *aDC)
 
void StoreDigiCollection (G4int DCID, G4VDigiCollection *aDC)
 
- Protected Attributes inherited from G4VDigitizerModule
G4DigiManagerDigiManager
 
G4String moduleName
 
std::vector< G4StringcollectionName
 
G4int verboseLevel
 

Detailed Description

Definition at line 59 of file CexmcEnergyDepositDigitizer.hh.

Constructor & Destructor Documentation

CexmcEnergyDepositDigitizer::CexmcEnergyDepositDigitizer ( const G4String name)
explicit

Definition at line 59 of file CexmcEnergyDepositDigitizer.cc.

References CexmcSetup::GetCalorimeterGeometry(), G4RunManager::GetRunManager(), and G4RunManager::GetUserDetectorConstruction().

60  :
61  G4VDigitizerModule( name ), monitorED( 0 ),
62  vetoCounterEDLeft( 0 ), vetoCounterEDRight( 0 ),
63  calorimeterEDLeft( 0 ), calorimeterEDRight( 0 ),
64  calorimeterEDLeftMaxX( 0 ), calorimeterEDLeftMaxY( 0 ),
65  calorimeterEDRightMaxX( 0 ), calorimeterEDRightMaxY( 0 ),
66  monitorHasTriggered( false ), hasTriggered( false ),
67  monitorEDThreshold( 0 ),
68  vetoCounterEDLeftThreshold( 0 ), vetoCounterEDRightThreshold( 0 ),
69  calorimeterEDLeftThreshold( 0 ), calorimeterEDRightThreshold( 0 ),
70  calorimeterTriggerAlgorithm( CexmcAllCrystalsMakeEDTriggerThreshold ),
71  outerCrystalsVetoAlgorithm( CexmcNoOuterCrystalsVeto ),
72  outerCrystalsVetoFraction( 0 ), monitorEDThresholdRef( 0 ),
73  vetoCounterEDLeftThresholdRef( 0 ), vetoCounterEDRightThresholdRef( 0 ),
74  calorimeterEDLeftThresholdRef( 0 ), calorimeterEDRightThresholdRef( 0 ),
75  calorimeterTriggerAlgorithmRef( CexmcAllCrystalsMakeEDTriggerThreshold ),
76  outerCrystalsVetoAlgorithmRef( CexmcNoOuterCrystalsVeto ),
77  outerCrystalsVetoFractionRef( 0 ), nCrystalsInColumn( 1 ),
78  nCrystalsInRow( 1 ), applyFiniteCrystalResolution( false ),
79  messenger( NULL )
80 {
81  G4RunManager * runManager( G4RunManager::GetRunManager() );
82  const CexmcSetup * setup( static_cast< const CexmcSetup * >(
83  runManager->GetUserDetectorConstruction() ) );
84  const CexmcSetup::CalorimeterGeometryData & calorimeterGeometry(
85  setup->GetCalorimeterGeometry() );
86 
87  nCrystalsInColumn = calorimeterGeometry.nCrystalsInColumn;
88  nCrystalsInRow = calorimeterGeometry.nCrystalsInRow;
89 
90  if ( nCrystalsInColumn > 0 )
91  {
92  calorimeterEDLeftCollection.resize( nCrystalsInColumn );
93  calorimeterEDRightCollection.resize( nCrystalsInColumn );
94  }
95 
96  if ( nCrystalsInRow > 0 )
97  {
98  for ( CexmcEnergyDepositCalorimeterCollection::iterator
99  k( calorimeterEDLeftCollection.begin() );
100  k != calorimeterEDLeftCollection.end(); ++k )
101  {
102  k->resize( nCrystalsInRow );
103  }
104  for ( CexmcEnergyDepositCalorimeterCollection::iterator
105  k( calorimeterEDRightCollection.begin() );
106  k != calorimeterEDRightCollection.end(); ++k )
107  {
108  k->resize( nCrystalsInRow );
109  }
110  }
111 
112  messenger = new CexmcEnergyDepositDigitizerMessenger( this );
113 }
G4VDigitizerModule(G4String modName)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
CexmcEnergyDepositDigitizer::~CexmcEnergyDepositDigitizer ( )

Definition at line 116 of file CexmcEnergyDepositDigitizer.cc.

117 {
118  delete messenger;
119 }

Member Function Documentation

void CexmcEnergyDepositDigitizer::AddCrystalResolutionRange ( G4double  bottom,
G4double  top,
G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 473 of file CexmcEnergyDepositDigitizer.hh.

References CexmcCmdIsNotAllowed, python.hepunit::GeV, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

476 {
477  if ( fromMessenger )
479 
480  /* range boundaries are given in GeV */
481  crystalResolutionData.push_back( CexmcEnergyRangeWithDoubleValue(
482  bottom * GeV, top * GeV, value ) );
483 }
CexmcSimpleRangeWithValue< CexmcEnergyValueCategory > CexmcEnergyRangeWithDoubleValue
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::ApplyFiniteCrystalResolution ( G4bool  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 463 of file CexmcEnergyDepositDigitizer.hh.

References CexmcCmdIsNotAllowed, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

465 {
466  if ( fromMessenger )
468 
469  applyFiniteCrystalResolution = value;
470 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::ClearCrystalResolutionData ( G4bool  fromMessenger = true)
inline

Definition at line 486 of file CexmcEnergyDepositDigitizer.hh.

References CexmcCmdIsNotAllowed, and ThrowExceptionIfProjectIsRead().

Referenced by SetCrystalResolutionData(), and CexmcEnergyDepositDigitizerMessenger::SetNewValue().

488 {
489  if ( fromMessenger )
491 
492  crystalResolutionData.clear();
493 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::Digitize ( void  )
virtual

Implements G4VDigitizerModule.

Definition at line 159 of file CexmcEnergyDepositDigitizer.cc.

References CexmcCalorimeterDetectorRole, CexmcDetectorRoleName, CexmcDetectorTypeName, CexmcEDDetector, CexmcFractionOfEDInOuterCrystalsVeto, CexmcFwhmToStddev(), CexmcInnerCrystalsMakeEDTriggerThreshold, CexmcLeft, CexmcMaximumEDInASingleOuterCrystalVeto, CexmcMonitorDetectorRole, CexmcNoOuterCrystalsVeto, CexmcRight, CexmcVetoCounterDetectorRole, CexmcEnergyDepositInCalorimeter::GetColumn(), G4DigiManager::GetDMpointer(), G4DigiManager::GetHitsCollection(), G4DigiManager::GetHitsCollectionID(), CexmcEnergyDepositInCalorimeter::GetRow(), G4RunManager::GetRunManager(), CexmcEnergyDepositInLeftRightSet::GetSide(), IsOuterCrystal(), CexmcRunManager::ProjectIsRead(), and G4INCL::DeJongSpin::shoot().

Referenced by CexmcEventAction::EndOfEventAction().

160 {
161  InitializeData();
162 
163  G4DigiManager * digiManager( G4DigiManager::GetDMpointer() );
164  G4int hcId( digiManager->GetHitsCollectionID(
168  hitsCollection( static_cast< const CexmcEnergyDepositCollection * >(
169  digiManager->GetHitsCollection( hcId ) ) );
170 
171  if ( hitsCollection )
172  {
173  /* it always must have index 0 */
174  if ( ( *hitsCollection )[ 0 ] )
175  monitorED = *( *hitsCollection )[ 0 ];
176  }
177 
178  hcId = digiManager->GetHitsCollectionID(
180  "/" + CexmcDetectorTypeName[ CexmcEDDetector ] );
181  hitsCollection = static_cast< const CexmcEnergyDepositCollection * >(
182  digiManager->GetHitsCollection( hcId ) );
183  if ( hitsCollection )
184  {
185  for ( CexmcEnergyDepositCollectionData::iterator
186  k( hitsCollection->GetMap()->begin() );
187  k != hitsCollection->GetMap()->end(); ++k )
188  {
189  G4int index( k->first );
191  index ) );
192  switch ( side )
193  {
194  case CexmcLeft :
195  vetoCounterEDLeft = *k->second;
196  break;
197  case CexmcRight :
198  vetoCounterEDRight = *k->second;
199  break;
200  default :
201  break;
202  }
203  }
204  }
205 
206  G4double maxEDCrystalLeft( 0 );
207  G4double maxEDCrystalRight( 0 );
208  G4double outerCrystalsEDLeft( 0 );
209  G4double outerCrystalsEDRight( 0 );
210  G4double innerCrystalsEDLeft( 0 );
211  G4double innerCrystalsEDRight( 0 );
212 
213  CexmcRunManager * runManager( static_cast< CexmcRunManager * >(
215 
216  hcId = digiManager->GetHitsCollectionID(
218  "/" + CexmcDetectorTypeName[ CexmcEDDetector ] );
219  hitsCollection = static_cast< const CexmcEnergyDepositCollection * >(
220  digiManager->GetHitsCollection( hcId ) );
221  if ( hitsCollection )
222  {
223  for ( CexmcEnergyDepositCollectionData::iterator
224  k( hitsCollection->GetMap()->begin() );
225  k != hitsCollection->GetMap()->end(); ++k )
226  {
227  G4int index( k->first );
229  index ) );
232  index ) );
233  G4double value( *k->second );
234  if ( applyFiniteCrystalResolution && value > 0. &&
235  ! runManager->ProjectIsRead() )
236  {
237  for ( CexmcEnergyRangeWithDoubleValueList::const_iterator
238  l( crystalResolutionData.begin() );
239  l != crystalResolutionData.end(); ++l )
240  {
241  if ( value < l->bottom || value >= l->top )
242  continue;
244  value * l->value * CexmcFwhmToStddev );
245  if ( value < 0. )
246  value = 0.;
247  break;
248  }
249  }
250  switch ( side )
251  {
252  case CexmcLeft :
253  if ( value > maxEDCrystalLeft )
254  {
255  calorimeterEDLeftMaxX = column;
256  calorimeterEDLeftMaxY = row;
257  maxEDCrystalLeft = value;
258  }
259  if ( IsOuterCrystal( column, row ) )
260  {
261  outerCrystalsEDLeft += value;
262  }
263  else
264  {
265  innerCrystalsEDLeft += value;
266  }
267  calorimeterEDLeft += value;
268  calorimeterEDLeftCollection[ row ][ column ] = value;
269  break;
270  case CexmcRight :
271  if ( value > maxEDCrystalRight )
272  {
273  calorimeterEDRightMaxX = column;
274  calorimeterEDRightMaxY = row;
275  maxEDCrystalRight = value;
276  }
277  if ( IsOuterCrystal( column, row ) )
278  {
279  outerCrystalsEDRight += value;
280  }
281  else
282  {
283  innerCrystalsEDRight += value;
284  }
285  calorimeterEDRight += value;
286  calorimeterEDRightCollection[ row ][ column ] = value;
287  break;
288  default :
289  break;
290  }
291  }
292  }
293 
294  G4double calorimeterEDLeftEffective( calorimeterEDLeft );
295  G4double calorimeterEDRightEffective( calorimeterEDRight );
296 
297  if ( calorimeterTriggerAlgorithm ==
299  {
300  calorimeterEDLeftEffective = innerCrystalsEDLeft;
301  calorimeterEDRightEffective = innerCrystalsEDRight;
302  }
303 
304  monitorHasTriggered = monitorED >= monitorEDThreshold;
305 
306  hasTriggered = monitorHasTriggered &&
307  vetoCounterEDLeft < vetoCounterEDLeftThreshold &&
308  vetoCounterEDRight < vetoCounterEDRightThreshold &&
309  calorimeterEDLeftEffective >= calorimeterEDLeftThreshold &&
310  calorimeterEDRightEffective >= calorimeterEDRightThreshold;
311 
312  /* event won't trigger if outer crystals veto triggered */
313  if ( hasTriggered )
314  {
315  switch ( outerCrystalsVetoAlgorithm )
316  {
318  break;
320  hasTriggered =
321  ! IsOuterCrystal( calorimeterEDLeftMaxX,
322  calorimeterEDLeftMaxY ) &&
323  ! IsOuterCrystal( calorimeterEDRightMaxX,
324  calorimeterEDRightMaxY );
325  break;
327  hasTriggered =
328  ( ( outerCrystalsEDLeft / calorimeterEDLeft ) <
329  outerCrystalsVetoFraction ) &&
330  ( ( outerCrystalsEDRight / calorimeterEDRight ) <
331  outerCrystalsVetoFraction );
332  break;
333  default :
334  break;
335  }
336  }
337 }
ThreeVector shoot(const G4int Ap, const G4int Af)
const G4String CexmcDetectorTypeName[CexmcNumberOfDetectorTypes]
static G4DigiManager * GetDMpointer()
int G4int
Definition: G4Types.hh:78
G4bool IsOuterCrystal(G4int column, G4int row) const
const G4String CexmcDetectorRoleName[CexmcNumberOfDetectorRoles]
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
CexmcSide
Definition: CexmcCommon.hh:132
const G4double CexmcFwhmToStddev(0.42466)
const XML_Char int const XML_Char * value
double G4double
Definition: G4Types.hh:76
G4double CexmcEnergyDepositDigitizer::GetCalorimeterEDLeft ( void  ) const
inline

Definition at line 265 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

266 {
267  return calorimeterEDLeft;
268 }
const CexmcEnergyDepositCalorimeterCollection & CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftCollection ( void  ) const
inline

Definition at line 307 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

308 {
309  return calorimeterEDLeftCollection;
310 }
G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftMaxX ( void  ) const
inline

Definition at line 278 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

280 {
281  return calorimeterEDLeftMaxX;
282 }
G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftMaxY ( void  ) const
inline

Definition at line 285 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

287 {
288  return calorimeterEDLeftMaxY;
289 }
G4double CexmcEnergyDepositDigitizer::GetCalorimeterEDRight ( void  ) const
inline

Definition at line 271 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

273 {
274  return calorimeterEDRight;
275 }
const CexmcEnergyDepositCalorimeterCollection & CexmcEnergyDepositDigitizer::GetCalorimeterEDRightCollection ( void  ) const
inline

Definition at line 314 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

315 {
316  return calorimeterEDRightCollection;
317 }
G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDRightMaxX ( void  ) const
inline

Definition at line 292 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

294 {
295  return calorimeterEDRightMaxX;
296 }
G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDRightMaxY ( void  ) const
inline

Definition at line 299 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

301 {
302  return calorimeterEDRightMaxY;
303 }
G4double CexmcEnergyDepositDigitizer::GetCalorimeterLeftThreshold ( void  ) const
inline

Definition at line 532 of file CexmcEnergyDepositDigitizer.hh.

534 {
535  return calorimeterEDLeftThreshold;
536 }
G4double CexmcEnergyDepositDigitizer::GetCalorimeterRightThreshold ( void  ) const
inline

Definition at line 539 of file CexmcEnergyDepositDigitizer.hh.

541 {
542  return calorimeterEDRightThreshold;
543 }
CexmcCalorimeterTriggerAlgorithm CexmcEnergyDepositDigitizer::GetCalorimeterTriggerAlgorithm ( void  ) const
inline

Definition at line 547 of file CexmcEnergyDepositDigitizer.hh.

549 {
550  return calorimeterTriggerAlgorithm;
551 }
const CexmcEnergyRangeWithDoubleValueList & CexmcEnergyDepositDigitizer::GetCrystalResolutionData ( void  ) const
inline

Definition at line 577 of file CexmcEnergyDepositDigitizer.hh.

578 {
579  return crystalResolutionData;
580 }
G4double CexmcEnergyDepositDigitizer::GetMonitorED ( void  ) const
inline

Definition at line 246 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

247 {
248  return monitorED;
249 }
G4double CexmcEnergyDepositDigitizer::GetMonitorThreshold ( void  ) const
inline

Definition at line 512 of file CexmcEnergyDepositDigitizer.hh.

513 {
514  return monitorEDThreshold;
515 }
CexmcOuterCrystalsVetoAlgorithm CexmcEnergyDepositDigitizer::GetOuterCrystalsVetoAlgorithm ( void  ) const
inline

Definition at line 555 of file CexmcEnergyDepositDigitizer.hh.

557 {
558  return outerCrystalsVetoAlgorithm;
559 }
G4double CexmcEnergyDepositDigitizer::GetOuterCrystalsVetoFraction ( void  ) const
inline

Definition at line 562 of file CexmcEnergyDepositDigitizer.hh.

564 {
565  return outerCrystalsVetoFraction;
566 }
G4double CexmcEnergyDepositDigitizer::GetVetoCounterEDLeft ( void  ) const
inline

Definition at line 252 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

253 {
254  return vetoCounterEDLeft;
255 }
G4double CexmcEnergyDepositDigitizer::GetVetoCounterEDRight ( void  ) const
inline

Definition at line 258 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::MakeEnergyDepositStore().

260 {
261  return vetoCounterEDRight;
262 }
G4double CexmcEnergyDepositDigitizer::GetVetoCounterLeftThreshold ( void  ) const
inline

Definition at line 518 of file CexmcEnergyDepositDigitizer.hh.

520 {
521  return vetoCounterEDLeftThreshold;
522 }
G4double CexmcEnergyDepositDigitizer::GetVetoCounterRightThreshold ( void  ) const
inline

Definition at line 525 of file CexmcEnergyDepositDigitizer.hh.

527 {
528  return vetoCounterEDRightThreshold;
529 }
G4bool CexmcEnergyDepositDigitizer::HasTriggered ( void  ) const
inline

Definition at line 326 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::EndOfEventAction().

327 {
328  return hasTriggered;
329 }
G4bool CexmcEnergyDepositDigitizer::IsFiniteCrystalResolutionApplied ( void  ) const
inline

Definition at line 569 of file CexmcEnergyDepositDigitizer.hh.

571 {
572  return applyFiniteCrystalResolution;
573 }
G4bool CexmcEnergyDepositDigitizer::IsOuterCrystal ( G4int  column,
G4int  row 
) const
inline

Definition at line 504 of file CexmcEnergyDepositDigitizer.hh.

Referenced by Digitize().

506 {
507  return column == 0 || column == nCrystalsInRow - 1 ||
508  row == 0 || row == nCrystalsInColumn - 1;
509 }
G4bool CexmcEnergyDepositDigitizer::MonitorHasTriggered ( void  ) const
inline

Definition at line 320 of file CexmcEnergyDepositDigitizer.hh.

Referenced by CexmcEventAction::EndOfEventAction().

321 {
322  return monitorHasTriggered;
323 }
void CexmcEnergyDepositDigitizer::SetCalorimeterLeftThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 383 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

385 {
386  if ( fromMessenger )
388  value < calorimeterEDLeftThresholdRef );
389  else
390  calorimeterEDLeftThresholdRef = value;
391 
392  calorimeterEDLeftThreshold = value;
393 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetCalorimeterRightThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 396 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

398 {
399  if ( fromMessenger )
401  value < calorimeterEDRightThresholdRef );
402  else
403  calorimeterEDRightThresholdRef = value;
404 
405  calorimeterEDRightThreshold = value;
406 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetCalorimetersThreshold ( G4double  value)
inline

Definition at line 409 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

411 {
413  value < calorimeterEDLeftThresholdRef ||
414  value < calorimeterEDRightThresholdRef );
415 
416  calorimeterEDLeftThreshold = value;
417  calorimeterEDRightThreshold = value;
418 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetCalorimeterTriggerAlgorithm ( CexmcCalorimeterTriggerAlgorithm  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 421 of file CexmcEnergyDepositDigitizer.hh.

References CexmcAllCrystalsMakeEDTriggerThreshold, CexmcBadCalorimeterTriggerAlgorithm, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

423 {
424  if ( fromMessenger )
426  ! ( calorimeterTriggerAlgorithmRef ==
428  value == calorimeterTriggerAlgorithmRef ) );
429  else
430  calorimeterTriggerAlgorithmRef = value;
431 
432  calorimeterTriggerAlgorithm = value;
433 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetCrystalResolutionData ( const CexmcEnergyRangeWithDoubleValueList data)
inline

Definition at line 496 of file CexmcEnergyDepositDigitizer.hh.

References ClearCrystalResolutionData().

498 {
500  crystalResolutionData = data;
501 }
void ClearCrystalResolutionData(G4bool fromMessenger=true)
const XML_Char const XML_Char * data
void CexmcEnergyDepositDigitizer::SetMonitorThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 332 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

334 {
335  if ( fromMessenger )
337  value < monitorEDThresholdRef );
338  else
339  monitorEDThresholdRef = value;
340 
341  monitorEDThreshold = value;
342 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetOuterCrystalsVetoAlgorithm ( CexmcOuterCrystalsVetoAlgorithm  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 436 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadOCVetoAlgorithm, CexmcNoOuterCrystalsVeto, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

438 {
439  if ( fromMessenger )
441  ! ( outerCrystalsVetoAlgorithmRef == CexmcNoOuterCrystalsVeto ||
442  value == outerCrystalsVetoAlgorithmRef ) );
443  else
444  outerCrystalsVetoAlgorithmRef = value;
445 
446  outerCrystalsVetoAlgorithm = value;
447 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetOuterCrystalsVetoFraction ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 450 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadOCVetoFraction, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

452 {
453  if ( fromMessenger )
455  value > outerCrystalsVetoFractionRef );
456  else
457  outerCrystalsVetoFractionRef = value;
458 
459  outerCrystalsVetoFraction = value;
460 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetVetoCounterLeftThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 345 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

347 {
348  if ( fromMessenger )
350  value > vetoCounterEDLeftThresholdRef );
351  else
352  vetoCounterEDLeftThresholdRef = value;
353 
354  vetoCounterEDLeftThreshold = value;
355 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetVetoCounterRightThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 358 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

360 {
361  if ( fromMessenger )
363  value > vetoCounterEDRightThresholdRef );
364  else
365  vetoCounterEDRightThresholdRef = value;
366 
367  vetoCounterEDRightThreshold = value;
368 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
void CexmcEnergyDepositDigitizer::SetVetoCountersThreshold ( G4double  value)
inline

Definition at line 371 of file CexmcEnergyDepositDigitizer.hh.

References CexmcBadThreshold, and ThrowExceptionIfProjectIsRead().

Referenced by CexmcEnergyDepositDigitizerMessenger::SetNewValue().

373 {
375  value > vetoCounterEDLeftThresholdRef ||
376  value > vetoCounterEDRightThresholdRef );
377 
378  vetoCounterEDLeftThreshold = value;
379  vetoCounterEDRightThreshold = value;
380 }
const XML_Char int const XML_Char * value
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)

The documentation for this class was generated from the following files: