CPadChamber.h
//-----------------------------------------------------------------------------
// $Header: /cool/project/RCS/CPadChamber.h,v 2.3 1997/02/10 15:51:17 lenkeit Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declarations for CPadChamber class.
//
//-----------------------------------------------------------------------------
#ifndef CPADCHAMBER_H
#define CPADCHAMBER_H
#include "cool.h"
#include "CRichLikeDetector.h"
#include "CDrawable.h"
#include "CPadChamberSetup.h"
#define C_SETUPFILE_PADCHAMBER "setup.padchamber"
#define C_MODULEMAP_PADCHAMBER "padchamber_modules.map"
#define C_HUFFMAN_TABLE_PADCHAMBER "padchamber_huffman.table"
class CPadChamber : public CRichLikeDetector , public CDrawable {
public:
CPadChamber(const char* = 0);
~CPadChamber();
public:
//
// The following are CPadChamber specific member functions
//
virtual CBoolean makeClustersAndDoCleanup(); // perform complete cleanup
virtual CBoolean removeClusters();
//
// The following member functions are needed in order
// to allow drawing. They are declared pure virtual in
// the CDrawable base class.
//
virtual void draw(const char*);
CBoolean rotateHits(CAngle);
float getLeft() const;
float getRight() const;
float getBottom() const;
float getTop() const;
const CString& getName() const { return name; }
void makeDigiHits(CMCServer&);
void transform(CPadCPadCoord&, const CLabXYZCoord&) const; // see CCoordinate.h
void transform(CLabXYZCoord&, const CPadCPadCoord&) const; // see CCoordinate.h
void transform(CPadCPadCoord&, const CLabCylinderCoord&) const; // see CCoordinate.h
void transform(CLabCylinderCoord&, const CPadCPadCoord&) const; // see CCoordinate.h
public:
inline CPadChamberSetup* getSetup() const { return setup; }
protected:
virtual CBoolean isGoodCluster(CRichLikeCluster&);
void markSensitiveArea();
CPadChamber(const CPadChamber &);
CPadChamber & operator = (const CPadChamber &);
protected:
CPadChamberSetup *setup;
};
#endif /* CPADCHAMBER_H */