GAMOS 5.1.0 User's Guide | ||
---|---|---|
<<< Previous | Sensitive Detector and Hits | Next >>> |
There are a number of detector effects which can be simulated with a few user commands. It is important to note that these effects are applied to the reconstructed hits, as these hits are meant to simulated the digitization+reconstruction process that happens in the detector. If for any reason you want to see a detector effect on the hits, you should use the GmRecHitBuilder1to1 reconstructed hit builder.
If you use one of the GAMOS sensitive detectors or you inherit your own one from GmVSD you can smear automatically the energy of the hits for each detector type with a gaussian given by the value of the parameter
/gamos/setParam SD:EnergyResol:SDTYPE VALUE
where SDTYPE is the type of the sensitive detector.
A more complicated energy resolution can be implemented, corresponding to a more realistic calorimeter resolution. Apart from the constant term described above, energy independent:
sigma/E = K
which may be due to calibration errors, non-uniformities and non-linearities in photomultipliers, proportional counters, ADC's, etc, two other terms can be defined.
The first one is a term where the relative gaussian error is inversely proportional to the square root of the energy, a term that can be attributed to the statistical fluctuations in the energy loss and multiple scattering during the shower development:
sigma/E = K * / sqrt(E)
where K can be set with the parameter
/gamos/setParam SD:EnergyResolFluct:SDTYPE VALUE
where SDTYPE is the type of the sensitive detector.
In the second term the relative gaussian error is inversely proportional to the energy, and it can be attributed to instrumental effects, being rather energy-independent (noise, pedestal):
sigma/E = K * / E
where K can be set with the parameter
/gamos/setParam SD:EnergyResolInstr:SDTYPE VALUE
where SDTYPE is the type of the sensitive detector.
If you have an energy function that is different, you may implement it by creating a new reconstructed hit builder class inheriting from GmVRecHitBuilder and overwrite the method:
virtual void SmearRecHitsEnergy(); |
The time of the hits can also be smeared for each detector type with a gaussian given by the value of the parameter
/gamos/setParam SD:TimeResol:SDTYPE VALUE[1]
If you have a time resolution function that is different, you may implement it by creating a new reconstructed hit builder class inheriting from GmVRecHitBuilder and overwrite the method:
virtual void SmearRecHitsTime(); |
A detector has a finite time resolution, so that it is not able to distinguish hits that come from different events when their time is close.
You can define the value of the measuring time for each detector type with the parameter
/gamos/setParam SD:MeasuringTime:SDTYPE VALUE
where SDTYPE is the type of the sensitive detector.
that takes a default value of 0 ns.
GAMOS offers several treatments of the masuring time, so that the user can choose the one that best fits the detector under study. To select the treatment type you have to use the parameter
/gamos/setParam SD:MeasuringType:SDTYPE VALUE
The following measurement types are currently available:
Trigger. When hits are produced in one event, the hit with smallest time triggers, so that all hits of all events with a time later than this hit time and shorter than this hit time + measuring time are considered together. This is the default behaviour.
Several independent triggers are defined: it may be that each detector volume is associated to a trigger or that detectors that have a common ancestor in the geometry hierarchy are associated to the same trigger. By default the trigger detector units are the same units explained in the section on Identifying each sensitive detector copy. But you may change this behaviour by changing how many ancestors levels are used with the following parameter:
/gamos/setParam SD:Trigger:NAncestors:SDTYPE VALUE
This may serve you for example to define a unique global trigger, by setting the number of ancestors equal to the maximum number of volumes in the geometrical hierarchy of the detectors.
Interval. The triggers happen at a constant interval. Starting at time 0, the hits are merged if their time are between N*measuringTime and (N+1)*measuringTime.
Backwards. Hits are accumulated if they have a time after the event time minus the measuring time. The event time is computed as the time of creation of the first particle in the event.
A detector takes a finite time to transform an energy deposit into an electronic signal, and during that time it is dead and cannot account for any other energy deposition. The dead time is considered to start after the hit time plus the measuring time; in the case that you set the type of measuring to Interval, the dead time starts also at the end of the measuring time, but in this case it is the current triggering time plus hte measuring time.
GAMOS holds a list of the dead sensitive detectors, i.e. those that have produced a hit in a time prior than the current time minus the dead time. You can define the value of the dead time for each detector type with the parameter
/gamos/setParam SD:DeadTime:SDTYPE VALUE
that takes a default value of 0 ns.
The dead time affects by default all detectors in a block. This means that if a detector is dead it is assumed that all detectors that are placed in the same ancestor are also dead (the usual behaviour for example in a PET or SPECT detector, where all crystals in a block share the readout). You may change the number of ancestors that become dead by setting the paramter
/gamos/setParam SD:DeadTimeDUListByBlock:NAncestors:SDTYPE N_ANCESTORS
which as just mention takes a default value equal to the value of the parameter SD:DetUnitID:NAncestors:SDTYPE. Take into account that the number of ancestors include the detector itself, so that you can tell GAMOS to consider dead only the crystal itself by setting this parameter to 1.
A warning is due here: the hits that belong to the same block are identified by the detector unit ID, so if you are using a bigger number of ancestors you should take care that the hit detector unit ID takes into account a number of ancestors as least as big as the number used here (see section on Hits).
You also have the option to define your detector as paralizable (default) or non-paralizable by setting the parameter
/gamos/setParam SD:DeadTimeParalizable:SDTYPE TRUE/FALSE
In a non-paralizable detector, an event happening during the dead time since the previous event is simply lost, while in a paralizable detector, an event happening during the dead time since the previous one will not just be missed, but will restart the dead time.
You may set a threshold to the minimum hit energy, so that hits with smaller energy will not be used (they may be used in the next event if more energy is added to them and they are inside the time window):
/gamos/setParam SD:Hit:MinimumEnergy:SDTYPE VALUE
To simulate Constant Fraction Discriminator (CFD) thresholds, you may also set a minimum energy and a behaviour to treat this threshold. First to set the parameter:
/gamos/setParam SD:RecHit:MinimumEnergy:SDTYPE VALUE
Then you have to select among the two possible behaviours:
/gamos/setParam SD:RecHit:MinimumEnergyBehaviour:SDTYPE BEHAV_TYPE
where BEHAV_TYPE can be:
DeleteIf1Small if one of the hits in the reconstructed hit has smaller energy than the threshold all reconstructed hits are deleted
AcceptIf1Big if one of the hits in the reconstructed hits has bigger energy than the threshold all reconstructed hits are accepted, else all are deleted
Remember that there is no default behaviour, so if no behaviour is selected, the minimum energy threshold is not taken into account.
[1] | The time smeared is theTimeMin |
<<< Previous | Home | Next >>> |
Hits digitization and reconstruction | Up | Identifying each sensitive detector copy |