Project
Loading...
Searching...
No Matches
CellLabel.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
13
15#include "fairlogger/Logger.h"
16#include <cstddef>
17#include <cstdint>
18#include <gsl/span>
19#include <vector>
20#include <utility>
21
22using namespace o2::emcal;
23
24CellLabel::CellLabel(std::vector<int> labels, std::vector<float> amplitudeFractions) : mLabels(std::move(labels)), mAmplitudeFraction(std::move(amplitudeFractions))
25{
26 if (labels.size() != amplitudeFractions.size()) {
27 LOG(error) << "Size of labels " << labels.size() << " does not match size of amplitude fraction " << amplitudeFractions.size() << " !";
28 }
29}
30
31CellLabel::CellLabel(gsl::span<const int> labels, gsl::span<const float> amplitudeFractions) : mLabels(labels.begin(), labels.end()), mAmplitudeFraction(amplitudeFractions.begin(), amplitudeFractions.end())
32{
33 if (labels.size() != amplitudeFractions.size()) {
34 LOG(error) << "Size of labels " << labels.size() << " does not match size of amplitude fraction " << amplitudeFractions.size() << " !";
35 }
36}
37
39{
40 size_t maxIndex = 0;
41 float maxFraction = mAmplitudeFraction[0];
42
43 for (size_t i = 1; i < mAmplitudeFraction.size(); ++i) {
44 if (mAmplitudeFraction[i] > maxFraction) {
45 maxFraction = mAmplitudeFraction[i];
46 maxIndex = i;
47 }
48 }
49 return mLabels[maxIndex];
50}
int32_t i
int32_t GetLeadingMCLabel() const
Getter for label with leading amplitude fraction.
Definition CellLabel.cxx:38
CellLabel(std::vector< int > labels, std::vector< float > amplitudeFractions)
Constructor using std::vector by moving NOT copying.
Definition CellLabel.cxx:24
std::vector< int32_t > mLabels
List of MC particles that generated the cluster, ordered in deposited energy.
Definition CellLabel.h:74
std::vector< float > mAmplitudeFraction
List of the fraction of the cell energy coming from a MC particle. Index aligns with mLabels!
Definition CellLabel.h:75
GLuint GLuint end
Definition glcorearb.h:469
Defining DataPointCompositeObject explicitly as copiable.
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"