20 :
radius(0), theMaxMean(-1.), theMaxRMS(-1.), theMeanSum(0.), theRMSSum(0.) {
27 if (firstPoint.
mean() > secondPoint.
mean())
32 if (firstPoint.
rms() > secondPoint.
rms())
48 theMaxMean(singlePoint.
mean()),
49 theMaxRMS(singlePoint.
rms()),
50 theMeanSum(singlePoint.
mean()),
51 theRMSSum(singlePoint.
rms()) {
66 LogTrace(
"DTDQM|DTMonitorClient|DTOccupancyTest|DTOccupancyCluster")
67 <<
" Add a point to the cluster: mean: " << anotherPoint.
mean() <<
" rms: " << anotherPoint.
rms() << endl;
69 LogTrace(
"DTDQM|DTMonitorClient|DTOccupancyTest|DTOccupancyCluster") <<
" point is valid" << endl;
90 double dist = 99999999;
94 if (distance < dist) {
116 int fillColor)
const {
117 TH2F*
histo =
new TH2F(histoName.c_str(), histoName.c_str(), nBinsX, minX, maxX, nBinsY, minY, maxY);
118 histo->SetFillColor(fillColor);
120 histo->Fill((*pt).mean(), (*pt).rms());
140 minrms = anotherPoint.
rms();
154 double radius_squared = 0;
155 for (vector<DTOccupancyPoint>::const_iterator pt_i =
thePoints.begin(); pt_i !=
thePoints.end(); ++pt_i) {
156 for (vector<DTOccupancyPoint>::const_iterator pt_j =
thePoints.begin(); pt_j !=
thePoints.end(); ++pt_j) {
157 radius_squared += TMath::Power(pt_i->distance(*pt_j), 2);
160 radius_squared = radius_squared / (2 * TMath::Power(
thePoints.size() + 1, 2));
169 ret.insert((*point).layerId());
bool isValid() const
Check if the cluster candidate satisfies the quality requirements.
tuple ret
prodAgent to be discontinued
double mean() const
average cell occupancy in the layer
DTOccupancyCluster(const DTOccupancyPoint &firstPoint, const DTOccupancyPoint &secondPoint)
Constructor.
double deltaMean(const DTOccupancyPoint &anotherPoint) const
TH2F * getHisto(std::string histoName, int nBinsX, double minX, double maxX, int nBinsY, double minY, double maxY, int fillColor) const
get a TH2F displaying the cluster
double computeAverageRMS(const DTOccupancyPoint &onePoint, const DTOccupancyPoint &anotherPoint)
double maxMean() const
max average cell occupancy of the layers in the cluster
double deltaRMS(const DTOccupancyPoint &anotherPoint) const
double averageRMS() const
average RMS of the cell occpuancy distributions of the layers in the cluster
double rms() const
RMS of the distribution of the cell occupancies in the layer.
double computeMinRMS(const DTOccupancyPoint &onePoint, const DTOccupancyPoint &anotherPoint)
double maxRMS() const
max RMS of the cell occpuancy distributions of the layers in the cluster
std::vector< DTOccupancyPoint > thePoints
bool addPoint(const DTOccupancyPoint &anotherPoint)
double averageMean() const
average cell occupancy of the layers in the cluster
int nPoints() const
of layers belonging to the cluster
virtual ~DTOccupancyCluster()
Destructor.
double distance(const DTOccupancyPoint &anotherPoint) const
distance from another point in the 2D plane
std::set< DTLayerId > getLayerIDs() const
bool clusterIsLessThan(const DTOccupancyCluster &clusterOne, const DTOccupancyCluster &clusterTwo)
for DTOccupancyCluster sorting
double distance(const DTOccupancyPoint &point) const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
bool qualityCriterion(const DTOccupancyPoint &firstPoint, const DTOccupancyPoint &secondPoint)