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]