src/objects/Pixel.hpp

Definition of pixel object. More…

Namespaces

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

Classes

Name
class allpix::Pixel
Pixel in the model with indices, location and size.

Functions

Name
bool operator<(const ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< int » & lhs, const ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< int » & rhs)

Detailed Description

Definition of pixel 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

Functions Documentation

function operator<

bool operator<(
    const ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< int >> & lhs,
    const ROOT::Math::DisplacementVector2D< ROOT::Math::Cartesian2D< int >> & rhs
)

Source code


#ifndef ALLPIX_PIXEL_H
#define ALLPIX_PIXEL_H

#include <Math/DisplacementVector2D.h>
#include <Math/Point3D.h>
#include <Math/Vector2D.h>
#include <TObject.h>

namespace ROOT::Math { // NOLINT
    bool operator<(const ROOT::Math::DisplacementVector2D<ROOT::Math::Cartesian2D<int>>& lhs,
                   const ROOT::Math::DisplacementVector2D<ROOT::Math::Cartesian2D<int>>& rhs);
} // namespace ROOT::Math

namespace allpix {
    class Pixel {
    public:
        using Index = ROOT::Math::DisplacementVector2D<ROOT::Math::Cartesian2D<int>>;

        enum class Type {
            RECTANGLE = 0,  
            HEXAGON_FLAT,   
            HEXAGON_POINTY, 
        };

        Pixel(Pixel::Index index,
              Pixel::Type type,
              ROOT::Math::XYZPoint local_center,
              ROOT::Math::XYZPoint global_center,
              ROOT::Math::XYVector size);

        Pixel::Index getIndex() const;

        Pixel::Type getType() const;

        ROOT::Math::XYZPoint getLocalCenter() const;
        ROOT::Math::XYZPoint getGlobalCenter() const;
        ROOT::Math::XYVector getSize() const;

        Pixel() = default;
        ClassDef(Pixel, 2); // NOLINT

    private:
        Pixel::Index index_;
        Pixel::Type type_{};

        ROOT::Math::XYZPoint local_center_;
        ROOT::Math::XYZPoint global_center_;
        ROOT::Math::XYVector size_;
    };

} // namespace allpix

#endif /* ALLPIX_PIXEL_H */

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