//_HADES_CLASS_DESCRIPTION //////////////////////////////////////////////////////////////////////////// //*-- AUTHOR : J. Markert //////////////////////////////////////////////////////////////////////////// // HiTofDigitPar // // Container class for iTof digitization parameters // //////////////////////////////////////////////////////////////////////////// #include "hitofdigitpar.h" #include "hpario.h" #include "hdetpario.h" #include "hmessagemgr.h" #include "hparamlist.h" #include "hmessagemgr.h" #include #include #include ClassImp(HiTofDigitPar) HiTofDigitPar::HiTofDigitPar(const Char_t* name,const Char_t* title, const Char_t* context) : HParCond(name,title,context) { // strcpy(detName,"iTof"); clear(); } HiTofDigitPar::~HiTofDigitPar() { // destructor } void HiTofDigitPar::clear() { sigmaT = 0; status = kFALSE; resetInputVersions(); changed = kFALSE; } void HiTofDigitPar::printParam(void) { // prints the parameters of HiTofDigitPar to the screen. cout<<"Time resoltion sigmaT [ns] : "<getDetParIo("HiTofParIo"); if (out) return out->write(this); return -1; } void HiTofDigitPar::putParams(HParamList* l) { // Puts all params of HiTofDigitPar to the parameter list of // HParamList (which ist used by the io); if (!l) return; l->add("sigmaT" ,sigmaT); l->add("vG" ,vG); l->add("minEnergyCut" ,minEnergyCut); l->add("attenuationEloss",attenuationEloss); l->add("sigmaEloss" ,sigmaEloss); } Bool_t HiTofDigitPar::getParams(HParamList* l) { if(!l) return kFALSE; if(!( l->fill("sigmaT" ,&sigmaT))) return kFALSE; if(!( l->fill("vG" ,&vG ))) return kFALSE; if(!( l->fill("minEnergyCut" ,&minEnergyCut ))) return kFALSE; if(!( l->fill("attenuationEloss",&attenuationEloss))) return kFALSE; if(!( l->fill("sigmaEloss" ,&sigmaEloss))) return kFALSE; return kTRUE; } Float_t HiTofDigitPar::calcLightPropTime (Int_t s,Int_t cell,Float_t distPMT) { // distPMT [mm] return distPMT / vG; //[ns] } Float_t HiTofDigitPar::calcTimeResolution(Int_t s,Int_t cell,Float_t distPMT) { return sigmaT; // [ns] } Float_t HiTofDigitPar::calcEnergyLoss(Int_t s,Int_t cell,Float_t distPMT,Float_t geantEloss) { return geantEloss * exp(-distPMT/attenuationEloss); }