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 *
* *
*---------------------------------------------------------------------------*
Hugo Jacob
committed
* Comment: Added vectors for real energy/time values (double) (T.Goigoux CEA) *
* *
* *
*****************************************************************************/
// STL
#include "TObject.h"
#include <map>
Hugo Jacob
committed
#include <vector>
class TExogamData : public TObject {
Hugo Jacob
committed
public:
TExogamData();
void Clear();
Hugo Jacob
committed
void Clear(const Option_t*){};
void Dump() const;
public:
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);
}
Hugo Jacob
committed
///////////////////// 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]; }
Hugo Jacob
committed
ClassDef(TExogamData, 1) // ExogamData structure
};