Geant4  10.02.p03
CexmcEnergyDepositDigitizer Class Reference

#include <CexmcEnergyDepositDigitizer.hh>

Inheritance diagram for CexmcEnergyDepositDigitizer:
Collaboration diagram for CexmcEnergyDepositDigitizer:

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 CexmcEnergyDepositCalorimeterCollectionGetCalorimeterEDLeftCollection (void) const
 
const CexmcEnergyDepositCalorimeterCollectionGetCalorimeterEDRightCollection (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 CexmcEnergyRangeWithDoubleValueListGetCrystalResolutionData (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)
 

Private Member Functions

void InitializeData (void)
 

Private Attributes

G4double monitorED
 
G4double vetoCounterEDLeft
 
G4double vetoCounterEDRight
 
CexmcEnergyDepositCalorimeterCollection calorimeterEDLeftCollection
 
CexmcEnergyDepositCalorimeterCollection calorimeterEDRightCollection
 
G4double calorimeterEDLeft
 
G4double calorimeterEDRight
 
G4int calorimeterEDLeftMaxX
 
G4int calorimeterEDLeftMaxY
 
G4int calorimeterEDRightMaxX
 
G4int calorimeterEDRightMaxY
 
G4bool monitorHasTriggered
 
G4bool hasTriggered
 
G4double monitorEDThreshold
 
G4double vetoCounterEDLeftThreshold
 
G4double vetoCounterEDRightThreshold
 
G4double calorimeterEDLeftThreshold
 
G4double calorimeterEDRightThreshold
 
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithm
 
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithm
 
G4double outerCrystalsVetoFraction
 
G4double monitorEDThresholdRef
 
G4double vetoCounterEDLeftThresholdRef
 
G4double vetoCounterEDRightThresholdRef
 
G4double calorimeterEDLeftThresholdRef
 
G4double calorimeterEDRightThresholdRef
 
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithmRef
 
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithmRef
 
G4double outerCrystalsVetoFractionRef
 
G4int nCrystalsInColumn
 
G4int nCrystalsInRow
 
G4bool applyFiniteCrystalResolution
 
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
 
CexmcEnergyDepositDigitizerMessengermessenger
 

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::CexmcEnergyDepositDigitizer ( const G4String name)
explicit

Definition at line 59 of file CexmcEnergyDepositDigitizer.cc.

60  :
61  G4VDigitizerModule( name ), monitorED( 0 ),
66  monitorHasTriggered( false ), hasTriggered( false ),
67  monitorEDThreshold( 0 ),
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 
113 }
G4VDigitizerModule(G4String modName)
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithmRef
CexmcEnergyDepositCalorimeterCollection calorimeterEDRightCollection
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithmRef
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithm
CexmcEnergyDepositDigitizerMessenger * messenger
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithm
CexmcEnergyDepositCalorimeterCollection calorimeterEDLeftCollection
Here is the call graph for this function:

◆ ~CexmcEnergyDepositDigitizer()

CexmcEnergyDepositDigitizer::~CexmcEnergyDepositDigitizer ( )

Definition at line 116 of file CexmcEnergyDepositDigitizer.cc.

117 {
118  delete messenger;
119 }
CexmcEnergyDepositDigitizerMessenger * messenger

Member Function Documentation

◆ AddCrystalResolutionRange()

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

Definition at line 473 of file CexmcEnergyDepositDigitizer.hh.

476 {
477  if ( fromMessenger )
479 
480  /* range boundaries are given in GeV */
482  bottom * GeV, top * GeV, value ) );
483 }
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
CexmcSimpleRangeWithValue< CexmcEnergyValueCategory > CexmcEnergyRangeWithDoubleValue
static const double GeV
Definition: G4SIunits.hh:214
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyFiniteCrystalResolution()

