Commit c2ea4aa2 authored by Morfouace's avatar Morfouace
Browse files

Adding Sofia detectors to NPLib

parent 42785e9c
add_custom_command(OUTPUT TSofiaPhysicsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofiaPhysics.h TSofiaPhysicsDict.cxx TSofiaPhysics.rootmap libNPSofia.dylib DEPENDS TSofiaPhysics.h)
add_custom_command(OUTPUT TSofiaDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofiaData.h TSofiaDataDict.cxx TSofiaData.rootmap libNPSofia.dylib DEPENDS TSofiaData.h)
add_library(NPSofia SHARED TSofiaSpectra.cxx TSofiaData.cxx TSofiaPhysics.cxx TSofiaDataDict.cxx TSofiaPhysicsDict.cxx )
target_link_libraries(NPSofia ${ROOT_LIBRARIES} NPCore)
install(FILES TSofiaData.h TSofiaPhysics.h TSofiaSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
add_custom_command(OUTPUT TSofSciDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofSciData.h TSofSciDataDict.cxx TSofSciData.rootmap libNPSofia.dylib DEPENDS TSofSciData.h)
add_custom_command(OUTPUT TSofTofWDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofTofWData.h TSofTofWDataDict.cxx TSofTofWData.rootmap libNPSofia.dylib DEPENDS TSofTofWData.h)
add_custom_command(OUTPUT TSofTofWPhysicsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofTofWPhysics.h TSofTofWPhysicsDict.cxx TSofTofWPhysics.rootmap libNPSofia.dylib DEPENDS TSofTofWPhysics.h)
add_custom_command(OUTPUT TSofMwpcDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofMwpcData.h TSofMwpcDataDict.cxx TSofMwpcData.rootmap libNPSofia.dylib DEPENDS TSofMwpcData.h)
add_custom_command(OUTPUT TSofAtDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofAtData.h TSofAtDataDict.cxx TSofAtData.rootmap libNPSofia.dylib DEPENDS TSofAtData.h)
add_custom_command(OUTPUT TSofTrimDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofTrimData.h TSofTrimDataDict.cxx TSofTrimData.rootmap libNPSofia.dylib DEPENDS TSofTrimData.h)
add_custom_command(OUTPUT TSofTrimPhysicsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofTrimPhysics.h TSofTrimPhysicsDict.cxx TSofTrimPhysics.rootmap libNPSofia.dylib DEPENDS TSofTrimPhysics.h)
add_custom_command(OUTPUT TSofTwimDataDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TSofTwimData.h TSofTwimDataDict.cxx TSofTwimData.rootmap libNPSofia.dylib DEPENDS TSofTwimData.h)
add_library(NPSofia SHARED TSofSciData.cxx TSofSciDataDict.cxx TSofMwpcData.cxx TSofMwpcDataDict.cxx TSofAtData.cxx TSofAtDataDict.cxx TSofTrimData.cxx TSofTrimDataDict.cxx TSofTrimPhysics.cxx TSofTrimPhysicsDict.cxx TSofTwimData.cxx TSofTwimDataDict.cxx TSofTofWData.cxx TSofTofWDataDict.cxx TSofTofWPhysics.cxx TSofTofWPhysicsDict.cxx)
target_link_libraries(NPSofia ${ROOT_LIBRARIES} NPCore NPPhysics)
install(FILES TSofSciData.h TSofMwpcData.h TSofAtData.h TSofTrimData.h TSofTrimPhysics.h TSofTwimData.h TSofTofWData.h TSofTofWPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofAt Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
#include "TSofAtData.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
ClassImp(TSofAtData)
//////////////////////////////////////////////////////////////////////
TSofAtData::TSofAtData() {
}
//////////////////////////////////////////////////////////////////////
TSofAtData::~TSofAtData() {
}
//////////////////////////////////////////////////////////////////////
void TSofAtData::Clear() {
fAT_AnodeNbr.clear();
fAT_Energy.clear();
fAT_Time.clear();
fAT_PileUp.clear();
fAT_Overflow.clear();
}
//////////////////////////////////////////////////////////////////////
void TSofAtData::Dump() const {
// This method is very useful for debuging and worth the dev.
cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event [TSofAtData::Dump()] XXXXXXXXXXXXXXXXX" << endl;
// Energy
size_t mysize = fAT_AnodeNbr.size();
cout << "AT_Mult: " << GetMultiplicity() << endl;
}
#ifndef __SofAtDATA__
#define __SofAtDATA__
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofAt Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
// STL
#include <vector>
using namespace std;
// ROOT
#include "TObject.h"
class TSofAtData : public TObject {
//////////////////////////////////////////////////////////////
// data members are hold into vectors in order
// to allow multiplicity treatment
private:
vector<int> fAT_AnodeNbr;
vector<double> fAT_Energy;
vector<double> fAT_Time;
vector<bool> fAT_PileUp;
vector<bool> fAT_Overflow;
//////////////////////////////////////////////////////////////
// Constructor and destructor
public:
TSofAtData();
~TSofAtData();
//////////////////////////////////////////////////////////////
// Inherited from TObject and overriden to avoid warnings
public:
void Clear();
void Clear(const Option_t*) {};
void Dump() const;
//////////////////////////////////////////////////////////////
// Getters and Setters
// Prefer inline declaration to avoid unnecessary called of
// frequently used methods
// add //! to avoid ROOT creating dictionnary for the methods
public:
////////////////////// SETTERS ////////////////////////
inline void SetAnodeNbr(int det){fAT_AnodeNbr.push_back(det);};//!
inline void SetEnergy(double Energy){fAT_Energy.push_back(Energy);};//!
inline void SetTime(double Time){fAT_Time.push_back(Time);};//!
inline void SetPileUp(bool ispileup){fAT_PileUp.push_back(ispileup);};//!
inline void SetOverflow(bool isoverflow){fAT_Overflow.push_back(isoverflow);};//!
////////////////////// GETTERS ////////////////////////
inline int GetMultiplicity() const {return fAT_AnodeNbr.size();}//!
inline int GetAnodeNbr(const unsigned int &i) const {return fAT_AnodeNbr[i];}//!
inline double GetEnergy(const unsigned int &i) const {return fAT_Energy[i];}//!
inline double GetTime(const unsigned int &i) const {return fAT_Time[i];}//!
inline bool GetPileUp(const unsigned int &i) const {return fAT_PileUp[i];}//!
inline bool GetOverflow(const unsigned int &i) const {return fAT_Overflow[i];}//!
//////////////////////////////////////////////////////////////
// Required for ROOT dictionnary
ClassDef(TSofAtData,1) // SofAtData structure
};
#endif
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofMwpc Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
#include "TSofMwpcData.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
ClassImp(TSofMwpcData)
//////////////////////////////////////////////////////////////////////
TSofMwpcData::TSofMwpcData() {
}
//////////////////////////////////////////////////////////////////////
TSofMwpcData::~TSofMwpcData() {
}
//////////////////////////////////////////////////////////////////////
void TSofMwpcData::Clear() {
fMwpc_DetNbr.clear();
fMwpc_Plane.clear();
fMwpc_Pad.clear();
fMwpc_Charge.clear();
}
//////////////////////////////////////////////////////////////////////
void TSofMwpcData::Dump() const {
// This method is very useful for debuging and worth the dev.
cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event [TSofMwpcData::Dump()] XXXXXXXXXXXXXXXXX" << endl;
// Energy
size_t mysize = fMwpc_Charge.size();
cout << "MWPC_Mult: " << GetMultiplicity() << endl;
}
#ifndef __SofMwpcDATA__
#define __SofMwpcDATA__
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofMwpc Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
// STL
#include <vector>
using namespace std;
// ROOT
#include "TObject.h"
class TSofMwpcData : public TObject {
//////////////////////////////////////////////////////////////
// data members are hold into vectors in order
// to allow multiplicity treatment
private:
vector<int> fMwpc_DetNbr;
vector<int> fMwpc_Plane;
vector<int> fMwpc_Pad;
vector<int> fMwpc_Charge;
//////////////////////////////////////////////////////////////
// Constructor and destructor
public:
TSofMwpcData();
~TSofMwpcData();
//////////////////////////////////////////////////////////////
// Inherited from TObject and overriden to avoid warnings
public:
void Clear();
void Clear(const Option_t*) {};
void Dump() const;
//////////////////////////////////////////////////////////////
// Getters and Setters
// Prefer inline declaration to avoid unnecessary called of
// frequently used methods
// add //! to avoid ROOT creating dictionnary for the methods
public:
////////////////////// SETTERS ////////////////////////
inline void SetDetectorNbr(int det){fMwpc_DetNbr.push_back(det);};//!
inline void SetPlane(int p){fMwpc_Plane.push_back(p);};//!
inline void SetPad(int p){fMwpc_Pad.push_back(p);};//!
inline void SetCharge(int q){fMwpc_Charge.push_back(q);};//!
////////////////////// GETTERS ////////////////////////
inline int GetMultiplicity() const {return fMwpc_DetNbr.size();}//!
inline int GetDetectorNbr(const unsigned int &i) const {return fMwpc_DetNbr[i];}//!
inline int GetPlane(const unsigned int &i) const {return fMwpc_Plane[i];}//!
inline int GetPad(const unsigned int &i) const {return fMwpc_Pad[i];}//!
inline int GetCharge(const unsigned int &i) const {return fMwpc_Charge[i];}//!
//////////////////////////////////////////////////////////////
// Required for ROOT dictionnary
ClassDef(TSofMwpcData,1) // SofMwpcData structure
};
#endif
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofSci Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
#include "TSofSciData.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
ClassImp(TSofSciData)
//////////////////////////////////////////////////////////////////////
TSofSciData::TSofSciData() {
}
//////////////////////////////////////////////////////////////////////
TSofSciData::~TSofSciData() {
}
//////////////////////////////////////////////////////////////////////
void TSofSciData::Clear() {
fSofSci_DetNbr.clear();
fSofSci_Pmt.clear();
fSofSci_CT.clear();
fSofSci_FT.clear();
}
//////////////////////////////////////////////////////////////////////
void TSofSciData::Dump() const {
// This method is very useful for debuging and worth the dev.
cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event [TSofSciData::Dump()] XXXXXXXXXXXXXXXXX" << endl;
// Energy
size_t mysize = fSofSci_DetNbr.size();
cout << "SofSci_Mult: " << GetMultiplicity() << endl;
}
#ifndef __SofSciDATA__
#define __SofSciDATA__
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* *
* Creation Date : May 2021 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofSci Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
// STL
#include <vector>
using namespace std;
// ROOT
#include "TObject.h"
class TSofSciData : public TObject {
//////////////////////////////////////////////////////////////
// data members are hold into vectors in order
// to allow multiplicity treatment
private:
vector<int> fSofSci_DetNbr;
vector<int> fSofSci_Pmt;
vector<double> fSofSci_CT;
vector<double> fSofSci_FT;
//////////////////////////////////////////////////////////////
// Constructor and destructor
public:
TSofSciData();
~TSofSciData();
//////////////////////////////////////////////////////////////
// Inherited from TObject and overriden to avoid warnings
public:
void Clear();
void Clear(const Option_t*) {};
void Dump() const;
//////////////////////////////////////////////////////////////
// Getters and Setters
// Prefer inline declaration to avoid unnecessary called of
// frequently used methods
// add //! to avoid ROOT creating dictionnary for the methods
public:
////////////////////// SETTERS ////////////////////////
inline void SetDetectorNbr(int det){fSofSci_DetNbr.push_back(det);};//!
inline void SetPmt(int pmt){fSofSci_Pmt.push_back(pmt);};//!
inline void SetCoarseTime(double Time){fSofSci_CT.push_back(Time);};//!
inline void SetFineTime(double Time){fSofSci_FT.push_back(Time);};//!
////////////////////// GETTERS ////////////////////////
inline int GetMultiplicity() const {return fSofSci_DetNbr.size();}//!
inline int GetDetectorNbr(const unsigned int &i) const {return fSofSci_DetNbr[i];}//!
inline int GetPmt(const unsigned int &i) const {return fSofSci_Pmt[i];}//!
inline double GetCoarseTime(const unsigned int &i) const {return fSofSci_CT[i];}//!
inline double GetFineTime(const unsigned int &i) const {return fSofSci_FT[i];}//!
//////////////////////////////////////////////////////////////
// Required for ROOT dictionnary
ClassDef(TSofSciData,1) // SofSciData structure
};
#endif
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* *
* Creation Date : November 2020 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold Sofia Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
#include "TSofTofWData.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
ClassImp(TSofTofWData)
//////////////////////////////////////////////////////////////////////
TSofTofWData::TSofTofWData() {
}
//////////////////////////////////////////////////////////////////////
TSofTofWData::~TSofTofWData() {
}
//////////////////////////////////////////////////////////////////////
void TSofTofWData::Clear() {
fTOF_PlasticNbr.clear();
fTOF_Pmt.clear();
fTOF_Energy.clear();
fTOF_CT.clear();
fTOF_FT.clear();
fTOF_WhichFlag.clear();
}
//////////////////////////////////////////////////////////////////////
void TSofTofWData::Dump() const {
// This method is very useful for debuging and worth the dev.
cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event [TSofTofWData::Dump()] XXXXXXXXXXXXXXXXX" << endl;
// Energy
size_t mysize = fTOF_PlasticNbr.size();
cout << "TOF_Mult: " << mysize << endl;
}
#ifndef __SofTofWDATA__
#define __SofTofWDATA__
/*****************************************************************************
* Copyright (C) 2009-2020 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: Pierre Morfouace contact address: pierre.morfouace2@cea.fr *
* *
* Creation Date : November 2020 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This class hold SofTofW Raw data *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
// STL
#include <vector>
using namespace std;
// ROOT
#include "TObject.h"
class TSofTofWData : public TObject {
//////////////////////////////////////////////////////////////
// data members are hold into vectors in order
// to allow multiplicity treatment
private:
vector<int> fTOF_PlasticNbr;
vector<int> fTOF_Pmt;
vector<double> fTOF_Energy;
vector<double> fTOF_CT;
vector<double> fTOF_FT;
vector<bool> fTOF_WhichFlag;
//////////////////////////////////////////////////////////////
// Constructor and destructor
public:
TSofTofWData();
~TSofTofWData();
//////////////////////////////////////////////////////////////
// Inherited from TObject and overriden to avoid warnings
public:
void Clear();
void Clear(const Option_t*) {};
void Dump() const;
//////////////////////////////////////////////////////////////
// Getters and Setters
// Prefer inline declaration to avoid unnecessary called of
// frequently used methods
// add //! to avoid ROOT creating dictionnary for the methods
public:
////////////////////// SETTERS ////////////////////////
inline void SetPlasticNbr(int plastic){fTOF_PlasticNbr.push_back(plastic);};//!
inline void SetPmt(int pmt){fTOF_Pmt.push_back(pmt);};//!
inline void SetEnergy(double Energy){fTOF_Energy.push_back(Energy);};//!
inline void SetCoarseTime(double Time){fTOF_CT.push_back(Time);};//!
inline void SetFineTime(double Time){fTOF_FT.push_back(Time);};//!
inline void SetWhichFlag(bool flag){fTOF_WhichFlag.push_back(flag);};//!
////////////////////// GETTERS ////////////////////////