APV cluster-related standard handlers¶
This page lists handlers related to clusters of hits found on the signal from APV-based detectors (GEMs and Micromegas).
Subject: APV Cluster struct¶
All the handlers listed below operate with the instances of the APVCluster
C/C++ structure that is defined as a subclass of APV hits collection:
-
struct APVCluster¶
Represents a group of hits on APV-based detector.
GETTER:
getter for field
APVCluster::hits
disabledposition
– Coordinate of cluster’s center, wire number unitspositionError
– Coordinate uncertainty, wire unitscharge
– Cluster charge sum (unnormed), sum of all hit’s amplitude measurementsgetter for field
APVCluster::mcTruePosition
disabledtime
– Cluster timetimeError
– Cluster time estimated errorsize
– Returns number of hits included in cluster.avrgCharge
– Average charge value.
Public Functions
-
APVCluster(LocalMemory&)¶
A ctr, needs the pool allocator instance to be bound with.
Public Members
-
event::Map<APVPhysWire_t, APVHit, MapTag::sparse_ambig_ordered> hits¶
Basic APV hits definign the cluster.
-
double position¶
Coordinate of cluster’s center, wire number units.
-
double positionError¶
Coordinate uncertainty, wire units.
-
double charge¶
Cluster charge sum (unnormed), sum of all hit’s amplitude measurements.
-
double mcTruePosition[3]¶
True position of track intersection.
-
double time¶
Cluster time
- Todo:
units?
-
double timeError¶
Cluster time estimated error
- Todo:
units?
Note, that APVCluster
may have its underlying hits collection empty for
certain data sources (like Monte-Carlo data).
Handlers list¶
This handlers deal with APVCluster
.
- group apv-cluster-handlers
-
class APVClusteredHitsSelect : public na64dp::AbstractHitHandler<event::APVCluster>¶
Leave/remove APV hits belong to certain cluster.
Removes hits from an event by taking into account values of their clusters.
Usage:
- _type: APVClusteredHitsSelect # optional, hit selection expression applyTo: null # APV cluster getter; str, required value: ... # Comparison expression; str, required condition: ... # A threshold value to compare with; float, required threshold: ...
With respect to comparator, the cluster’s value is the first argument while the threshold is second.
-
class APVFindClusterWide : public na64dp::AbstractHitHandler<APVHit>¶
Finds hit clusters on the APV detectors planes.
Ad-hoc handler, to be removed once dynamic calibrations appear. Same as APVFindCluster, but performs clustering of wider MuMegas as well.
- Todo:
delete it in favor of handler based on generic calibrations
Note
deprecated handler, to be deleted
-
class APVFindClusters : public na64dp::AbstractHitHandler<APVHit>, public na64dp::calib::Handle<calib::MuMegaWiresDesignEntry>¶
Creates clusters on the APV detectors planes from individual hits.
Usage:
- _type: APVFindClusters # optional, hit selection expression applyTo: null # minimum number of wires to form a cluster; float, required minWidth: ... # minimum "missing wires" within a cluster; float, optional sparseness: 0.0 # Maximum allowed time discrepancy between times of two adjacent # hits within a cluster. Has to be imperically adjusted; float, optional timeThreshold: nan
A “sparseness” parameter defines how many wires may be “missed” within a cluster. In principle, should help to stabilize clustering reconstruction for tripping wires or lithographic defects, but seems to be practically meaningless so far.
“timeThreshold” parameter defines maximum allowed time difference between two adjacent wires to form a cluster. (fixme: what if first hit in a sequence provides value that is too far from mean hit time?)
Handler has a calibration data dependency:
MuMegaWiresDesignEntry
.Currently, one of the “heaviest” handlers, perhaps has to be optimized.
- Todo:
optimize this handler for performance
once calib data unloading problem resolved, invalidate calib cache
-
class APVRemAmbigClusters : public na64dp::handlers::CollectAmbigClusters¶
Removes ambigiuos APV clusters from an event.
Usage:
- _type: APVRemAmbigClusters # optional, hit selection expression applyTo: null
For APV detectors occupying the same DAQ channels (multiwired, multiplexed) assures that clusters being present occupies the unique set of DAQ channels.
Disambiguity is resolved by removing the clusters with respect to some criterion (charge sum).
Note
For the time being, only MMs exploits the multiplexing scheme, so handler is appliable only to MMs, in fact.
-
class APVClusteredHitsSelect : public na64dp::AbstractHitHandler<event::APVCluster>¶