diff --git a/NPLib/MUST2/Must2Array.cxx b/NPLib/MUST2/Must2Array.cxx index 846632eb029aac817d473758a8512f2196edd07c..bdd09301f75ff0e33c3070a3d5df0298b47a8a75 100644 --- a/NPLib/MUST2/Must2Array.cxx +++ b/NPLib/MUST2/Must2Array.cxx @@ -25,6 +25,7 @@ // STL #include <cmath> #include <iostream> +#include <sstream> #include <fstream> #include <string> #include <stdlib.h> @@ -32,7 +33,7 @@ // NPL #include "RootInput.h" #include "RootOutput.h" - +#include "CalibrationManager.h" // Root #include "TChain.h" @@ -291,62 +292,49 @@ void MUST2Array::ReadConfiguration(string Path) } - -// Read stream at Path and pick-up calibration parameter using Token -// If argument is "Simulation" no change calibration is loaded -void MUST2Array::ReadCalibrationFile(string Path) - { - - // Order of Polynom function used for calibration - int Calibration_Si_E_Order ; - int Calibration_Si_T_Order ; - int Calibration_SiLi_E_Order ; - int Calibration_CsI_E_Order ; - - // Calibration_Si_X_E[DetectorNumber][StripNumber][Order of Coeff] - vector< vector< vector< double > > > Calibration_Si_X_E ; - vector< vector< vector< double > > > Calibration_Si_X_T ; - - vector< vector< vector< double > > > Calibration_Si_Y_E ; - vector< vector< vector< double > > > Calibration_Si_Y_T ; - - // Calibration_SiLi_E[DetectorNumber][PadNumber][Order of Coeff] - vector< vector< vector< double > > > Calibration_SiLi_E ; - - // Calibration_SiLi_E[DetectorNumber][CrystalNumber][Order of Coeff] - vector< vector< vector< double > > > Calibration_CsI_E ; - - if(Path == "Simulation") // Simulation case: data already calibrated +//////////// Little Tool ////////////////// + // tranform an integer to a string + string itoa(int value) { - Calibration_Si_E_Order = 1 ; - Calibration_Si_T_Order = 1 ; - Calibration_SiLi_E_Order = 1 ; - Calibration_CsI_E_Order = 1 ; - - vector<double> Coef; - // Order 0 Order 1 - Coef.push_back(0) ; Coef.push_back(1) ; - - vector< vector<double> > StripLine ; - StripLine.resize( 128 , Coef) ; - - Calibration_Si_X_E.resize( NumberOfTelescope , StripLine) ; - Calibration_Si_X_T.resize( NumberOfTelescope , StripLine) ; - - Calibration_Si_Y_E.resize( NumberOfTelescope , StripLine) ; - Calibration_Si_Y_T.resize( NumberOfTelescope , StripLine) ; - - Calibration_SiLi_E.resize( NumberOfTelescope , StripLine) ; - Calibration_CsI_E .resize( NumberOfTelescope , StripLine) ; + std::ostringstream o; + + if (!(o << value)) + return "" ; + + return o.str(); } - else +// Add Parameter to the CalibrationManger +void MUST2Array::AddParameterToCalibrationManager() + { + CalibrationManager* Cal = CalibrationManager::getInstance(); + + for(int i = 0 ; i < NumberOfTelescope ; i++) { - + for( int j = 0 ; j < 128 ; j++) + { + Cal->AddParameter("MUST2", "T"+itoa(i)+"_Si_X"+itoa(j)+"_E","MUST2_T"+itoa(i)+"_Si_X"+itoa(j)+"_E") ; + Cal->AddParameter("MUST2", "T"+itoa(i)+"_Si_Y"+itoa(j)+"_E","MUST2_T"+itoa(i)+"_Si_Y"+itoa(j)+"_E") ; + Cal->AddParameter("MUST2", "T"+itoa(i)+"_Si_X"+itoa(j)+"_T","MUST2_T"+itoa(i)+"_Si_X"+itoa(j)+"_T") ; + Cal->AddParameter("MUST2", "T"+itoa(i)+"_Si_Y"+itoa(j)+"_T","MUST2_T"+itoa(i)+"_Si_Y"+itoa(j)+"_T") ; + } + + for( int j = 0 ; j < 16 ; j++) + { + Cal->AddParameter("MUST2", "T"+itoa(i)+"_SiLi"+itoa(j)+"_E","MUST2_T"+itoa(i)+"_SiLi"+itoa(j)+"_E") ; + Cal->AddParameter("MUST2", "T"+itoa(i)+"_SiLi"+itoa(j)+"_T","MUST2_T"+itoa(i)+"_SiLi"+itoa(j)+"_T") ; + } + + for( int j = 0 ; j < 16 ; j++) + { + Cal->AddParameter("MUST2", "T"+itoa(i)+"_CsI"+itoa(j)+"_E","MUST2_T"+itoa(i)+"_CsI"+itoa(j)+"_E") ; + Cal->AddParameter("MUST2", "T"+itoa(i)+"_CsI"+itoa(j)+"_T","MUST2_T"+itoa(i)+"_CsI"+itoa(j)+"_T") ; + } } - } + + } // Activated associated Branches and link it to the private member DetectorData address // In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated diff --git a/NPLib/MUST2/Must2Array.h b/NPLib/MUST2/Must2Array.h index d8babeea6bfb4596faa3f2566ab857ef198bcd26..0d39ba160ef17a32177c2d09fb45fe8706a4982e 100644 --- a/NPLib/MUST2/Must2Array.h +++ b/NPLib/MUST2/Must2Array.h @@ -42,9 +42,8 @@ class MUST2Array : public NPA::VDetector void ReadConfiguration(string) ; - // Read stream at CalibFile and pick-up calibration parameter using Token - // If argument is "Simulation" no change calibration is loaded - void ReadCalibrationFile(string) ; + // Add Parameter to the CalibrationManger + void AddParameterToCalibrationManager() ; // Activated associated Branches and link it to the private member DetectorData address diff --git a/NPLib/VDetector/VDetector.h b/NPLib/VDetector/VDetector.h index 20fd8d3f933a49aa75ecfd55a9bcb9a25152ca08..d461f8c207b31aee5a69b218f6b99ab956ffb5b3 100644 --- a/NPLib/VDetector/VDetector.h +++ b/NPLib/VDetector/VDetector.h @@ -43,7 +43,11 @@ namespace NPA // Read stream at ConfigFile to pick-up parameters of detector (Position,...) using Token virtual void ReadConfiguration(string) {} ; + + // Add Parameter to the CalibrationManger + virtual void AddParameterToCalibrationManager() {} ; + // XXX To be DUMPED XXX // Read stream at CalibFile and pick-up calibration parameter using Token // If argument is "Simulation" no change calibration is loaded virtual void ReadCalibrationFile(string) {} ;