//*-- Author : D. Gonzalez-Diaz //*-- Created : 08/06/2006 //*-- Modified: 12/09/2006 by P.Cabanelas //_HADES_CLASS_DESCRIPTION ///////////////////////////////////////////////////////////////////////////// // // HRpcDigiPar // Container for the RPC detector digitization parameters // ///////////////////////////////////////////////////////////////////////////// using namespace std; #include "hades.h" #include "hruntimedb.h" #include "hspectrometer.h" #include "hrpcdetector.h" #include "hpario.h" #include "hdetpario.h" #include "hrpcdigipar.h" #include #include ClassImp(HRpcDigiPar) ClassImp(HRpcDigiParSec) ClassImp(HRpcDigiParCol) ClassImp(HRpcDigiParCell) void HRpcDigiParCell::setDefaults(Int_t f) { vprop = 0.0; S_x = 0.0; S_time = 0.0; V_th = 0.0; eff = 0.0; } void HRpcDigiParCell::clear() { vprop = -999; S_x = -999; S_time = -999; V_th = -999; eff = -999; } HRpcDigiParCol::HRpcDigiParCol(Int_t s, Int_t co) { // Constructor creates an array of pointers of type HRpcDigiParCell. HRpcDetector* det=(HRpcDetector*)(gHades->getSetup()->getDetector("Rpc")); Int_t ce = det->getMaxCells(); // if (det->getModule(s,m)) { array = new TObjArray(ce); for(Int_t i=0 ; iAddAt(new HRpcDigiParCell(),i); // } else array = new TObjArray(0); } HRpcDigiParCol::~HRpcDigiParCol(void) { // Destructor. if(array) { array->Delete(); delete array; } } HRpcDigiParSec::HRpcDigiParSec(Int_t s, Int_t co) { // Constructor creates an array of pointers of type HRpcDigiParCell. array = new TObjArray(co); for(Int_t i=0 ; iAddAt(new HRpcDigiParCol(s,i),i); } HRpcDigiParSec::~HRpcDigiParSec(void) { // Destructor. array->Delete(); delete array; } HRpcDigiPar::HRpcDigiPar(const Char_t* name,const Char_t* title, const Char_t* context) : HParSet(name,title,context) { // Constructor creates an array of pointers of type HRpcDigiParSec. // The container name is set to "RpcDigiPar". strcpy(detName,"Rpc"); HRpcDetector* det=(HRpcDetector*)(gHades->getSetup()->getDetector("Rpc")); Int_t s = det->getMaxSectors(); Int_t co = det->getMaxColumns(); array = new TObjArray(s); for (Int_t i=0; iAddAt(new HRpcDigiParSec(i,co),i); } HRpcDigiPar::~HRpcDigiPar(void) { // Destructor. array->Delete(); delete array; } Bool_t HRpcDigiPar::init(HParIo* inp,Int_t* set) { // Intitializes the container from an input. // If input not available, default initialization. HDetParIo* input=inp->getDetParIo("HRpcParIo"); if (input) return (input->init(this,set)); return kFALSE; } Int_t HRpcDigiPar::write(HParIo* output) { // Writes the container to an output. HDetParIo* out=output->getDetParIo("HRpcParIo"); if (out) return out->write(this); return -1; } void HRpcDigiPar::clear() { // Calls method setDefaults(Int_t m) for all HRpcDigiParCell objects // in the detector. for(Int_t i0=0;i0