Skip to content
Snippets Groups Projects
TTiaraHyballData.h 4.92 KiB
Newer Older
#ifndef __TiaraHyballDATA__
#define __TiaraHyballDATA__
/*****************************************************************************
 * Copyright (C) 2009-2013    this file is part of the NPTool Project        *
 *                                                                           *
 * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
 * For the list of contributors see $NPTOOL/Licence/Contributors             *
 *****************************************************************************/

/*****************************************************************************
 * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
 *                                                                           *
 * Creation Date  : November 2013                                            *
 * Last update    :                                                          *
 *---------------------------------------------------------------------------*
 * Decription:                                                               *
 *  This class hold the Tiara Hyball Silicon array raw data                  *
 *                                                                           *
 *---------------------------------------------------------------------------*
 * Comment:                                                                  *
 *                                                                           *
 *                                                                           *
 *****************************************************************************/

// STL
#include<stdlib.h>
#include <vector>
#include <map>
using namespace std ;

// ROOT
#include "TNamed.h"

class TTiaraHyballData : public TNamed {
  
  public: 
    TTiaraHyballData();
    ~TTiaraHyballData();
 
  public:
    void Clear();
    void Clear(const Option_t*) {};
    void Dump() const;

  private:
    vector<unsigned short>   fTiaraHyball_Ring_DetectorNbr;
    vector<unsigned short>   fTiaraHyball_Ring_StripNbr;
    vector<double>           fTiaraHyball_Ring_Energy;
    vector<double>           fTiaraHyball_Ring_Time;

    vector<unsigned short>   fTiaraHyball_Sector_DetectorNbr;
    vector<unsigned short>   fTiaraHyball_Sector_StripNbr;
    vector<double>           fTiaraHyball_Sector_Energy;
    vector<double>           fTiaraHyball_Sector_Time;

    ///////////// Fast Setters ////////////////////
  public:
     inline void Set_Ring(const unsigned short& DetNbr, const unsigned short& StripNbr, const double& Energy, const double& Time){
      Set_Ring_DetectorNbr(DetNbr);
      Set_Ring_StripNbr(StripNbr);
      Set_Ring_Energy(Energy);
      Set_Ring_Time(Time);
    };
   inline void Set_Sector(const unsigned short& DetNbr, const unsigned short& StripNbr, const double& Energy, const double& Time){
      Set_Sector_DetectorNbr(DetNbr);
      Set_Sector_StripNbr(StripNbr);
      Set_Sector_Energy(Energy);
      Set_Sector_Time(Time);
    };


    ///////////// Getter and Setter ////////////////
  public:
    inline void Set_Ring_DetectorNbr(const unsigned short& Ring_DetectorNbr)
    {fTiaraHyball_Ring_DetectorNbr.push_back(Ring_DetectorNbr);}
    inline unsigned short Get_Ring_DetectorNbr(const unsigned int& i) const 
    {return fTiaraHyball_Ring_DetectorNbr[i];}

    inline void Set_Ring_StripNbr(const unsigned short& Ring_StripNbr)
    {fTiaraHyball_Ring_StripNbr.push_back(Ring_StripNbr);}
    inline unsigned short Get_Ring_StripNbr(const unsigned int& i) const 
    {return fTiaraHyball_Ring_StripNbr[i];}

    inline void Set_Ring_Energy(const double& Ring_Energy)
    {fTiaraHyball_Ring_Energy.push_back(Ring_Energy);}
    inline double Get_Ring_Energy(const unsigned int& i) const 
    {return fTiaraHyball_Ring_Energy[i];}

    inline void Set_Ring_Time(const double& Ring_Time)
    {fTiaraHyball_Ring_Time.push_back(Ring_Time);}
    inline double Get_Ring_Time(const unsigned int& i) const 
    {return fTiaraHyball_Ring_Time[i];}

    inline void Set_Sector_DetectorNbr(const unsigned short& Sector_DetectorNbr)
    {fTiaraHyball_Sector_DetectorNbr.push_back(Sector_DetectorNbr);}
    inline unsigned short Get_Sector_DetectorNbr(const unsigned int& i) const
    {return fTiaraHyball_Sector_DetectorNbr[i];}

    inline void Set_Sector_StripNbr(const unsigned short& Sector_StripNbr)
    {fTiaraHyball_Sector_StripNbr.push_back(Sector_StripNbr);}
    inline unsigned short Get_Sector_StripNbr(const unsigned int& i) const
    {return fTiaraHyball_Sector_StripNbr[i];}

    inline void Set_Sector_Energy(const double& Sector_Energy)
    {fTiaraHyball_Sector_Energy.push_back(Sector_Energy);}
    inline double Get_Sector_Energy(const unsigned int& i) const
    {return fTiaraHyball_Sector_Energy[i];}

    inline void Set_Sector_Time(const double& Sector_Time)
    {fTiaraHyball_Sector_Time.push_back(Sector_Time);}
    inline double Get_Sector_Time(const unsigned int& i) const 
    {return fTiaraHyball_Sector_Time[i];}


};

#endif