using namespace std;
#include "hdetpario.h"
#include "hdetparasciifileio.h"
#include "hparhadasciifileio.h"
#include "hrichcorrelatorpar.h"
#include "hparamlist.h"
#include <fstream>
#include <iostream>
#include <iomanip>
#include <string.h>
ClassImp(HRichCorrelatorPar)
//----------------------------------------------------------------------------
HRichCorrelatorPar::HRichCorrelatorPar(const char* name,const char* title,
const char* context)
: HParCond(name,title,context) {
strcpy(detName,"Rich");
clear();
}
//============================================================================
//----------------------------------------------------------------------------
HRichCorrelatorPar::~HRichCorrelatorPar(){
clear();
}
//============================================================================
//----------------------------------------------------------------------------
void HRichCorrelatorPar::clear() {
kShowerCond= kFALSE;// =1 if we ask for a shower in the PreShower det.
kIsNoCutOnTOFtof= kFALSE;
kIsNoCutOnTOFINOtof= kFALSE;
kNoSectorSelected= kFALSE;
kSwitchOffRich= kFALSE;
kRingQualityCut= kFALSE;
kTofinoMultCut= kFALSE;
kMagnet= kFALSE;
fRichMdcThetaCut= 0.;
fRichMdcThetaMinCut= 0.;
fRichMdcThetaMaxCut= 0.;
fRichTofThetaCut= 0.;
fRichTofThetaMinCut= 0.;
fRichTofThetaMaxCut= 0.;//!
fRichShowerThetaCut= 0.;
fRichShowerThetaMinCut= 0.;//!
fRichShowerThetaMaxCut= 0.;//!
fMdcTofThetaCut= 0.;
fMdcTofThetaMinCut= 0.;
fMdcTofThetaMaxCut= 0.;
fMdcShowerThetaCut= 0.;
fMdcShowerThetaMinCut= 0.;
fMdcShowerThetaMaxCut= 0.;
fTofTofMinCut= 0.;
fTofinoTofMinCut= 0.;
fTofTofMaxCut= 0.;
fTofinoTofMaxCut= 0.;
fShowerAmplification= 0.;
fRichMdcPhiCut= 0.;
fRichTofPhiCut= 0.;
fRichShowerPhiCut= 0.;
fMdcTofPhiCut= 0.;
fMdcShowerPhiCut= 0.;
nTofinoMultCut= 0;
fMdcThetaCorrection= 0.;
nPatMatCut = 0;
nHouTraCut = 0;
nPadNrCut = 0;
nRingAmplCut = 0;
nLocMax4Cut = 0;
}
//============================================================================
Bool_t HRichCorrelatorPar::init(HParIo* inp,Int_t* set) {
// initializes the container from an input using the RICH interface class
HDetParIo* input=inp->getDetParIo("HRichParIo");
if (input) return (input->init(this,set));
return kFALSE;
}
//============================================================================
//----------------------------------------------------------------------------
Int_t HRichCorrelatorPar::write(HParIo* output) {
// writes the container to an output using the RICH interface class
HDetParIo* out=output->getDetParIo("HRichParIo");
if (out) return out->write(this);
return kFALSE;
}
//============================================================================
//----------------------------------------------------------------------------
Bool_t HRichCorrelatorPar::readAscii(HDetParAsciiFileIo* io) {
return io->readCond(this);
}
//============================================================================
//----------------------------------------------------------------------------
Int_t HRichCorrelatorPar::writeAscii(HDetParAsciiFileIo* io) {
return io->writeCond(this);
}
//============================================================================
//----------------------------------------------------------------------------
Bool_t HRichCorrelatorPar::initAscii(HParHadAsciiFileIo* pHadAsciiFile) {
using namespace HadAsciiAuxiliaryFunctions;
if (!pHadAsciiFile) return kFALSE;
Bool_t status = kTRUE;
try {
HAsciiKey &mydata = *pHadAsciiFile->GetKeyAscii();
mydata.SetActiveSection("Correlator Switches");
kShowerCond = mydata.ReadInt("Shower Condition");
kIsNoCutOnTOFtof = mydata.ReadInt("No TofTOF cut");
kIsNoCutOnTOFINOtof = mydata.ReadInt("No TofinoTOF cut");
kNoSectorSelected = mydata.ReadInt("All Sectors correlated");
nSelectedSector = mydata.ReadInt("Selected Sector");
kSwitchOffRich = mydata.ReadInt("No Rich correlated");
kRingQualityCut = mydata.ReadInt("Ring Quality cuts");
kTofinoMultCut = mydata.ReadInt("Tofino Multiplicity cuts");
kMagnet = mydata.ReadInt("Magnet On");
mydata.SetActiveSection("Theta Cuts between Detectors (asymmetric)");
fRichMdcThetaCut = mydata.ReadFloat("DTheta RICH MDC");
fRichMdcThetaMinCut = mydata.ReadFloat("DThetaMin RICH MDC");
fRichMdcThetaMaxCut = mydata.ReadFloat("DThetaMax RICH MDC");
fRichTofThetaCut = mydata.ReadFloat("DTheta RICH TOF");
fRichTofThetaMinCut = mydata.ReadFloat("DThetaMin RICH TOF");
fRichTofThetaMaxCut = mydata.ReadFloat("DThetaMax RICH TOF");
fRichShowerThetaCut = mydata.ReadFloat("DTheta RICH SHOWER");
fRichShowerThetaMinCut = mydata.ReadFloat("DThetaMin RICH SHOWER");
fRichShowerThetaMaxCut = mydata.ReadFloat("DThetaMax RICH SHOWER");
fMdcTofThetaCut = mydata.ReadFloat("DTheta MDC TOF");
fMdcTofThetaMinCut = mydata.ReadFloat("DThetaMin MDC TOF");
fMdcTofThetaMaxCut = mydata.ReadFloat("DThetaMax MDC TOF");
fMdcShowerThetaCut = mydata.ReadFloat("DTheta MDC SHOWER");
fMdcShowerThetaMinCut = mydata.ReadFloat("DThetaMin MDC SHOWER");
fMdcShowerThetaMaxCut = mydata.ReadFloat("DThetaMax MDC SHOWER");
mydata.SetActiveSection("Phi Cuts between Detectors");
fRichMdcPhiCut = mydata.ReadFloat("DPhi RICH MDC");
fRichTofPhiCut = mydata.ReadFloat("DPhi RICH TOF");
fRichShowerPhiCut = mydata.ReadFloat("DPhi RICH SHOWER");
fMdcTofPhiCut = mydata.ReadFloat("DPhi MDC TOF");
fMdcShowerPhiCut = mydata.ReadFloat("DPhi MDC SHOWER");
mydata.SetActiveSection("TOF Cuts");
fTofTofMinCut = mydata.ReadFloat("Mininum T.O.F. in Tof");
fTofinoTofMinCut = mydata.ReadFloat("Minimum T.O.F. in Tofino");
fTofTofMaxCut = mydata.ReadFloat("Maximum T.O.F. in Tof");
fTofinoTofMaxCut = mydata.ReadFloat("Maximum T.O.F. in Tofino");
mydata.SetActiveSection("Miscellanea");
fShowerAmplification = mydata.ReadFloat("Shower Amplification Factor");
nTofinoMultCut = mydata.ReadInt("Tofino Multiplicity Cut");
fMdcThetaCorrection = mydata.ReadFloat("MDC Theta correction factor");
mydata.SetActiveSection("Ring Quality Cuts");
nPatMatCut = mydata.ReadInt("Minimal Pattern Matrix Quality");
nHouTraCut = mydata.ReadInt("Minimal Hough Trasformation Quality");
nPadNrCut = mydata.ReadInt("Minimal PadNr per Ring");
nRingAmplCut = mydata.ReadInt("Minimal Ring Charge Amplitude");
nLocMax4Cut = mydata.ReadInt("Minimal Ring Local Maxima");
}
// eof try block
catch (Bool_t ret) {
status = ret;
}
catch (...) {
status = kFALSE;
ErrorMsg(2,"HRichCorrelatorPar::initAscii",1,"Unidentified exception catched.");
}
if (status)
ErrorMsg(0,"HRichCorrelatorPar::initAscii",
1,"Container 'RichCorrelatorParameters' has been read from ASCII file.");
return status;
}
//============================================================================
//----------------------------------------------------------------------------
void HRichCorrelatorPar::printParam(){
cout<<"***************************************************************************"<<endl;
cout<<"*** HRichCorrelatorPar ****************************************************"<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** Shower Condition = "<<kShowerCond<<endl;
cout<<"*** No TofTOF cut = "<<kIsNoCutOnTOFtof<<endl;
cout<<"*** No TofinoTOF cut = "<<kIsNoCutOnTOFINOtof<<endl;
cout<<"*** All Sectors correlated = "<<kNoSectorSelected<<endl;
cout<<"*** Selected Sector = "<<nSelectedSector<<endl;
cout<<"*** No Rich correlated = "<<kSwitchOffRich<<endl;
cout<<"*** Ring Quality cuts = "<<kRingQualityCut<<endl;
cout<<"*** Tofino Multiplicity cuts = "<<kTofinoMultCut<<endl;
cout<<"*** Magnet On = "<<kMagnet<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** DTheta RICH MDC = "<<fRichMdcThetaCut<<endl;
cout<<"*** DThetaMin RICH MDC = "<<fRichMdcThetaMinCut<<endl;
cout<<"*** DThetaMax RICH MDC = "<<fRichMdcThetaMaxCut<<endl;
cout<<"*** DTheta RICH TOF = "<<fRichTofThetaCut<<endl;
cout<<"*** DThetaMin RICH TOF = "<<fRichTofThetaMinCut<<endl;
cout<<"*** DThetaMax RICH TOF = "<<fRichTofThetaMaxCut<<endl;
cout<<"*** DTheta RICH SHOWER = "<<fRichShowerThetaCut<<endl;
cout<<"*** DThetaMin RICH SHOWER = "<<fRichShowerThetaMinCut<<endl;
cout<<"*** DThetaMax RICH SHOWER = "<<fRichShowerThetaMaxCut<<endl;
cout<<"*** DTheta MDC TOF = "<<fMdcTofThetaCut<<endl;
cout<<"*** DThetaMin MDC TOF = "<<fMdcTofThetaMinCut<<endl;
cout<<"*** DThetaMax MDC TOF = "<<fMdcTofThetaMaxCut<<endl;
cout<<"*** DTheta MDC SHOWER = "<<fMdcShowerThetaCut<<endl;
cout<<"*** DThetaMin MDC SHOWER = "<<fMdcShowerThetaMinCut<<endl;
cout<<"*** DThetaMax MDC SHOWER = "<<fMdcShowerThetaMaxCut<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** DPhi RICH MDC = "<<fRichMdcPhiCut<<endl;
cout<<"*** DPhi RICH TOF = "<<fRichTofPhiCut<<endl;
cout<<"*** DPhi RICH SHOWER = "<<fRichShowerPhiCut<<endl;
cout<<"*** DPhi MDC TOF = "<<fMdcTofPhiCut<<endl;
cout<<"*** DPhi MDC SHOWER = "<<fMdcShowerPhiCut<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** Mininum T.O.F. in Tof = "<<fTofTofMinCut<<endl;
cout<<"*** Minimum T.O.F. in Tofino = "<<fTofinoTofMinCut<<endl;
cout<<"*** Maximum T.O.F. in Tof = "<<fTofTofMaxCut<<endl;
cout<<"*** Maximum T.O.F. in Tofino = "<<fTofinoTofMaxCut<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** Shower Amplification Factor = "<<fShowerAmplification<<endl;
cout<<"*** Tofino Multiplicity Cut = "<<nTofinoMultCut<<endl;
cout<<"*** MDC Theta correction factor = "<<fMdcThetaCorrection<<endl;
cout<<"***************************************************************************"<<endl;
cout<<"*** Minimal Pattern Matrix Quality = "<<nPatMatCut<<endl;
cout<<"*** Minimal Hough Trasformation Quality = "<<nHouTraCut<<endl;
cout<<"*** Minimal Pad Nr per Ring = "<<nPadNrCut<<endl;
cout<<"*** Minimal Ring Charge Amplitude = "<<nRingAmplCut<<endl;
cout<<"*** Minimal Ring Local Maxima = "<<nLocMax4Cut<<endl;
cout<<"***************************************************************************"<<endl;
}
//============================================================================
//----------------------------------------------------------------------------
Bool_t HRichCorrelatorPar::writeAscii(HParHadAsciiFileIo* pHadAsciiFile) {
using namespace HadAsciiAuxiliaryFunctions;
if (!pHadAsciiFile) return kFALSE;
Bool_t status = kTRUE;
try {
HAsciiKey &mydata = *pHadAsciiFile->GetKeyAscii();
mydata.WriteSection("Correlator Switches");
mydata.WriteLine("n");
mydata.WriteInt("Shower Condition",kShowerCond);
mydata.WriteInt("No TofTOF cut",kIsNoCutOnTOFtof);
mydata.WriteInt("No TofinoTOF cut",kIsNoCutOnTOFINOtof);
mydata.WriteInt("All Sectors correlated",kNoSectorSelected);
mydata.WriteInt("Selected Sector",nSelectedSector);
mydata.WriteInt("No Rich correlated",kSwitchOffRich);
mydata.WriteInt("Ring Quality cuts",kRingQualityCut);
mydata.WriteInt("Tofino Multiplicity cuts",kTofinoMultCut);
mydata.WriteInt("Magnet On",kMagnet);
mydata.WriteLine("n");
mydata.WriteLine("n");
mydata.WriteSection("Theta Cuts between Detectors (asymmetric)");
mydata.WriteLine("n");
mydata.WriteFloat("DTheta RICH MDC",fRichMdcThetaCut);
mydata.WriteFloat("DThetaMin RICH MDC",fRichMdcThetaMinCut);
mydata.WriteFloat("DThetaMax RICH MDC",fRichMdcThetaMaxCut);
mydata.WriteFloat("DTheta RICH TOF",fRichTofThetaCut);
mydata.WriteFloat("DThetaMin RICH TOF",fRichTofThetaMinCut);
mydata.WriteFloat("DThetaMax RICH TOF",fRichTofThetaMaxCut);
mydata.WriteFloat("DTheta RICH SHOWER",fRichShowerThetaCut);
mydata.WriteFloat("DThetaMin RICH SHOWER",fRichShowerThetaMinCut);
mydata.WriteFloat("DThetaMax RICH SHOWER",fRichShowerThetaMaxCut);
mydata.WriteFloat("DTheta MDC TOF",fMdcTofThetaCut);
mydata.WriteFloat("DThetaMin MDC TOF",fMdcTofThetaMinCut);
mydata.WriteFloat("DThetaMax MDC TOF",fMdcTofThetaMaxCut);
mydata.WriteFloat("DTheta MDC SHOWER",fMdcShowerThetaCut);
mydata.WriteFloat("DThetaMin MDC SHOWER",fMdcShowerThetaMinCut);
mydata.WriteFloat("DThetaMax MDC SHOWER",fMdcShowerThetaMaxCut);
mydata.WriteLine("n");
mydata.WriteLine("n");
mydata.WriteSection("Phi Cuts between Detectors");
mydata.WriteLine("n");
mydata.WriteFloat("DPhi RICH MDC",fRichMdcPhiCut);
mydata.WriteFloat("DPhi RICH TOF",fRichTofPhiCut);
mydata.WriteFloat("DPhi RICH SHOWER",fRichShowerPhiCut);
mydata.WriteFloat("DPhi MDC TOF",fMdcTofPhiCut);
mydata.WriteFloat("DPhi MDC SHOWER",fMdcShowerPhiCut);
mydata.WriteLine("n");
mydata.WriteLine("n");
mydata.WriteSection("TOF Cuts");
mydata.WriteLine("n");
mydata.WriteFloat("Mininum T.O.F. in Tof",fTofTofMinCut);
mydata.WriteFloat("Minimum T.O.F. in Tofino",fTofinoTofMinCut);
mydata.WriteFloat("Maximum T.O.F. in Tof",fTofTofMaxCut);
mydata.WriteFloat("Maximum T.O.F. in Tofino",fTofinoTofMaxCut);
mydata.WriteLine("n");
mydata.WriteLine("n");
mydata.WriteSection("Miscellanea");
mydata.WriteLine("n");
mydata.WriteFloat("Shower Amplification Factor",fShowerAmplification);
mydata.WriteInt("Tofino Multiplicity Cut",nTofinoMultCut);
mydata.WriteFloat("MDC Theta correction factor",fMdcThetaCorrection);
mydata.WriteLine("n");
mydata.WriteLine("n");
mydata.WriteSection("Ring Quality Cuts");
mydata.WriteInt("Minimal Pattern Matrix Quality",nPatMatCut);
mydata.WriteInt("Minimal Hough Trasformation Quality",nHouTraCut);
mydata.WriteInt("Minimal PadNr per Ring",nPadNrCut);
mydata.WriteInt("Minimal Ring Charge Amplitude",nRingAmplCut);
mydata.WriteInt("Minimal Ring Local Maxima",nLocMax4Cut);
}
catch (Bool_t ret) {
status = ret;
}
catch (...) {
status = kFALSE;
ErrorMsg(1,"HRichCorrelatorPar::writeAscii",1,"Unidentified exception catched.");
}
if (status)
ErrorMsg(0,"HRichCorrelatorPar::writeAscii",
1,"Container 'RichCorrelatorParameters' has been written to ASCII file.");
return status;
}
//============================================================================
//----------------------------------------------------------------------------
void HRichCorrelatorPar::putParams(HParamList* l) {
if (!l) return;
l->add("kShowerCond",kShowerCond);
l->add("kIsNoCutOnTOFtof",kIsNoCutOnTOFtof);
l->add("kIsNoCutOnTOFINOtof",kIsNoCutOnTOFtof);
l->add("kNoSectorSelected",kNoSectorSelected);
l->add("kSwitchOffRich",kSwitchOffRich);
l->add("kRingQualityCut",kRingQualityCut);
l->add("kTofinoMultCut",kTofinoMultCut);
l->add("kMagnet",kMagnet);
l->add("fRichMdcThetaCut",fRichMdcThetaCut);
l->add("fRichMdcThetaMinCut",fRichMdcThetaMinCut);
l->add("fRichMdcThetaMaxCut",fRichMdcThetaMaxCut);
l->add("fRichTofThetaCut",fRichTofThetaCut);
l->add("fRichTofThetaMinCut",fRichTofThetaMinCut);
l->add("fRichTofThetaMaxCut",fRichTofThetaMaxCut);
l->add("fRichShowerThetaCut",fRichShowerThetaCut);
l->add("fRichShowerThetaMinCut",fRichShowerThetaMinCut);
l->add("fRichShowerThetaMaxCut",fRichShowerThetaMaxCut);
l->add("fMdcTofThetaCut",fMdcTofThetaCut);
l->add("fMdcTofThetaMinCut",fMdcTofThetaMinCut);
l->add("fMdcTofThetaMaxCut",fMdcTofThetaMaxCut);
l->add("fMdcShowerThetaCut",fMdcShowerThetaCut);
l->add("fMdcShowerThetaMinCut",fMdcShowerThetaMinCut);
l->add("fMdcShowerThetaMaxCut",fMdcShowerThetaMaxCut);
l->add("fTofTofMinCut",fTofTofMinCut);
l->add("fTofinoTofMinCut",fTofinoTofMinCut);
l->add("fTofTofMaxCut",fTofTofMaxCut);
l->add("fTofinoTofMaxCut",fTofinoTofMaxCut);
l->add("fShowerAmplification",fShowerAmplification);
l->add("fRichMdcPhiCut",fRichMdcPhiCut);
l->add("fRichTofPhiCut",fRichTofPhiCut);
l->add("fRichShowerPhiCut",fRichShowerPhiCut);
l->add("fMdcTofPhiCut",fMdcTofPhiCut);
l->add("fMdcShowerPhiCut",fMdcShowerPhiCut);
l->add("nTofinoMultCut",nTofinoMultCut);
l->add("fMdcThetaCorrection",fMdcThetaCorrection);
l->add("nPatMatCut",nPatMatCut);
l->add("nHouTraCut",nHouTraCut);
l->add("nPadNrCut",nPadNrCut);
l->add("nRingAmplCut",nRingAmplCut);
l->add("nLocMax4Cut",nLocMax4Cut);
l->add("nSelectedSector",nSelectedSector);
}
//============================================================================
//----------------------------------------------------------------------------
Bool_t HRichCorrelatorPar::getParams(HParamList* l) {
if (!l) return kFALSE;
if (!l->fill("kShowerCond",&kShowerCond)) return kFALSE;
if (!l->fill("kIsNoCutOnTOFtof",&kIsNoCutOnTOFtof)) return kFALSE;
if (!l->fill("kIsNoCutOnTOFINOtof",&kIsNoCutOnTOFtof)) return kFALSE;
if (!l->fill("kNoSectorSelected",&kNoSectorSelected)) return kFALSE;
if (!l->fill("kSwitchOffRich",&kSwitchOffRich)) return kFALSE;
if (!l->fill("kRingQualityCut",&kRingQualityCut)) return kFALSE;
if (!l->fill("kTofinoMultCut",&kTofinoMultCut)) return kFALSE;
if (!l->fill("kMagnet",&kMagnet)) return kFALSE;
if (!l->fill("fRichMdcThetaCut",&fRichMdcThetaCut)) return kFALSE;
if (!l->fill("fRichMdcThetaMinCut",&fRichMdcThetaMinCut)) return kFALSE;
if (!l->fill("fRichMdcThetaMaxCut",&fRichMdcThetaMaxCut)) return kFALSE;
if (!l->fill("fRichTofThetaCut",&fRichTofThetaCut)) return kFALSE;
if (!l->fill("fRichTofThetaMinCut",&fRichTofThetaMinCut)) return kFALSE;
if (!l->fill("fRichTofThetaMaxCut",&fRichTofThetaMaxCut)) return kFALSE;
if (!l->fill("fRichShowerThetaCut",&fRichShowerThetaCut)) return kFALSE;
if (!l->fill("fRichShowerThetaMinCut",&fRichShowerThetaMinCut)) return kFALSE;
if (!l->fill("fRichShowerThetaMaxCut",&fRichShowerThetaMaxCut)) return kFALSE;
if (!l->fill("fMdcTofThetaCut",&fMdcTofThetaCut)) return kFALSE;
if (!l->fill("fMdcTofThetaMinCut",&fMdcTofThetaMinCut)) return kFALSE;
if (!l->fill("fMdcTofThetaMaxCut",&fMdcTofThetaMaxCut)) return kFALSE;
if (!l->fill("fMdcShowerThetaCut",&fMdcShowerThetaCut)) return kFALSE;
if (!l->fill("fMdcShowerThetaMinCut",&fMdcShowerThetaMinCut)) return kFALSE;
if (!l->fill("fMdcShowerThetaMaxCut",&fMdcShowerThetaMaxCut)) return kFALSE;
if (!l->fill("fTofTofMinCut",&fTofTofMinCut)) return kFALSE;
if (!l->fill("fTofinoTofMinCut",&fTofinoTofMinCut)) return kFALSE;
if (!l->fill("fTofTofMaxCut",&fTofTofMaxCut)) return kFALSE;
if (!l->fill("fTofinoTofMaxCut",&fTofinoTofMaxCut)) return kFALSE;
if (!l->fill("fShowerAmplification",&fShowerAmplification)) return kFALSE;
if (!l->fill("fRichMdcPhiCut",&fRichMdcPhiCut)) return kFALSE;
if (!l->fill("fRichTofPhiCut",&fRichTofPhiCut)) return kFALSE;
if (!l->fill("fRichShowerPhiCut",&fRichShowerPhiCut)) return kFALSE;
if (!l->fill("fMdcTofPhiCut",&fMdcTofPhiCut)) return kFALSE;
if (!l->fill("fMdcShowerPhiCut",&fMdcShowerPhiCut)) return kFALSE;
if (!l->fill("nTofinoMultCut",&nTofinoMultCut)) return kFALSE;
if (!l->fill("fMdcThetaCorrection",&fMdcThetaCorrection)) return kFALSE;
if (!l->fill("nPatMatCut",&nPatMatCut)) return kFALSE;
if (!l->fill("nHouTraCut",&nHouTraCut)) return kFALSE;
if (!l->fill("nPadNrCut",&nPadNrCut)) return kFALSE;
if (!l->fill("nRingAmplCut",&nRingAmplCut)) return kFALSE;
if (!l->fill("nLocMax4Cut",&nLocMax4Cut)) return kFALSE;
if (!l->fill("nSelectedSector",&nSelectedSector)) return kFALSE;
return kTRUE;
}
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.