CRichLikeCluster.h
//-----------------------------------------------------------------------------
// $Header: /asis/offline/ceres/cool/project/RCS/CRichLikeCluster.h,v 3.0 1996/10/02 09:40:38 voigt Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Implementation of CRichLikeCluster class.
//
//-----------------------------------------------------------------------------
#ifndef CRICHLIKECLUSTER_H
#define CRICHLIKECLUSTER_H
#include <iostream.h>
#include "cool.h"
#include "CCollection.h"
#include "CPad.h"
class CRichLikeCluster {
public:
CRichLikeCluster (); // default constructor
public:
inline CBoolean operator== (const CRichLikeCluster & ) const;
public:
inline int getNPads() const { return npads; }
inline int getNLocMax() const { return nlocMax; }
inline int getFirstPad() const { return firstPad; }
inline float getMinAmpLocMax() const { return minAmpLocMax; }
inline float getAmpSum() const { return ampSum; }
inline float getAmp2Sum() const { return amp2Sum; }
inline float getRms2() const { return rms2; }
inline void incrNLocMax() { nlocMax++; }
inline void incrNPads() { npads++; }
inline void setFirstPad(int index) { firstPad=index; }
inline void setNPads(int newNPads) { npads=newNPads; }
inline void updateAmp(float newamp) { ampSum += newamp; amp2Sum += newamp*newamp; }
inline float rms2Calc() { return (rms2 = amp2Sum/npads - (ampSum*ampSum/npads/npads)); }
inline void setMinAmpLocMax(float newLocMax) { minAmpLocMax = newLocMax; }
virtual int split(RWTPtrOrderedVector<CRichLikeCluster>&, CCollection<CPad>&, int );
virtual void dump(const CCollection<CPad>&, ostream& = cout);
private:
int npads; // number of associated pads
int firstPad; // index of first cluster pad in sorted CCollection<pads>
int nlocMax; // number of local maxima
float minAmpLocMax; // lowest amplitude of all associated local maxima
float ampSum; // sum of all pad amplitudes
float amp2Sum; // sum of squares of all pad amplitudes
float rms2; // square rms of pad amplitudes
};
CBoolean CRichLikeCluster::operator== (const CRichLikeCluster& cluster) const
{
return ( npads == cluster.npads && firstPad == cluster.firstPad &&
nlocMax == cluster.nlocMax && minAmpLocMax == cluster.minAmpLocMax &&
ampSum == cluster.ampSum && rms2 == cluster.rms2 );
}
#endif /* CRICHLIKECLUSTER_H */