Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:08

0001 /**
0002  * @file trackbase/CMFlashClusterv3.h
0003  * @author Ben Kimelman
0004  * @date March 2023
0005  * @brief Version 3 of CMFlashCluster
0006  */
0007 #ifndef TRACKBASE_CMFLASHCLUSTERV3_H
0008 #define TRACKBASE_CMFLASHCLUSTERV3_H
0009 
0010 #include "CMFlashCluster.h"
0011 
0012 #include <iostream>
0013 
0014 class PHObject;
0015 
0016 /**
0017  * @brief Version 3 of CMFlashCluster
0018  *
0019  *Adding variable to keep track of clusters
0020  *put into metaclusters
0021  *
0022  */
0023 class CMFlashClusterv3 : public CMFlashCluster
0024 {
0025  public:
0026   //! ctor
0027   CMFlashClusterv3() = default;
0028 
0029   // PHObject virtual overloads
0030   void identify(std::ostream& os = std::cout) const override;
0031   void Reset() override {}
0032   int isValid() const override;
0033   PHObject* CloneMe() const override { return new CMFlashClusterv3(*this); }
0034 
0035   //! copy content from base class
0036   void CopyFrom(const CMFlashCluster&) override;
0037 
0038   //! copy content from base class
0039   void CopyFrom(CMFlashCluster* source) override
0040   {
0041     CopyFrom(*source);
0042   }
0043 
0044   //
0045   // cluster position
0046   //
0047   float getX() const override { return m_pos[0]; }
0048   void setX(float x) override { m_pos[0] = x; }
0049   float getY() const override { return m_pos[1]; }
0050   void setY(float y) override { m_pos[1] = y; }
0051   float getZ() const override { return m_pos[2]; }
0052   void setZ(float z) override { m_pos[2] = z; }
0053 
0054   float getX1() const override { return m_pos1[0]; }
0055   void setX1(float x) override { m_pos1[0] = x; }
0056   float getY1() const override { return m_pos1[1]; }
0057   void setY1(float y) override { m_pos1[1] = y; }
0058   float getZ1() const override { return m_pos1[2]; }
0059   void setZ1(float z) override { m_pos1[2] = z; }
0060 
0061   float getX2() const override { return m_pos2[0]; }
0062   void setX2(float x) override { m_pos2[0] = x; }
0063   float getY2() const override { return m_pos2[1]; }
0064   void setY2(float y) override { m_pos2[1] = y; }
0065   float getZ2() const override { return m_pos2[2]; }
0066   void setZ2(float z) override { m_pos2[2] = z; }
0067 
0068   unsigned int getLayer1() const override { return m_layer1; }
0069   void setLayer1(unsigned int layer) override { m_layer1 = layer; }
0070   unsigned int getLayer2() const override { return m_layer2; }
0071   void setLayer2(unsigned int layer) override { m_layer2 = layer; }
0072 
0073   unsigned int getNclusters() const override { return m_nclusters; }
0074   void setNclusters(unsigned int n) override { m_nclusters = n; }
0075   bool getIsRGap() const override { return m_isRGap; }
0076   void setIsRGap(bool isRGap) override { m_isRGap = isRGap; }
0077   bool getIsPhiGap() const override { return m_isPhiGap; }
0078   void setIsPhiGap(bool isPhiGap) override { m_isPhiGap = isPhiGap; }
0079 
0080   //
0081   // cluster info
0082   //
0083   unsigned int getAdc() const override { return m_adc; }
0084   void setAdc(unsigned int adc) override { m_adc = adc; }
0085 
0086   unsigned int getAdc1() const override { return m_adc1; }
0087   void setAdc1(unsigned int adc) override { m_adc1 = adc; }
0088 
0089   unsigned int getAdc2() const override { return m_adc2; }
0090   void setAdc2(unsigned int adc) override { m_adc2 = adc; }
0091 
0092  protected:
0093   /// mean cluster position
0094   float m_pos[3] = {NAN, NAN, NAN};
0095 
0096   float m_pos1[3] = {NAN, NAN, NAN};
0097   float m_pos2[3] = {NAN, NAN, NAN};
0098 
0099   /// cluster sum adc
0100   unsigned int m_adc = 0xFFFFFFFF;
0101   unsigned int m_adc1 = 0xFFFFFFFF;
0102   unsigned int m_adc2 = 0xFFFFFFFF;
0103 
0104   unsigned int m_layer1 = UINT_MAX;
0105   unsigned int m_layer2 = UINT_MAX;
0106 
0107   /// number of TPC clusters used to create this central mebrane cluster
0108   unsigned int m_nclusters = UINT_MAX;
0109 
0110   /// bools to identify if meta-cluster is across sector/module gaps
0111   bool m_isRGap = false;
0112   bool m_isPhiGap = false;
0113 
0114   ClassDefOverride(CMFlashClusterv3, 1)
0115 };
0116 
0117 #endif  // TRACKBASE_CMFLASHCLUSTERV3_H