Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:32

0001 #pragma once
0002 /**
0003 U4SensorIdentifier.h
0004 ======================
0005 
0006 Pure virtual protocol base used to interface detector
0007 specific characteristics of sensors with Opticks.
0008 
0009 getGlobalIdentity
0010     method is called on ALL of the remainder non-instanced nodes,
0011     it is expected to return an integer value uniquely identifiying
0012     any sensors. For non-sensor volumes an integer of -1 should be returned
0013 
0014     AS JUNO HAS NO global sensors this is untested.
0015 
0016 getInstanceIdentity
0017     method is called on ONLY the outer volume of every factorized
0018     instance during geometry translation
0019     If the subtree of volumes within the outer volume provided
0020     contains a sensor then this method is expected to return an
0021     integer value that uniquely identifies the sensor.
0022     If the subtree does not contain a sensor, then -1 should be returned.
0023 
0024     CURRENTLY HAVING MORE THAN ONE ACTUAL SENSOR PER INSTANCE IS NOT SUPPORTED
0025 
0026     An ACTUAL sensor is one that would yield hits with Geant4 : ie it
0027     must have an EFFICIENCY property with non-zero values and have
0028     G4LogicalVolume::SetSensitiveDetector associated.
0029 
0030 U4SensorIdentifierDefault.h provided the default implementation.
0031 To override this default use G4CXOpticks::SetSensorIdentifier
0032 
0033 **/
0034 class G4VPhysicalVolume ;
0035 
0036 struct U4SensorIdentifier
0037 {
0038     virtual void setLevel(int _level) = 0 ;
0039     virtual int getGlobalIdentity(const G4VPhysicalVolume* node_pv, const G4VPhysicalVolume* node_ppv ) = 0 ;
0040     virtual int getInstanceIdentity(const G4VPhysicalVolume* instance_outer_pv ) const = 0 ;
0041 };
0042 
0043