CMultDetector.h
//-----------------------------------------------------------------------------
// $Header: /tmp_mnt/asis/offline/ceres/cool/project/RCS/CMultDetector.h,v 2.1 1996/10/04 08:45:57 voigt Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declaration of class CMultDetector.
//
//-----------------------------------------------------------------------------
#ifndef CMULTDETECTOR_H
#define CMULTDETECTOR_H
#include "CDetector.h"
#define C_CALFILE_MD "multdetector.cal"
#define C_PEDFILE_MD "multdetector.ped"
const int MaxPaddles = 24;
const int MaxPaddleAmplitude = 4096;
const int MeanPaddlePedestal = 255; // fallback value
const int MeanPaddleMip = 37; // fallback value
const int SizeOfBADC = 22;
class CMultiplicity {
public:
CMultiplicity() {xmips = dxmips = 0; counts = realCounts = 0;}
public:
double xmips;
double dxmips;
double counts; // after pedestal subtraction
int realCounts;
};
class CPaddle {
public:
CPaddle()
{
ped = MeanPaddlePedestal;
mip = MeanPaddleMip;
xmip = 0;
amp = 0;
}
public:
int amp;
double ped;
double mip;
double xmip;
};
class CMultDetector : public CDetector {
public:
CMultDetector();
~CMultDetector();
public:
CBoolean unpack(CEventServer&);
float getMultiplicity() const { return multiplicity.xmips; }
const CPaddle& getPaddles(int i) const { return paddles[i]; }
void listSetup(ostream& = cout) const {}
private:
CPaddle paddles[MaxPaddles]; // multiplicity trigger paddles
CMultiplicity multiplicity; // current multiplicity
private:
CBoolean readCalibrationConstantsFromFile(const char*, const char*);
};
#endif /* CMULTDETECTOR_H */