EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
SimCalorimeterHitProcessor.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2025 Minho Kim, Sylvester Joosten, Derek Anderson, Wouter Deconinck
3
4#pragma once
5
6#include <DD4hep/IDDescriptor.h>
7#include <algorithms/algorithm.h>
8#include <algorithms/geo.h>
9#include <edm4hep/CaloHitContributionCollection.h>
10#include <edm4hep/SimCalorimeterHitCollection.h>
11#include <cstdint>
12#include <optional>
13#include <string>
14#include <string_view>
15
18
19namespace eicrecon {
20
22 algorithms::Algorithm<algorithms::Input<edm4hep::SimCalorimeterHitCollection>,
23 algorithms::Output<edm4hep::SimCalorimeterHitCollection,
24 edm4hep::CaloHitContributionCollection>>;
25
27 public WithPodConfig<SimCalorimeterHitProcessorConfig> {
28
29public:
30 SimCalorimeterHitProcessor(std::string_view name)
32 name,
33 {"inputHitCollection"},
34 {"outputHitCollection", "outputHitContributionCollection"},
35 "Regroup the hits by particle, add up the hits if"
36 "they have e z-segmentation, and attenuate."} {}
37
38 void init() final;
39 void process(const Input&, const Output&) const final;
40
41private:
42 std::optional<uint64_t> m_hit_id_mask;
43 std::optional<uint64_t> m_contribution_id_mask;
44
45 dd4hep::IDDescriptor m_id_spec;
46
47 const algorithms::GeoSvc& m_geo = algorithms::GeoSvc::instance();
48
49 // a reference value for attenuation
50 std::optional<double> m_attenuationReferencePosition;
51
52private:
53 // attenuation function
54 double get_attenuation(double zpos) const;
55};
56
57} // namespace eicrecon
Definition SimCalorimeterHitProcessor.h:27
SimCalorimeterHitProcessor(std::string_view name)
Definition SimCalorimeterHitProcessor.h:30
Definition WithPodConfig.h:22
Definition ActsSvc.h:11
Definition ActsGeometryProvider.h:28
-client
Definition CalorimeterClusterRecoCoG.cc:37
algorithms::Algorithm< algorithms::Input< edm4hep::SimCalorimeterHitCollection >, algorithms::Output< edm4hep::SimCalorimeterHitCollection, edm4hep::CaloHitContributionCollection > > SimCalorimeterHitProcessorAlgorithm
Definition SimCalorimeterHitProcessor.h:24
Definition SimCalorimeterHitProcessor.cc:35