Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 /**
0002  * @file trackbase/LaserClusterv2.cc
0003  * @author Ben Kimelman
0004  * @date July 2025
0005  * @brief Implementation of LaserClusterv2
0006  */
0007 #include "LaserClusterv2.h"
0008 
0009 #include <cmath>
0010 #include <utility>          // for swap
0011 
0012 void LaserClusterv2::identify(std::ostream& os) const
0013 {
0014   os << "---LaserClusterv2--------------------" << std::endl;
0015 
0016   os << " fit? " << m_fitMode;
0017   os << " (x,y,z) =  (" << m_pos[0];
0018   os << ", " << m_pos[1] << ", ";
0019   os << m_pos[2] << ") cm";
0020 
0021   os << " adc = " << getAdc() << std::endl;
0022 
0023   os << std::endl;
0024   os << "-----------------------------------------------" << std::endl;
0025 
0026   return;
0027 }
0028 
0029 int LaserClusterv2::isValid() const
0030 {
0031   if(std::isnan(getX()))
0032     {
0033       return 0;
0034     }
0035   if(std::isnan(getY()))
0036     {
0037       return 0;
0038     }
0039   if(std::isnan(getZ()))
0040     {
0041       return 0;
0042     }
0043 
0044   if (m_adc == 0xFFFFFFFF)
0045     {
0046       return 0;
0047     }
0048 
0049   return 1;
0050 }
0051 
0052 void LaserClusterv2::CopyFrom( const LaserCluster& source )
0053 {
0054   // do nothing if copying onto oneself
0055   if( this == &source )
0056     {
0057       return;
0058     }
0059  
0060   // parent class method
0061   LaserCluster::CopyFrom( source );
0062 
0063   setX( source.getX() );
0064   setY( source.getY() );
0065   setZ( source.getZ() );
0066   setFitMode( source.getFitMode() );
0067   setAdc( source.getAdc() );
0068   setLayer( source.getLayer() );
0069   setIPhi( source.getIPhi() );
0070   setIT( source.getIT() );
0071   setNhits( source.getNhits() );
0072   setNLayers( source.getNLayers() );
0073   setNIPhi( source.getNIPhi() );
0074   setNIT( source.getNIT() );
0075   setSDLayer( source.getSDLayer() );
0076   setSDIPhi( source.getSDIPhi() );
0077   setSDIT( source.getSDIT() );
0078   setSDWeightedLayer( source.getSDWeightedLayer() );
0079   setSDWeightedIPhi( source.getSDWeightedIPhi() );
0080   setSDWeightedIT( source.getSDWeightedIT() );
0081 
0082 
0083   for(int i=0; i<(int)source.getNhits(); i++){
0084     addHit();
0085     setHitLayer(i, source.getHitLayer(i));
0086     setHitIPhi(i, source.getHitIPhi(i));
0087     setHitIT(i, source.getHitIT(i));
0088 
0089     setHitX(i, source.getHitX(i));
0090     setHitY(i, source.getHitY(i));
0091     setHitZ(i, source.getHitZ(i));
0092     setHitAdc(i, source.getHitAdc(i));
0093   }
0094 
0095 
0096 }
0097