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();
virtual ~TExogamData();
void Clear();
Hugo Jacob
committed
void Clear(const Option_t*){};
void Dump() const;
public:
std::vector<unsigned int> fExo_Crystal;
std::vector<float> fExo_E;
std::vector<float> fExo_E_HG; // High gain x20
std::vector<unsigned long long> fExo_TS;
std::vector<float> fExo_TDC;
std::vector<unsigned int> fExo_BGO;
std::vector<unsigned int> fExo_CsI;
std::vector<float> fExo_Outer1;
std::vector<float> fExo_Outer2;
std::vector<float> fExo_Outer3;
std::vector<float> fExo_Outer4;
///////////////////// SETTERS ////////////////////////
inline void SetExo(const unsigned int& Crystal,const float& Energy,
const float& Energy_HG,const unsigned long long& TS,const float& TDC,
const unsigned int& BGO,const unsigned int& CsI,const float& Outer1,
const float& Outer2,const float& Outer3,const float& 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 ////////////////////////
Hugo Jacob
committed
inline unsigned int GetExoMult() { return fExo_Crystal.size(); }
inline unsigned int GetExoCrystal(const unsigned int& i) const { return fExo_Crystal[i]; }
inline float GetExoE(const unsigned int& i) const { return fExo_E[i]; }
inline float GetExoEHG(const unsigned int& i) const { return fExo_E_HG[i]; }
Hugo Jacob
committed
inline unsigned long long GetExoTS(const unsigned int& i) const { return fExo_TS[i]; }
inline float GetExoTDC(const unsigned int& i) const { return fExo_TDC[i]; }
Hugo Jacob
committed
inline unsigned int GetExoBGO(const unsigned int& i) const { return fExo_BGO[i]; }
inline unsigned int GetExoCsI(const unsigned int& i) const { return fExo_CsI[i]; }
inline float GetExoOuter1(const unsigned int& i) const { return fExo_Outer1[i]; }
inline float GetExoOuter2(const unsigned int& i) const { return fExo_Outer2[i]; }
inline float GetExoOuter3(const unsigned int& i) const { return fExo_Outer3[i]; }
inline float GetExoOuter4(const unsigned int& i) const { return fExo_Outer4[i]; }
Hugo Jacob
committed
ClassDef(TExogamData, 1) // ExogamData structure
};