ROOT logo
#include "TString.h"
#include "hemcsimulpar.h"
#include "hpario.h"
#include "hdetpario.h"
#include "hparamlist.h"
using namespace std;

//_HADES_CLASS_DESCRIPTION
/////////////////////////////////////////////////////////////////////////
//
//  HEmcSimulPar:
//  Container for the EMC parameters in the HGeant simulation
//
/////////////////////////////////////////////////////////////////////////

ClassImp(HEmcSimulPar)


HEmcSimulPar::HEmcSimulPar(const char* name,const char* title,const char* context)
           : HParCond(name,title,context) {
  // constructor
  numRows = 15;
  numCols = 17;
  lookupPmtType.Set(6*numRows*numCols);
  clear();
}

void HEmcSimulPar::clear(void) {
  // clears the container
  numPmtTypes = 0;
  lookupPmtType.Reset();
}

void HEmcSimulPar::putParams(HParamList* l) {
  // puts all parameters to the parameter list, which is used by the io
  if (!l) return;
  l->add("numPmtTypes",  numPmtTypes);
  l->add("lookupPmtType",lookupPmtType);
}

Bool_t HEmcSimulPar::getParams(HParamList* l) {
  // gets all parameters from the parameter list, which is used by the io
  if (!l) return kFALSE;
  if (!(l->fill("numPmtTypes",  &numPmtTypes)))     return kFALSE;
  if (!(l->fill("lookupPmtType",&lookupPmtType)))   return kFALSE;   
  return kTRUE;
}

Bool_t HEmcSimulPar::getLookupArray(Int_t arraySize, Int_t* array) {
  // copies the lookup data into an array of the same size
  // (used in hgeant2/gemc/emcinit.F) 
  if (arraySize == lookupPmtType.GetSize()) {
    memcpy(array,lookupPmtType.GetArray(), arraySize*sizeof(Int_t));
    return kTRUE;
  }
  Error("getLookupArray", "Mismatch of array sizes (lookupPmtType: %i)",lookupPmtType.GetSize());
  return kFALSE;
}

void HEmcSimulPar::printLookupPmtType(void) {
  // prints the lookup data row wise
  // (17 values in one row, not 10 as in HParCond::printParams())
  Int_t i=0, k=0;
  while (k<lookupPmtType.GetSize()) {
    if (i==numCols) {
      cout<<" \\\n";
      i=0;
    }
    cout<<" "<<lookupPmtType[k];
    i++;
    k++;
  }
  cout<<endl;
}
 hemcsimulpar.cc:1
 hemcsimulpar.cc:2
 hemcsimulpar.cc:3
 hemcsimulpar.cc:4
 hemcsimulpar.cc:5
 hemcsimulpar.cc:6
 hemcsimulpar.cc:7
 hemcsimulpar.cc:8
 hemcsimulpar.cc:9
 hemcsimulpar.cc:10
 hemcsimulpar.cc:11
 hemcsimulpar.cc:12
 hemcsimulpar.cc:13
 hemcsimulpar.cc:14
 hemcsimulpar.cc:15
 hemcsimulpar.cc:16
 hemcsimulpar.cc:17
 hemcsimulpar.cc:18
 hemcsimulpar.cc:19
 hemcsimulpar.cc:20
 hemcsimulpar.cc:21
 hemcsimulpar.cc:22
 hemcsimulpar.cc:23
 hemcsimulpar.cc:24
 hemcsimulpar.cc:25
 hemcsimulpar.cc:26
 hemcsimulpar.cc:27
 hemcsimulpar.cc:28
 hemcsimulpar.cc:29
 hemcsimulpar.cc:30
 hemcsimulpar.cc:31
 hemcsimulpar.cc:32
 hemcsimulpar.cc:33
 hemcsimulpar.cc:34
 hemcsimulpar.cc:35
 hemcsimulpar.cc:36
 hemcsimulpar.cc:37
 hemcsimulpar.cc:38
 hemcsimulpar.cc:39
 hemcsimulpar.cc:40
 hemcsimulpar.cc:41
 hemcsimulpar.cc:42
 hemcsimulpar.cc:43
 hemcsimulpar.cc:44
 hemcsimulpar.cc:45
 hemcsimulpar.cc:46
 hemcsimulpar.cc:47
 hemcsimulpar.cc:48
 hemcsimulpar.cc:49
 hemcsimulpar.cc:50
 hemcsimulpar.cc:51
 hemcsimulpar.cc:52
 hemcsimulpar.cc:53
 hemcsimulpar.cc:54
 hemcsimulpar.cc:55
 hemcsimulpar.cc:56
 hemcsimulpar.cc:57
 hemcsimulpar.cc:58
 hemcsimulpar.cc:59
 hemcsimulpar.cc:60
 hemcsimulpar.cc:61
 hemcsimulpar.cc:62
 hemcsimulpar.cc:63
 hemcsimulpar.cc:64
 hemcsimulpar.cc:65
 hemcsimulpar.cc:66
 hemcsimulpar.cc:67
 hemcsimulpar.cc:68
 hemcsimulpar.cc:69
 hemcsimulpar.cc:70
 hemcsimulpar.cc:71
 hemcsimulpar.cc:72
 hemcsimulpar.cc:73
 hemcsimulpar.cc:74