CRichLikeSetup.h
//-----------------------------------------------------------------------------
// $Header: /cool/project/RCS/CRichLikeSetup.h,v 3.2 1997/02/10 18:42:21 lenkeit Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declarations for CRichLikeSetup class.
//
//-----------------------------------------------------------------------------
#ifndef CRICHLIKESETUP_H
#define CRICHLIKESETUP_H
#include <iostream.h>
#include "cool.h"
#include "CDetectorSetup.h"
class CRichLikeSetup : public CDetectorSetup {
public:
CRichLikeSetup();
public:
void read(const char*);
void list(ostream& ost = cout);
void _read(const char*);
void _list(ostream& ost = cout);
public:
inline int getSigmaLabel() const { return sigmaLabel; }
inline int getXYLookupLabel() const { return xyLookupLabel; }
inline int getHuffmanLabel() const { return huffmanLabel; }
inline int getNPads() const { return nPads; }
inline int getMaxPadsPerChain() const { return maxPadsPerChain; }
inline int getMaxLookupPerChain() const { return maxLookupPerChain; }
inline int getMaxUsedChains() const { return maxUsedChains; }
inline double getPadSize() const { return padSize; }
inline double getMinPadAmplitude() const { return minPadAmplitude; }
inline double getNSigmaCut() const { return nSigmaCut; }
inline double getInnerAcceptance() const { return innerAcceptance; }
inline double getOuterAcceptance() const { return outerAcceptance; }
inline float getHitMinCenterPadPercentage() const { return hitMinCenterPadPercentage; }
inline void setMinPadAmplitude(double min) { minPadAmplitude = min; }
inline void setNSigmaCut(double cut) { nSigmaCut = cut; }
inline void setHitMinCenterPadPercentage(float newVal) { hitMinCenterPadPercentage = newVal; }
public:
inline double getElectronsPerADC() const { return electronsPerADC; }
inline int getMCHitLabel() const { return mcHitLabel; }
inline double getMCMeanAmplitude() const { return mcMeanAmplitude; }
inline CBoolean getMCUseGainMap() const { return mcUseGainMap; }
inline CBoolean getMCUseRealNoise() const { return mcUseRealNoise; }
inline CBoolean getMCUseSimpleNoise() const { return mcUseSimpleNoise; }
inline double getMCMeanSigma() const { return mcMeanSigma; }
inline double getMCHitWidth() const { return mcHitWidth; } // in pads
inline double getMCNoiseFactor() const { return mcNoiseFactor; }
inline double getMCPedestalShift() const { return mcPedestalShift; }
inline double getMCHitAberration() const { return mcHitAberration; } // (diffusion, chromatics...)
inline double getMCHitDiffusion() const { return mcHitDiffusion; } // (diffusion, chromatics...)
inline void setElectronsPerADC (double ele ) { electronsPerADC = ele; }
inline void setMCMeanAmplitude (double amp ) { mcMeanAmplitude = amp; }
inline void setMCUseGainMap (CBoolean ugm ) { mcUseGainMap = ugm; }
inline void setMCUseRealNoise (CBoolean urn ) { mcUseRealNoise = urn; }
inline void setMCUseSimpleNoise(CBoolean usn ) { mcUseSimpleNoise = usn; }
inline void setMCMeanSigma (double sig ) { mcMeanSigma = sig; }
inline void setMCHitWidth (double hw ) { mcHitWidth = hw ; } // in pads
inline void setMCNoiseFactor (double nf ) { mcNoiseFactor = nf ; }
inline void setMCPedestalShift (double ps ) { mcPedestalShift = ps ; }
inline void setMCHitAberration (double ha ) { mcHitAberration = ha ; } // (diffusion, chromatics...)
inline void setMCHitDiffusion (double hd ) { mcHitDiffusion = hd ; } // (diffusion, chromatics...)
protected:
double padSize; // in cm
int xyLookupLabel;
int huffmanLabel;
int sigmaLabel;
int nPads;
int maxPadsPerChain;
int maxLookupPerChain;
int maxUsedChains;
double minPadAmplitude;
double nSigmaCut;
double electronsPerADC;
int mcHitLabel;
double mcMeanAmplitude;
CBoolean mcUseGainMap;
CBoolean mcUseRealNoise;
CBoolean mcUseSimpleNoise;
double mcMeanSigma;
double mcHitWidth; // in pads
double mcNoiseFactor;
double mcPedestalShift;
double mcHitAberration;
double mcHitDiffusion;
double innerAcceptance; // in pad units (used for drawing only)
double outerAcceptance;
float hitMinCenterPadPercentage;
};
#endif /* CRICHLIKESETUP_H */