diff --git a/eic_data.yaml b/eic_data.yaml
index 82a6a214c6166204483609a057bd879570e4154d..422f4d2f906416882a0c778ee52ef95079e594e6 100644
--- a/eic_data.yaml
+++ b/eic_data.yaml
@@ -102,7 +102,7 @@ components:
, phi{static_cast<float>(atan2(y,x))} {}\n
template <class VectorType> Direction(const VectorType& v) : Direction(v.theta(), v.phi()) {}\n
operator std::pair<float, float>() const {return {theta, phi};}\n
- double eta() const {return -log(tan(0.5*theta));}\n
+ float eta() const {return -log(tan(0.5*theta));}\n
Direction add(const Direction& rhs) const {return {theta+rhs.theta, phi+rhs.phi};}\n
Direction subtract(const Direction& rhs) const {return {theta-rhs.theta, phi-rhs.phi};}\n
"
@@ -124,7 +124,7 @@ components:
float r() const {return mag();}\n
float theta() const {return acos(z/mag());}\n
float phi() const {return atan2(y,x);}\n
- double eta() const {return -log(tan(0.5*theta()));}\n
+ float eta() const {return -log(tan(0.5*theta()));}\n
operator std::tuple<float, float, float>() {return {x, y, z};}\n
float dot(const VectorXYZ& rhs) const {return x*rhs.x + y*rhs.y + z*rhs.z;}\n
VectorXYZ add(const VectorXYZ& rhs) const {return {x+rhs.x, y+rhs.y, z+rhs.z};}\n
@@ -146,7 +146,7 @@ components:
float x() const {return r * cos(phi) * sin(theta);}\n
float y() const {return r * sin(phi) * cos(theta);}\n
float z() const {return r * cos(theta);}\n
- double eta() const {return -log(tan(0.5*theta));}\n
+ float eta() const {return -log(tan(0.5*theta));}\n
operator std::tuple<float, float, float>() {return {r, theta, phi};}\n
"
@@ -250,29 +250,6 @@ datatypes :
- long long pid // Particle type identification code
- long long status // Status code
- eic::RawCalorimeterHit:
- Description: "Raw (digitized) calorimeter hit"
- Author : "W.Armstrong"
- Members:
- - long long cellID // The detector specific (geometrical) cell id.
- - long long amplitude // The amplitude of the hit in ADC counts.
- - long long timeStamp // The time stamp for the hit.
-
- eic::CalorimeterHit:
- Description: "Calorimeter hit"
- Author : "W.Armstrong"
- Members:
- - long long cellID // The detector specific (geometrical) cell id.
- - int clusterID // ID of the cluster that owns this hit
- - int layerID // ID of the layer that has this hit
- - int sectorID // ID of the sector that has this hit
- - float energy // The energy of the hit in [GeV].
- - float time // The time of the hit in [ns].
- - eic::VectorXYZ position // The global position of the hit in world coordinates.
- - eic::VectorXYZ local // The local position of the hit in detector coordinates.
- - eic::VectorXYZ dimension // The dimension information of the cell
- - int type // The type of the hit.
-
eic::RawTrackerHit:
Description : "Raw (digitized) tracker hit"
Author : "W.Armstrong"
@@ -292,20 +269,6 @@ datatypes :
- eic::VectorXYZ position // position
- eic::CovDiagXYZ covMatrix // covMatrix
- eic::Cluster:
- Description: "EIC cluster"
- Author : "W.Armstrong, S. Joosten, C.Peng"
- Members:
- - int clusterID // Unique ID of this cluster
- - float energy // Reconstructed energy of the cluster.
- - float edep // Energy deposit of the cluster.
- - int nhits // Number of hits in the cluster.
- - eic::VectorXYZ position // Global position of the cluster.
- - eic::CovXYZ positionError // Covariance matrix of the position (6 Parameters).
- - eic::VectorPolar polar // Polar coordinates for global position.
- - float cl_theta // Intrinsic direction of cluster at position - Theta.
- - float cl_phi // Intrinsic direction of cluster at position - Phi.
-
eic::ReconstructedParticle:
Description: "EIC Reconstructed Particle"
Author : "W.Armstrong"
@@ -370,48 +333,89 @@ datatypes :
- float radiusError // estimated error from the fit
- float npe // number of photo-electrons
- eic::ImagingPixel:
- Description: "Pixel for Imaging Calorimeter"
- Author: "C. Peng"
+ ## ==========================================================================
+ ## Calorimetry
+ ## ==========================================================================
+ eic::RawCalorimeterHit:
+ Description: "Raw (digitized) calorimeter hit"
+ Author: "W. Armstrong, S. Joosten"
Members:
- - int clusterID // Cluster id
- - int layerID // Layer id
- - int sectorID // Sector id
- - int hitID // Hit id
- - double edep // Energy deposition
- - double time // Timestamp
- - double eta // Pseudorapidity
- - eic::VectorXYZ local // Local position in its sector
- - eic::VectorXYZ position // Global position
- - eic::VectorPolar polar // Global position in polar coordinates
+ - int64_t cellID // The detector specific (geometrical) cell id.
+ - int64_t amplitude // The amplitude of the hit in ADC counts.
+ - int64_t time // Timing in TDC
+ - eic::Index ID // unique ID for this hit
- eic::ImagingLayer:
- Description: "Layer for Imaging Calorimeter"
- Author: "C. Peng"
+ eic::CalorimeterHit:
+ Description: "Calorimeter hit"
+ Author: "W. Armstrong, S. Joosten"
+ Members:
+ - int64_t cellID // The detector specific (geometrical) cell id.
+ - eic::Index ID // unique ID for this hit
+ - int32_t layer // layer for this hit
+ - int32_t sector // sector for this hit
+ - int32_t type // The type of the hit.
+ - float energy // The energy for this hit in [GeV].
+ - float energyError // Error on energy [GeV].
+ - float time // The time of the hit in [ns].
+ - eic::VectorXYZ position // The global position of the hit in world coordinates [mm].
+ - eic::VectorXYZ local // The local position of the hit in detector coordinates [mm].
+ - eic::VectorXYZ dimension // The dimension information of the cell [mm].
+
+ ## ==========================================================================
+ ## Clustering
+ ## ==========================================================================
+
+ eic::ProtoCluster:
+ Description: "Relational info linking hits to their associated cluster"
+ Author: "S. Joosten"
+ Members:
+ - eic::Index hitID // Hit ID
+ - eic::Index clusterID // ID of the cluster associated with this hit (-1 if none)
+ - float weight // How much of this hit belongs to the cluster? [0->1]
+
+ eic::Cluster:
+ Description: "EIC cluster"
+ Author: "W. Armstrong, S. Joosten, C.Peng"
+ Members:
+ - eic::Index ID // unique ID for this cluster
+ - int32_t type // Cluster type
+ - float energy // Reconstructed energy of the cluster [GeV].
+ - float energyError // Error on the cluster energy [GeV]
+ - float time // [ns]
+ - uint32_t nhits // Number of hits in the cluster.
+ - eic::VectorXYZ position // Global position of the cluster [mm].
+ - eic::CovXYZ positionError // Covariance matrix of the position (6 Parameters).
+ - float radius // shower radius [mm]
+ - float skewness // shower skewness [unitless]
+
+ eic::Cluster2DInfo:
+ Description: "Additional info for 3D clusters"
+ Author: "S. Joosten"
+ Members:
+ - eic::Index clusterID // Primary cluster ID
+ - eic::VectorPolar polar // Cluster position polar information
+ - float eta // Cluster pseudorapidity
+
+ eic::Cluster3DInfo:
+ Description: "Additional info for 3D clusters"
+ Author: "S. Joosten"
Members:
- - int clusterID // Cluster id
- - int layerID // Layer id
- - int nhits // Number of hits
- - double edep // Energy deposit
- - double radius // Shower radius
- - double skewness // Skewness of hits distribution
- - double eta // Pseudorapidity
- - eic::VectorXYZ position // Global center position.
- - eic::VectorPolar polar // Global center position in polar coordinates
+ - eic::Index clusterID // Primary cluster ID
+ - eic::VectorPolar polar // Cluster position polar information
+ - float eta // Cluster pseudorapidity
+ - eic::Direction direction // Intrinsic direction of the cluster at the central position [rad, 0->pi and -pi->pi]
- eic::ImagingCluster:
- Description: "Cluster for Imaging Calorimeter"
+ eic::ClusterLayer:
+ Description: "2D Cluster in a single layer for a multi-layer detector"
Author: "S. Joosten, C. Peng"
Members:
- - int clusterID // Cluster id
- - int nhits // Number of hits in this cluster.
- - double energy // Energy of the cluster.
- - double edep // Energy deposit of the cluster.
- - double radius // Shower radius
- - double skewness // Skewness of hits distribution
- - double leakcorr // Leakage correction to the cluster
- - double eta // Pseudorapidity
- - eic::VectorXYZ position // Global position of the cluster.
- - eic::VectorPolar polar // Polar coordinates for global position.
- - double cl_theta // Intrinsic direction of cluster at position - Theta.
- - double cl_phi // Intrinsic direction of cluster at position - Phi.
+ - eic::Index ID // unique layer ID
+ - eic::Index clusterID // associated full 3D cluster, -1 if none
+ - int32_t layer // layer number for this cluster layer
+ - uint32_t nhits // Number of hits
+ - int32_t type // Cluster type
+ - float energy // Energy in this cluster layer [GeV]
+ - float energyError // Error on energy [GeV]
+ - float radius // Shower radius [mm]
+ - float skewness // Skewness of hits distribution
+ - eic::VectorXYZ position // Global center position. [mm]