src/modules/DetectorHistogrammer/Cluster.hpp

Definition of object with a cluster containing several PixelHits. More…

Namespaces

Name
allpix
Helper class to hold support layers for a detector model.

Classes

Name
class allpix::Cluster

Detailed Description

Definition of object with a cluster containing several PixelHits.

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

Source code


#ifndef ALLPIX_DETECTOR_HISTOGRAMMER_CLUSTER_H
#define ALLPIX_DETECTOR_HISTOGRAMMER_CLUSTER_H

#include <Math/Vector3D.h>

#include <set>

#include "objects/Pixel.hpp"
#include "objects/PixelHit.hpp"

namespace allpix {

    class Cluster {
    public:
        explicit Cluster(const PixelHit* seed_pixel_hit);

        double getCharge() const { return cluster_charge_; }

        bool addPixelHit(const PixelHit* pixel_hit);

        unsigned long int getSize() const { return pixel_hits_.size(); }

        std::pair<unsigned int, unsigned int> getSizeXY() const;

        ROOT::Math::XYZPoint getPosition() const;

        const PixelHit* getSeedPixelHit() const { return seed_pixel_hit_; }

        const PixelHit* getPixelHit(int x, int y) const;

        const std::set<const PixelHit*>& getPixelHits() const { return pixel_hits_; }

        const std::set<const MCParticle*>& getMCParticles() const { return mc_particles_; }

    private:
        const PixelHit* seed_pixel_hit_;

        std::set<const PixelHit*> pixel_hits_;
        std::set<const MCParticle*> mc_particles_;

        double cluster_charge_{};

        int minX_, minY_, maxX_, maxY_;
    };
} // namespace allpix
#endif /*ALLPIX_DETECTOR_HISTOGRAMMER_CLUSTER_H */

Updated on 2024-12-13 at 08:31:37 +0000