#include "profastinit.h" #include "TFile.h" #include "hemcsimulpar.h" #include "THnSparse.h" using namespace std; void profastinit(char* paramfile, int* numpmttypes, int* mptlookup, long* point1, long* point2, long* point3, long* point4) { const Int_t numlookupdata = 1530; // 6 * 15 * 17 Int_t nTypes = 0; if (strlen(paramfile)>0) { TFile input(paramfile); HEmcSimulPar* pPar = (HEmcSimulPar*)input.Get("EmcSimulPar"); if (pPar) { nTypes = pPar->getNumPmtTypes(); pPar->getLookupArray(numlookupdata,mptlookup); } else { Error("gemc/profastinit","Parameter container EmcSimulPar not found"); } THnSparse* table1 = (THnSparseF*)input.Get("emcProfast_h1"); THnSparse* table2 = (THnSparseF*)input.Get("emcProfast_h2"); THnSparse* table3 = (THnSparseF*)input.Get("emcProfast_h3"); THnSparse* table4 = (THnSparseF*)input.Get("emcProfast_h4"); input.Close(); (*point1) = (long)table1; (*point2) = (long)table2; (*point3) = (long)table3; (*point4) = (long)table4; } else { (*point1) = (*point2) = (*point3) = (*point4) = 0; Error("gemc/profastinit","Parameter file missing"); } (*numpmttypes) = nTypes; if (nTypes == 0) { // no file or no parameter container memset(mptlookup, 0, numlookupdata * sizeof(Int_t)); } }