src/objects/PropagatedCharge.hpp
Definition of propagated charge object. More…
Namespaces
Name |
---|
allpix Helper class to hold support layers for a detector model. |
Classes
Name | |
---|---|
class | allpix::PropagatedCharge Set of charges propagated through the sensor. |
Types
Name | |
---|---|
enum class | CarrierState { UNKNOWN = 0, MOTION, RECOMBINED, TRAPPED, HALTED} State of the charge carrier. |
using Message< PropagatedCharge > | PropagatedChargeMessage Typedef for message carrying propagated charges. |
Detailed Description
Definition of propagated charge object.
Copyright: Copyright (c) 2017-2024 CERN and the Allpix Squared authors. This software is distributed under the terms of the MIT License, copied verbatim in the file “LICENSE.md”. In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction. SPDX-License-Identifier: MIT
Types Documentation
enum CarrierState
Enumerator | Value | Description |
---|---|---|
UNKNOWN | 0 | State of the propagated charge carrier is unknown. |
MOTION | The propagated charge carrier is in motion. | |
RECOMBINED | The propagated charge carrier has recombined with the lattice. | |
TRAPPED | The propagated charge carrier is trapped temporarily. | |
HALTED | The carrier has come to a halt because it, for example, has reached the sensor surface or an implant. |
State of the charge carrier.
using PropagatedChargeMessage
using allpix::PropagatedChargeMessage = typedef Message<PropagatedCharge>;
Typedef for message carrying propagated charges.
Source code
#ifndef ALLPIX_PROPAGATED_CHARGE_H
#define ALLPIX_PROPAGATED_CHARGE_H
#include <map>
#include "DepositedCharge.hpp"
#include "MCParticle.hpp"
#include "Pixel.hpp"
#include "Pulse.hpp"
#include "SensorCharge.hpp"
namespace allpix {
enum class CarrierState {
UNKNOWN = 0,
MOTION,
RECOMBINED,
TRAPPED,
HALTED,
};
class PropagatedCharge : public SensorCharge {
friend class PixelCharge;
public:
PropagatedCharge(ROOT::Math::XYZPoint local_position,
ROOT::Math::XYZPoint global_position,
CarrierType type,
unsigned int charge,
double local_time,
double global_time,
CarrierState state = CarrierState::UNKNOWN,
const DepositedCharge* deposited_charge = nullptr);
PropagatedCharge(ROOT::Math::XYZPoint local_position,
ROOT::Math::XYZPoint global_position,
CarrierType type,
std::map<Pixel::Index, Pulse> pulses,
double local_time,
double global_time,
CarrierState state = CarrierState::UNKNOWN,
const DepositedCharge* deposited_charge = nullptr);
const DepositedCharge* getDepositedCharge() const;
const MCParticle* getMCParticle() const;
std::map<Pixel::Index, Pulse> getPulses() const;
CarrierState getState() const;
void print(std::ostream& out) const override;
ClassDefOverride(PropagatedCharge, 7); // NOLINT
PropagatedCharge() = default;
void loadHistory() override;
void petrifyHistory() override;
private:
PointerWrapper<DepositedCharge> deposited_charge_;
PointerWrapper<MCParticle> mc_particle_;
std::map<Pixel::Index, Pulse> pulses_;
CarrierState state_{CarrierState::UNKNOWN};
};
using PropagatedChargeMessage = Message<PropagatedCharge>;
} // namespace allpix
#endif /* ALLPIX_PROPAGATED_CHARGE_H */
Updated on 2025-02-27 at 14:14:46 +0000