Skip to content
Snippets Groups Projects
TExogamData.h 3.96 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 {
  ~TExogamData();
  std::vector<uint16_t> fExo_Crystal;
  std::vector<uint16_t> fExo_E;
  std::vector<uint16_t> fExo_E_HG; // High gain x20
  std::vector<uint64_t> fExo_TS;
  std::vector<uint16_t> fExo_TDC;
  std::vector<uint16_t> fExo_BGO;
  std::vector<uint16_t> fExo_CsI;
  std::vector<uint16_t> fExo_Outer1;
  std::vector<uint16_t> fExo_Outer2;
  std::vector<uint16_t> fExo_Outer3;
  std::vector<uint16_t> fExo_Outer4;
  /////////////////////           SETTERS           ////////////////////////
  inline void SetExo(const uint16_t& Crystal,const uint16_t& Energy,
  const uint16_t& Energy_HG,const uint64_t& TS,const uint16_t& TDC,
  const uint16_t& BGO,const uint16_t& CsI,const uint16_t& Outer1,
  const uint16_t& Outer2,const uint16_t& Outer3,const uint16_t& Outer4) { 
  fExo_Crystal.push_back(Crystal);
  fExo_E.push_back(Energy);
  fExo_E_HG.push_back(Energy_HG);
  fExo_TS.push_back(TS);
  fExo_TDC.push_back(TDC);
  fExo_BGO.push_back(BGO);
  fExo_CsI.push_back(CsI);
  fExo_Outer1.push_back(Outer1);
  fExo_Outer2.push_back(Outer2);
  fExo_Outer3.push_back(Outer3);
  fExo_Outer4.push_back(Outer4);
  }
  /////////////////////           GETTERS           ////////////////////////
  inline uint16_t GetExoMult() { return fExo_Crystal.size(); }
  inline uint16_t GetExoCrystal(const uint16_t& i) const  { return fExo_Crystal[i]; }
  inline uint16_t GetExoE(const uint16_t& i) const  { return fExo_E[i]; }
  inline uint16_t GetExoEHG(const uint16_t& i) const  { return fExo_E_HG[i]; }
  inline uint64_t GetExoTS(const uint16_t& i) const  { return fExo_TS[i]; }
  inline uint16_t GetExoTDC(const uint16_t& i) const  { return fExo_TDC[i]; }
  inline uint16_t GetExoBGO(const uint16_t& i) const  { return fExo_BGO[i]; }
  inline uint16_t GetExoCsI(const uint16_t& i) const  { return fExo_CsI[i]; }
  inline uint16_t GetExoOuter1(const uint16_t& i) const { return fExo_Outer1[i]; }
  inline uint16_t GetExoOuter2(const uint16_t& i) const  { return fExo_Outer2[i]; }
  inline uint16_t GetExoOuter3(const uint16_t& i) const  { return fExo_Outer3[i]; }
  inline uint16_t GetExoOuter4(const uint16_t& i) const  { return fExo_Outer4[i]; }
  ClassDef(TExogamData, 1) // ExogamData structure
};