Skip to content
Snippets Groups Projects
TExogamData.h 4.35 KiB
Newer Older
#ifndef __EXOGAMDATA__
#define __EXOGAMDATA__
/*****************************************************************************
 * Copyright (C) 2009-2016    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: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
 *                                                                           *
 * Creation Date  : march 2009                                               *
 * Last update    : july 2019                                                         *
 *---------------------------------------------------------------------------*
 * Decription:                                                               *
 *  This class hold Exogam Raw data                                          *
 *                                                                           *
 *---------------------------------------------------------------------------*
 * Comment: Added vectors for real energy/time values (double) (T.Goigoux CEA) *
 *                                                                           *
 *                                                                           *
 *****************************************************************************/

class TExogamData : public TObject {
 public:
  TExogamData();
  virtual ~TExogamData();

  void Clear();
 public:
  std::vector<unsigned int> fExo_Flange;
  std::vector<unsigned int> fExo_Crystal;
  std::vector<unsigned int> fExo_E;
  std::vector<unsigned int> fExo_E_HG; // High gain x20
  std::vector<unsigned long long> fExo_TS;
  std::vector<unsigned int> fExo_TDC;
  std::vector<unsigned int> fExo_BGO;
  std::vector<unsigned int> fExo_CsI;
  std::vector<unsigned int> fExo_Outer1;
  std::vector<unsigned int> fExo_Outer2;
  std::vector<unsigned int> fExo_Outer3;
  std::vector<unsigned int> fExo_Outer4;


  /////////////////////           SETTERS           ////////////////////////
  inline void SetExoFlange(unsigned int& Flange) { fExo_Flange.push_back(Flange); }
  inline void SetExoCrystal(unsigned int& Crystal) { fExo_Crystal.push_back(Crystal); }
  inline void SetExoE(unsigned int& Energy) { fExo_E.push_back(Energy); }
  inline void SetExoEHG(unsigned int& Energy) { fExo_E_HG.push_back(Energy); }
  inline void SetExoTS(unsigned long long& TS) { fExo_TS.push_back(TS); }
  inline void SetExoTDC(unsigned int& TDC) { fExo_TDC.push_back(TDC); }
  inline void SetExoBGO(unsigned int& BGO) { fExo_BGO.push_back(BGO); }
  inline void SetExoCsI(unsigned int& CsI) { fExo_CsI.push_back(CsI); }
  inline void SetExoOuter1(unsigned int& Outer1) { fExo_Outer1.push_back(Outer1); }
  inline void SetExoOuter2(unsigned int& Outer2) { fExo_Outer2.push_back(Outer2); }
  inline void SetExoOuter3(unsigned int& Outer3) { fExo_Outer3.push_back(Outer3); }
  inline void SetExoOuter4(unsigned int& Outer4) { fExo_Outer4.push_back(Outer4); }

  /////////////////////           GETTERS           ////////////////////////
  inline unsigned int GetExoFlange(unsigned int& i) { return fExo_Flange[i]; }
  inline unsigned int GetExoCrystal(unsigned int& i) { return fExo_Crystal[i]; }
  inline unsigned int GetExoE(unsigned int& i) { return fExo_E[i]; }
  inline unsigned int GetExoEHG(unsigned int& i) { return fExo_E_HG[i]; }
  inline unsigned long long GetExoTS(unsigned int& i) { return fExo_TS[i]; }
  inline unsigned int GetExoTDC(unsigned int& i) { return fExo_TDC[i]; }
  inline unsigned int GetExoBGO(unsigned int& i) { return fExo_BGO[i]; }
  inline unsigned int GetExoCsI(unsigned int& i) { return fExo_CsI[i]; }
  inline unsigned int GetExoOuter1(unsigned int& i) { return fExo_Outer1[i]; }
  inline unsigned int GetExoOuter2(unsigned int& i) { return fExo_Outer2[i]; }
  inline unsigned int GetExoOuter3(unsigned int& i) { return fExo_Outer3[i]; }
  inline unsigned int GetExoOuter4(unsigned int& i) { return fExo_Outer4[i]; }
  ClassDef(TExogamData, 1) // ExogamData structure
};