Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-05-23 08:11:51

0001 #ifndef SILICONCALOTRACKV1_H
0002 #define SILICONCALOTRACKV1_H
0003 
0004 #include "SiliconCaloTrack.h"
0005 
0006 #include <cmath>
0007 #include <cstddef>  // for size_t
0008 #include <iostream>
0009 #include <map>
0010 #include <utility>  // for pair
0011 
0012 class PHObject;
0013 
0014 class SiliconCaloTrack_v1 : public SiliconCaloTrack
0015 {
0016  public:
0017   SiliconCaloTrack_v1(){};
0018 
0019   //* base class copy constructor
0020   SiliconCaloTrack_v1(const SiliconCaloTrack&);
0021 
0022   //* copy constructor
0023   SiliconCaloTrack_v1(const SiliconCaloTrack_v1& track);
0024 
0025   //* assignment operator
0026   SiliconCaloTrack_v1& operator=(const SiliconCaloTrack_v1& track);
0027 
0028   //~SiliconCaloTrack_v1() override;
0029 
0030   // The "standard PHObject response" functions...
0031   void identify(std::ostream& os = std::cout) const override;
0032   void Reset() override { *this = SiliconCaloTrack_v1(); }
0033   int isValid() const override;
0034   PHObject* CloneMe() const override { return new SiliconCaloTrack_v1(*this); }
0035 
0036   // copy content from base class
0037   using PHObject::CopyFrom;  // avoid warning for not implemented CopyFrom methods
0038   void CopyFrom(const SiliconCaloTrack&) override;
0039   void CopyFrom(SiliconCaloTrack* source) override
0040   {
0041     CopyFrom(*source);
0042   }
0043 
0044   //
0045   // basic track information ---------------------------------------------------
0046   //
0047 
0048   unsigned int get_id() const override { return _track_id; }
0049   void set_id(unsigned int id) override { _track_id = id; }
0050 
0051   unsigned int get_calo_id() const override { return _calo_id; }
0052   void set_calo_id(unsigned int id) override { _calo_id = id; }
0053 
0054   //--float get_x() const override { return _states.find(0.0)->second->get_x(); }
0055   //--void set_x(float x) override { _states[0.0]->set_x(x); }
0056 
0057   //--float get_y() const override { return _states.find(0.0)->second->get_y(); }
0058   //--void set_y(float y) override { _states[0.0]->set_y(y); }
0059 
0060   //--float get_z() const override { return _states.find(0.0)->second->get_z(); }
0061   //--void set_z(float z) override { _states[0.0]->set_z(z); }
0062 
0063   //--float get_pos(unsigned int i) const override { return _states.find(0.0)->second->get_pos(i); }
0064 
0065   float get_pt()   const override { return _pt; }
0066   void  set_pt(float pt) override { _pt = pt; }
0067   float get_phi()    const override { return _phi; }
0068   void  set_phi(float phi) override { _phi = phi; }
0069   float get_eta()    const override { return _eta; }
0070   void  set_eta(float eta) override { _eta = eta; }
0071 
0072   float get_px() const override { return _pt * cos(_phi); }
0073   float get_py() const override { return _pt * sin(_phi); }
0074   float get_pz() const override { return _pt * sinh(_eta); }
0075 
0076   float get_p() const override { return sqrt(pow(get_px(), 2) + pow(get_py(), 2) + pow(get_pz(), 2)); }
0077 
0078   //
0079   // calo projection methods ---------------------------------------------------
0080   //
0081   float get_cal_dphi() const override { return _cal_dphi; }
0082   void set_cal_dphi(float dphi) override { _cal_dphi = dphi; }
0083 
0084   float get_cal_dz() const override { return _cal_dz; }
0085   void set_cal_dz(float dz) override { _cal_dz = dz; }
0086 
0087 
0088  private:
0089   // track information
0090   unsigned int _track_id = UINT_MAX;
0091   unsigned int _calo_id  = UINT_MAX;
0092 
0093   float _pt;
0094   float _phi;
0095   float _eta;
0096 
0097   // calorimeter matches
0098   float _cal_dphi;
0099   float _cal_dz;
0100 
0101   ClassDefOverride(SiliconCaloTrack_v1, 1)
0102 };
0103 
0104 #endif