void CexmcEnergyDepositDigitizer::ApplyFiniteCrystalResolution ( G4bool  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 463 of file CexmcEnergyDepositDigitizer.hh.

465 {
466  if ( fromMessenger )
468 
470 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearCrystalResolutionData()

void CexmcEnergyDepositDigitizer::ClearCrystalResolutionData ( G4bool  fromMessenger = true)
inline

Definition at line 486 of file CexmcEnergyDepositDigitizer.hh.

488 {
489  if ( fromMessenger )
491 
492  crystalResolutionData.clear();
493 }
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Digitize()

void CexmcEnergyDepositDigitizer::Digitize ( void  )
virtual

Implements G4VDigitizerModule.

Definition at line 159 of file CexmcEnergyDepositDigitizer.cc.

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;
243  value = G4RandGauss::shoot( value,
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;
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 
299  {
300  calorimeterEDLeftEffective = innerCrystalsEDLeft;
301  calorimeterEDRightEffective = innerCrystalsEDRight;
302  }
303 
305 
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 =
325  break;
327  hasTriggered =
328  ( ( outerCrystalsEDLeft / calorimeterEDLeft ) <
330  ( ( outerCrystalsEDRight / calorimeterEDRight ) <
332  break;
333  default :
334  break;
335  }
336  }
337 }
ThreeVector shoot(const G4int Ap, const G4int Af)
Int_t index
CexmcEnergyDepositCalorimeterCollection calorimeterEDRightCollection
const G4String CexmcDetectorTypeName[CexmcNumberOfDetectorTypes]
static G4DigiManager * GetDMpointer()
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithm
int G4int
Definition: G4Types.hh:78
G4bool IsOuterCrystal(G4int column, G4int row) const
const G4String CexmcDetectorRoleName[CexmcNumberOfDetectorRoles]
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
CexmcSide
Definition: CexmcCommon.hh:132
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithm
CexmcEnergyDepositCalorimeterCollection calorimeterEDLeftCollection
const G4double CexmcFwhmToStddev(0.42466)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCalorimeterEDLeft()

G4double CexmcEnergyDepositDigitizer::GetCalorimeterEDLeft ( void  ) const
inline

Definition at line 265 of file CexmcEnergyDepositDigitizer.hh.

266 {
267  return calorimeterEDLeft;
268 }
Here is the caller graph for this function:

◆ GetCalorimeterEDLeftCollection()

const CexmcEnergyDepositCalorimeterCollection & CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftCollection ( void  ) const
inline

Definition at line 307 of file CexmcEnergyDepositDigitizer.hh.

308 {
310 }
CexmcEnergyDepositCalorimeterCollection calorimeterEDLeftCollection
Here is the caller graph for this function:

◆ GetCalorimeterEDLeftMaxX()

G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftMaxX ( void  ) const
inline

Definition at line 278 of file CexmcEnergyDepositDigitizer.hh.

Here is the caller graph for this function:

◆ GetCalorimeterEDLeftMaxY()

G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDLeftMaxY ( void  ) const
inline

Definition at line 285 of file CexmcEnergyDepositDigitizer.hh.

Here is the caller graph for this function:

◆ GetCalorimeterEDRight()

G4double CexmcEnergyDepositDigitizer::GetCalorimeterEDRight ( void  ) const
inline

Definition at line 271 of file CexmcEnergyDepositDigitizer.hh.

273 {
274  return calorimeterEDRight;
275 }
Here is the caller graph for this function:

◆ GetCalorimeterEDRightCollection()

const CexmcEnergyDepositCalorimeterCollection & CexmcEnergyDepositDigitizer::GetCalorimeterEDRightCollection ( void  ) const
inline

Definition at line 314 of file CexmcEnergyDepositDigitizer.hh.

315 {
317 }
CexmcEnergyDepositCalorimeterCollection calorimeterEDRightCollection
Here is the caller graph for this function:

◆ GetCalorimeterEDRightMaxX()

G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDRightMaxX ( void  ) const
inline

Definition at line 292 of file CexmcEnergyDepositDigitizer.hh.

Here is the caller graph for this function:

◆ GetCalorimeterEDRightMaxY()

G4int CexmcEnergyDepositDigitizer::GetCalorimeterEDRightMaxY ( void  ) const
inline

Definition at line 299 of file CexmcEnergyDepositDigitizer.hh.

Here is the caller graph for this function:

◆ GetCalorimeterLeftThreshold()

G4double CexmcEnergyDepositDigitizer::GetCalorimeterLeftThreshold ( void  ) const
inline

Definition at line 532 of file CexmcEnergyDepositDigitizer.hh.

534 {
536 }
Here is the caller graph for this function:

◆ GetCalorimeterRightThreshold()

G4double CexmcEnergyDepositDigitizer::GetCalorimeterRightThreshold ( void  ) const
inline

Definition at line 539 of file CexmcEnergyDepositDigitizer.hh.

541 {
543 }
Here is the caller graph for this function:

◆ GetCalorimeterTriggerAlgorithm()

CexmcCalorimeterTriggerAlgorithm CexmcEnergyDepositDigitizer::GetCalorimeterTriggerAlgorithm ( void  ) const
inline

Definition at line 547 of file CexmcEnergyDepositDigitizer.hh.

549 {
551 }
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithm
Here is the caller graph for this function:

◆ GetCrystalResolutionData()

const CexmcEnergyRangeWithDoubleValueList & CexmcEnergyDepositDigitizer::GetCrystalResolutionData ( void  ) const
inline

Definition at line 577 of file CexmcEnergyDepositDigitizer.hh.

578 {
579  return crystalResolutionData;
580 }
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMonitorED()

G4double CexmcEnergyDepositDigitizer::GetMonitorED ( void  ) const
inline

Definition at line 246 of file CexmcEnergyDepositDigitizer.hh.

247 {
248  return monitorED;
249 }
Here is the caller graph for this function:

◆ GetMonitorThreshold()

G4double CexmcEnergyDepositDigitizer::GetMonitorThreshold ( void  ) const
inline

Definition at line 512 of file CexmcEnergyDepositDigitizer.hh.

513 {
514  return monitorEDThreshold;
515 }
Here is the caller graph for this function:

◆ GetOuterCrystalsVetoAlgorithm()

CexmcOuterCrystalsVetoAlgorithm CexmcEnergyDepositDigitizer::GetOuterCrystalsVetoAlgorithm ( void  ) const
inline

Definition at line 555 of file CexmcEnergyDepositDigitizer.hh.

557 {
559 }
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithm
Here is the caller graph for this function:

◆ GetOuterCrystalsVetoFraction()

G4double CexmcEnergyDepositDigitizer::GetOuterCrystalsVetoFraction ( void  ) const
inline

Definition at line 562 of file CexmcEnergyDepositDigitizer.hh.

564 {
566 }
Here is the caller graph for this function:

◆ GetVetoCounterEDLeft()

G4double CexmcEnergyDepositDigitizer::GetVetoCounterEDLeft ( void  ) const
inline

Definition at line 252 of file CexmcEnergyDepositDigitizer.hh.

253 {
254  return vetoCounterEDLeft;
255 }
Here is the caller graph for this function:

◆ GetVetoCounterEDRight()

G4double CexmcEnergyDepositDigitizer::GetVetoCounterEDRight ( void  ) const
inline

Definition at line 258 of file CexmcEnergyDepositDigitizer.hh.

260 {
261  return vetoCounterEDRight;
262 }
Here is the caller graph for this function:

◆ GetVetoCounterLeftThreshold()

G4double CexmcEnergyDepositDigitizer::GetVetoCounterLeftThreshold ( void  ) const
inline

Definition at line 518 of file CexmcEnergyDepositDigitizer.hh.

520 {
522 }
Here is the caller graph for this function:

◆ GetVetoCounterRightThreshold()

G4double CexmcEnergyDepositDigitizer::GetVetoCounterRightThreshold ( void  ) const
inline

Definition at line 525 of file CexmcEnergyDepositDigitizer.hh.

527 {
529 }
Here is the caller graph for this function:

◆ HasTriggered()

G4bool CexmcEnergyDepositDigitizer::HasTriggered ( void  ) const
inline

Definition at line 326 of file CexmcEnergyDepositDigitizer.hh.

327 {
328  return hasTriggered;
329 }
Here is the caller graph for this function:

◆ InitializeData()

void CexmcEnergyDepositDigitizer::InitializeData ( void  )
private

Definition at line 122 of file CexmcEnergyDepositDigitizer.cc.

123 {
124  monitorED = 0;
125  vetoCounterEDLeft = 0;
126  vetoCounterEDRight = 0;
127  calorimeterEDLeft = 0;
128  calorimeterEDRight = 0;
133  monitorHasTriggered = false;
134  hasTriggered = false;
135 
136  for ( CexmcEnergyDepositCalorimeterCollection::iterator
137  k( calorimeterEDLeftCollection.begin() );
138  k != calorimeterEDLeftCollection.end(); ++k )
139  {
140  for ( CexmcEnergyDepositCrystalRowCollection::iterator
141  l( k->begin() ); l != k->end(); ++l )
142  {
143  *l = 0;
144  }
145  }
146  for ( CexmcEnergyDepositCalorimeterCollection::iterator
147  k( calorimeterEDRightCollection.begin() );
148  k != calorimeterEDRightCollection.end(); ++k )
149  {
150  for ( CexmcEnergyDepositCrystalRowCollection::iterator
151  l( k->begin() ); l != k->end(); ++l )
152  {
153  *l = 0;
154  }
155  }
156 }
CexmcEnergyDepositCalorimeterCollection calorimeterEDRightCollection
CexmcEnergyDepositCalorimeterCollection calorimeterEDLeftCollection
Here is the caller graph for this function:

◆ IsFiniteCrystalResolutionApplied()

G4bool CexmcEnergyDepositDigitizer::IsFiniteCrystalResolutionApplied ( void  ) const
inline

Definition at line 569 of file CexmcEnergyDepositDigitizer.hh.

Here is the caller graph for this function:

◆ IsOuterCrystal()

G4bool CexmcEnergyDepositDigitizer::IsOuterCrystal ( G4int  column,
G4int  row 
) const
inline

Definition at line 504 of file CexmcEnergyDepositDigitizer.hh.

506 {
507  return column == 0 || column == nCrystalsInRow - 1 ||
508  row == 0 || row == nCrystalsInColumn - 1;
509 }
Here is the caller graph for this function:

◆ MonitorHasTriggered()

G4bool CexmcEnergyDepositDigitizer::MonitorHasTriggered ( void  ) const
inline

Definition at line 320 of file CexmcEnergyDepositDigitizer.hh.

321 {
322  return monitorHasTriggered;
323 }
Here is the caller graph for this function:

◆ SetCalorimeterLeftThreshold()

void CexmcEnergyDepositDigitizer::SetCalorimeterLeftThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 383 of file CexmcEnergyDepositDigitizer.hh.

385 {
386  if ( fromMessenger )
389  else
391 
393 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetCalorimeterRightThreshold()

void CexmcEnergyDepositDigitizer::SetCalorimeterRightThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 396 of file CexmcEnergyDepositDigitizer.hh.

398 {
399  if ( fromMessenger )
402  else
404 
406 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetCalorimetersThreshold()

void CexmcEnergyDepositDigitizer::SetCalorimetersThreshold ( G4double  value)
inline

Definition at line 409 of file CexmcEnergyDepositDigitizer.hh.

411 {
415 
418 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetCalorimeterTriggerAlgorithm()

void CexmcEnergyDepositDigitizer::SetCalorimeterTriggerAlgorithm ( CexmcCalorimeterTriggerAlgorithm  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 421 of file CexmcEnergyDepositDigitizer.hh.

423 {
424  if ( fromMessenger )
428  value == calorimeterTriggerAlgorithmRef ) );
429  else
431 
433 }
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithmRef
CexmcCalorimeterTriggerAlgorithm calorimeterTriggerAlgorithm
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetCrystalResolutionData()

void CexmcEnergyDepositDigitizer::SetCrystalResolutionData ( const CexmcEnergyRangeWithDoubleValueList data)
inline

Definition at line 496 of file CexmcEnergyDepositDigitizer.hh.

498 {
500  crystalResolutionData = data;
501 }
CexmcEnergyRangeWithDoubleValueList crystalResolutionData
void ClearCrystalResolutionData(G4bool fromMessenger=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetMonitorThreshold()

void CexmcEnergyDepositDigitizer::SetMonitorThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 332 of file CexmcEnergyDepositDigitizer.hh.

334 {
335  if ( fromMessenger )
337  value < monitorEDThresholdRef );
338  else
339  monitorEDThresholdRef = value;
340 
341  monitorEDThreshold = value;
342 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetOuterCrystalsVetoAlgorithm()

void CexmcEnergyDepositDigitizer::SetOuterCrystalsVetoAlgorithm ( CexmcOuterCrystalsVetoAlgorithm  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 436 of file CexmcEnergyDepositDigitizer.hh.

438 {
439  if ( fromMessenger )
442  value == outerCrystalsVetoAlgorithmRef ) );
443  else
445 
447 }
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithmRef
CexmcOuterCrystalsVetoAlgorithm outerCrystalsVetoAlgorithm
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetOuterCrystalsVetoFraction()

void CexmcEnergyDepositDigitizer::SetOuterCrystalsVetoFraction ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 450 of file CexmcEnergyDepositDigitizer.hh.

452 {
453  if ( fromMessenger )
456  else
458 
460 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVetoCounterLeftThreshold()

void CexmcEnergyDepositDigitizer::SetVetoCounterLeftThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 345 of file CexmcEnergyDepositDigitizer.hh.

347 {
348  if ( fromMessenger )
351  else
353 
355 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVetoCounterRightThreshold()

void CexmcEnergyDepositDigitizer::SetVetoCounterRightThreshold ( G4double  value,
G4bool  fromMessenger = true 
)
inline

Definition at line 358 of file CexmcEnergyDepositDigitizer.hh.

360 {
361  if ( fromMessenger )
364  else
366 
368 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVetoCountersThreshold()

void CexmcEnergyDepositDigitizer::SetVetoCountersThreshold ( G4double  value)
inline

Definition at line 371 of file CexmcEnergyDepositDigitizer.hh.

373 {
377 
380 }
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ applyFiniteCrystalResolution

G4bool CexmcEnergyDepositDigitizer::applyFiniteCrystalResolution
private

Definition at line 237 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeft

G4double CexmcEnergyDepositDigitizer::calorimeterEDLeft
private

Definition at line 182 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeftCollection

CexmcEnergyDepositCalorimeterCollection CexmcEnergyDepositDigitizer::calorimeterEDLeftCollection
private

Definition at line 178 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeftMaxX

G4int CexmcEnergyDepositDigitizer::calorimeterEDLeftMaxX
private

Definition at line 186 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeftMaxY

G4int CexmcEnergyDepositDigitizer::calorimeterEDLeftMaxY
private

Definition at line 188 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeftThreshold

G4double CexmcEnergyDepositDigitizer::calorimeterEDLeftThreshold
private

Definition at line 205 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDLeftThresholdRef

G4double CexmcEnergyDepositDigitizer::calorimeterEDLeftThresholdRef
private

Definition at line 221 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRight

G4double CexmcEnergyDepositDigitizer::calorimeterEDRight
private

Definition at line 184 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRightCollection

CexmcEnergyDepositCalorimeterCollection CexmcEnergyDepositDigitizer::calorimeterEDRightCollection
private

Definition at line 180 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRightMaxX

G4int CexmcEnergyDepositDigitizer::calorimeterEDRightMaxX
private

Definition at line 190 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRightMaxY

G4int CexmcEnergyDepositDigitizer::calorimeterEDRightMaxY
private

Definition at line 192 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRightThreshold

G4double CexmcEnergyDepositDigitizer::calorimeterEDRightThreshold
private

Definition at line 207 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterEDRightThresholdRef

G4double CexmcEnergyDepositDigitizer::calorimeterEDRightThresholdRef
private

Definition at line 223 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterTriggerAlgorithm

CexmcCalorimeterTriggerAlgorithm CexmcEnergyDepositDigitizer::calorimeterTriggerAlgorithm
private

Definition at line 209 of file CexmcEnergyDepositDigitizer.hh.

◆ calorimeterTriggerAlgorithmRef

CexmcCalorimeterTriggerAlgorithm CexmcEnergyDepositDigitizer::calorimeterTriggerAlgorithmRef
private

Definition at line 225 of file CexmcEnergyDepositDigitizer.hh.

◆ crystalResolutionData

CexmcEnergyRangeWithDoubleValueList CexmcEnergyDepositDigitizer::crystalResolutionData
private

Definition at line 239 of file CexmcEnergyDepositDigitizer.hh.

◆ hasTriggered

G4bool CexmcEnergyDepositDigitizer::hasTriggered
private

Definition at line 196 of file CexmcEnergyDepositDigitizer.hh.

◆ messenger

CexmcEnergyDepositDigitizerMessenger* CexmcEnergyDepositDigitizer::messenger
private

Definition at line 242 of file CexmcEnergyDepositDigitizer.hh.

◆ monitorED

G4double CexmcEnergyDepositDigitizer::monitorED
private

Definition at line 172 of file CexmcEnergyDepositDigitizer.hh.

◆ monitorEDThreshold

G4double CexmcEnergyDepositDigitizer::monitorEDThreshold
private

Definition at line 199 of file CexmcEnergyDepositDigitizer.hh.

◆ monitorEDThresholdRef

G4double CexmcEnergyDepositDigitizer::monitorEDThresholdRef
private

Definition at line 215 of file CexmcEnergyDepositDigitizer.hh.

◆ monitorHasTriggered

G4bool CexmcEnergyDepositDigitizer::monitorHasTriggered
private

Definition at line 194 of file CexmcEnergyDepositDigitizer.hh.

◆ nCrystalsInColumn

G4int CexmcEnergyDepositDigitizer::nCrystalsInColumn
private

Definition at line 232 of file CexmcEnergyDepositDigitizer.hh.

◆ nCrystalsInRow

G4int CexmcEnergyDepositDigitizer::nCrystalsInRow
private

Definition at line 234 of file CexmcEnergyDepositDigitizer.hh.

◆ outerCrystalsVetoAlgorithm

CexmcOuterCrystalsVetoAlgorithm CexmcEnergyDepositDigitizer::outerCrystalsVetoAlgorithm
private

Definition at line 211 of file CexmcEnergyDepositDigitizer.hh.

◆ outerCrystalsVetoAlgorithmRef

CexmcOuterCrystalsVetoAlgorithm CexmcEnergyDepositDigitizer::outerCrystalsVetoAlgorithmRef
private

Definition at line 227 of file CexmcEnergyDepositDigitizer.hh.

◆ outerCrystalsVetoFraction

G4double CexmcEnergyDepositDigitizer::outerCrystalsVetoFraction
private

Definition at line 213 of file CexmcEnergyDepositDigitizer.hh.

◆ outerCrystalsVetoFractionRef

G4double CexmcEnergyDepositDigitizer::outerCrystalsVetoFractionRef
private

Definition at line 229 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDLeft

G4double CexmcEnergyDepositDigitizer::vetoCounterEDLeft
private

Definition at line 174 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDLeftThreshold

G4double CexmcEnergyDepositDigitizer::vetoCounterEDLeftThreshold
private

Definition at line 201 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDLeftThresholdRef

G4double CexmcEnergyDepositDigitizer::vetoCounterEDLeftThresholdRef
private

Definition at line 217 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDRight

G4double CexmcEnergyDepositDigitizer::vetoCounterEDRight
private

Definition at line 176 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDRightThreshold

G4double CexmcEnergyDepositDigitizer::vetoCounterEDRightThreshold
private

Definition at line 203 of file CexmcEnergyDepositDigitizer.hh.

◆ vetoCounterEDRightThresholdRef

G4double CexmcEnergyDepositDigitizer::vetoCounterEDRightThresholdRef
private

Definition at line 219 of file CexmcEnergyDepositDigitizer.hh.


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