diff --git a/NPLib/Exogam/TExogamData.h b/NPLib/Exogam/TExogamData.h index 79ca7251389d9bda6f6a829b1ed70d638f67b5f4..e35e13ee5bf9cf9aa23e5a71cb23051f9c14e710 100644 --- a/NPLib/Exogam/TExogamData.h +++ b/NPLib/Exogam/TExogamData.h @@ -88,26 +88,26 @@ class TExogamData : public TObject { // ECC / Energy // UShort_t GetCloverMult() {return fEXO_ECC_E_Clover.size();} UShort_t GetECCEMult() {return fEXO_ECC_E_Clover.size();} - UShort_t GetECCEClover(Int_t i) {return fEXO_ECC_E_Clover.at(i);} - UShort_t GetECCECristal(Int_t i) {return fEXO_ECC_E_Cristal.at(i);} - UShort_t GetECCEEnergy(Int_t i) {return fEXO_ECC_E_Energy.at(i);} + UShort_t GetECCEClover(Int_t i) {return fEXO_ECC_E_Clover[i];} + UShort_t GetECCECristal(Int_t i) {return fEXO_ECC_E_Cristal[i];} + UShort_t GetECCEEnergy(Int_t i) {return fEXO_ECC_E_Energy[i];} // ECC / Time UShort_t GetECCTMult() {return fEXO_ECC_T_Clover.size();} - UShort_t GetECCTClover(Int_t i) {return fEXO_ECC_T_Clover.at(i);} - UShort_t GetECCTCristal(Int_t i) {return fEXO_ECC_T_Cristal.at(i);} - UShort_t GetECCTTime(Int_t i) {return fEXO_ECC_T_Time.at(i);} + UShort_t GetECCTClover(Int_t i) {return fEXO_ECC_T_Clover[i];} + UShort_t GetECCTCristal(Int_t i) {return fEXO_ECC_T_Cristal[i];} + UShort_t GetECCTTime(Int_t i) {return fEXO_ECC_T_Time[i];} // GOCCE / Energy UShort_t GetGOCCEEMult() {return fEXO_GOCCE_E_Clover.size();} // multiplicity of segments hit in one clover - UShort_t GetGOCCEEClover(Int_t i) {return fEXO_GOCCE_E_Clover.at(i);} - UShort_t GetGOCCEECristal(Int_t i) {return fEXO_GOCCE_E_Cristal.at(i);} - UShort_t GetGOCCEESegment(Int_t i) {return fEXO_GOCCE_E_Segment.at(i);} - UShort_t GetGOCCEEEnergy(Int_t i) {return fEXO_GOCCE_E_Energy.at(i);} + UShort_t GetGOCCEEClover(Int_t i) {return fEXO_GOCCE_E_Clover[i];} + UShort_t GetGOCCEECristal(Int_t i) {return fEXO_GOCCE_E_Cristal[i];} + UShort_t GetGOCCEESegment(Int_t i) {return fEXO_GOCCE_E_Segment[i];} + UShort_t GetGOCCEEEnergy(Int_t i) {return fEXO_GOCCE_E_Energy[i];} // GOCCE / Time UShort_t GetGOCCETMult() {return fEXO_GOCCE_T_Clover.size();} - UShort_t GetGOCCETClover(Int_t i) {return fEXO_GOCCE_T_Clover.at(i);} - UShort_t GetGOCCETCristal(Int_t i) {return fEXO_GOCCE_T_Cristal.at(i);} - UShort_t GetGOCCETSegment(Int_t i) {return fEXO_GOCCE_T_Segment.at(i);} - UShort_t GetGOCCETTime(Int_t i) {return fEXO_GOCCE_T_Time.at(i);} + UShort_t GetGOCCETClover(Int_t i) {return fEXO_GOCCE_T_Clover[i];} + UShort_t GetGOCCETCristal(Int_t i) {return fEXO_GOCCE_T_Cristal[i];} + UShort_t GetGOCCETSegment(Int_t i) {return fEXO_GOCCE_T_Segment[i];} + UShort_t GetGOCCETTime(Int_t i) {return fEXO_GOCCE_T_Time[i];} //GeFill UShort_t GetGeFill() {return fEXO_Fill;} diff --git a/NPLib/Exogam/TExogamSpectra.cxx b/NPLib/Exogam/TExogamSpectra.cxx index 5f003cb3cb2f2ee5f080df646d3c649c95028fc8..6b879640c16581762a482f5fa9695668b0ce9c21 100644 --- a/NPLib/Exogam/TExogamSpectra.cxx +++ b/NPLib/Exogam/TExogamSpectra.cxx @@ -21,6 +21,12 @@ * * *****************************************************************************/ +// STL +#include <iostream> +#include <cstdlib> +#include <stdexcept> + + // NPL #include "TExogamSpectra.h" #include "NPOptionManager.h" @@ -126,20 +132,14 @@ void TExogamSpectra::FillRawSpectra(TExogamData* RawData){ string name; string family; - // Energy and Time RAw + // Energy for (unsigned int i = 0; i < RawData->GetECCEMult(); i++) { name = Form("ExogamEnergyRaw_Clover%d_ECC%d", RawData->GetECCEClover(i)+1,RawData->GetECCECristal(i)+1); family = "Exogam/RAW"; GetHisto(family,name) -> Fill(RawData->GetECCEEnergy(i)); - - name = Form("ExogamTimeRaw_Clover%d_ECC%d", RawData->GetECCTClover(i)+1,RawData->GetECCTCristal(i)+1); - family = "Exogam/RAW"; - - GetHisto(family,name) - -> Fill(RawData->GetECCTTime(i)); - + name = Form("ExogamEnergyRaw_Clover%d_ECC%d_GOCCE%d", RawData->GetECCEClover(i)+1,RawData->GetECCECristal(i)+1,RawData->GetGOCCEESegment(i)+1); family = "Exogam/RAW"; @@ -147,14 +147,21 @@ void TExogamSpectra::FillRawSpectra(TExogamData* RawData){ -> Fill(RawData->GetGOCCEEEnergy(i)); } + // Time + for (unsigned int i = 0; i < RawData->GetECCTMult(); i++) { + name = Form("ExogamTimeRaw_Clover%d_ECC%d", RawData->GetECCTClover(i)+1,RawData->GetECCTCristal(i)+1); + family = "Exogam/RAW"; + GetHisto(family,name) + -> Fill(RawData->GetECCTTime(i)); + } } //////////////////////////////////////////////////////////////////////////////// void TExogamSpectra::FillPreTreatedSpectra(TExogamData* PreTreatedData){ string name ; string family; - // Energy and Time RAw + // Energy for (unsigned int i = 0; i < PreTreatedData->GetECCEMult(); i++) { name = Form("ExogamEnergyCal_Clover%d_ECC%d", PreTreatedData->GetECCEClover(i)+1,PreTreatedData->GetECCECristal(i)+1); family = "Exogam/Cal"; @@ -162,18 +169,23 @@ void TExogamSpectra::FillPreTreatedSpectra(TExogamData* PreTreatedData){ GetHisto(family,name) -> Fill(PreTreatedData->GetECCEEnergy(i)); - name = Form("ExogamTimeCal_Clover%d_ECC%d", PreTreatedData->GetECCTClover(i)+1,PreTreatedData->GetECCTCristal(i)+1); - family = "Exogam/Cal"; - - GetHisto(family,name) - -> Fill(PreTreatedData->GetECCTTime(i)); - + name = Form("ExogamEnergyCal_Clover%d_ECC%d_GOCCE%d", PreTreatedData->GetECCEClover(i)+1,PreTreatedData->GetECCECristal(i)+1,PreTreatedData->GetGOCCEESegment(i)+1); family = "Exogam/Cal"; GetHisto(family,name) -> Fill(PreTreatedData->GetGOCCEEEnergy(i)); } + + // Time + for (unsigned int i = 0; i < PreTreatedData->GetECCTMult(); i++) { + name = Form("ExogamTimeCal_Clover%d_ECC%d", PreTreatedData->GetECCTClover(i)+1,PreTreatedData->GetECCTCristal(i)+1); + family = "Exogam/Cal"; + + GetHisto(family,name) + -> Fill(PreTreatedData->GetECCTTime(i)); + } + } //////////////////////////////////////////////////////////////////////////////// @@ -221,14 +233,25 @@ TH1* TExogamSpectra::AddHisto2D(string name, string title, Int_t nbinsx, Double_ //////////////////////////////////////////////////////////////////////////////// TH1* TExogamSpectra::GetHisto(string family, string name){ - vector<string> index ; +vector<string> index; + index.reserve(2); index.push_back(family); index.push_back(name); + TH1* histo ; - // fill map - return fMapHisto.at(index); + try{ + histo = fMapHisto.at(index); + } + + catch(const std::out_of_range& oor){ + cout << "ERROR : the folowing Histo has been requested by TCATSSpectra and does not exist: family:" << family << " name: " << name << endl ; + exit(1); + } + + return histo; } + //////////////////////////////////////////////////////////////////////////////// void TExogamSpectra::WriteHisto(string filename){ TFile* f=NULL;