Project
Loading...
Searching...
No Matches
FastMultEst.h
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
12#ifndef ALICEO2_ITS3_FASTMULTEST_
13#define ALICEO2_ITS3_FASTMULTEST_
14
17#include "DataFormatsITS3/CompCluster.h"
20#include <gsl/span>
21#include <array>
22
23namespace o2
24{
25namespace its3
26{
27
29
31
32 float mult = 0.;
33 float noisePerChip = 0.;
34 float cov[3] = {0.};
35 float chi2 = 0.;
36 int nLayersUsed = 0;
37 uint32_t lastRandomSeed = 0;
38
39 std::array<int, NLayers> nClPerLayer{0}; // measured N Cl per layer selectROFs
41
42 static uint32_t getCurrentRandomSeed();
43 int selectROFs(const gsl::span<const o2::itsmft::ROFRecord> rofs, const gsl::span<const o2::itsmft::CompClusterExt> clus,
44 const gsl::span<const o2::itsmft::PhysTrigger> trig, std::vector<bool>& sel);
45
46 void fillNClPerLayer(const gsl::span<const o2::itsmft::CompClusterExt>& clusters);
47 float process(const std::array<int, NLayers> ncl)
48 {
50 }
51 float processNoiseFree(const std::array<int, NLayers> ncl);
52 float processNoiseImposed(const std::array<int, NLayers> ncl);
53 float process(const gsl::span<const o2::itsmft::CompClusterExt>& clusters)
54 {
56 return process(nClPerLayer);
57 }
58 static bool sSeedSet;
59
61};
62
63} // namespace its3
64} // namespace o2
65
66#endif
Definition of the ITSMFT ROFrame (trigger) record.
Definition Physics trigger record extracted from the ITS/MFT stream.
Configuration parameters for ITS fast multiplicity estimator.
static constexpr int NLayers
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
float noisePerChip
estimated signal clusters multipliciy at reference (1st?) layer
Definition FastMultEst.h:33
void fillNClPerLayer(const gsl::span< const o2::itsmft::CompClusterExt > &clusters)
static uint32_t getCurrentRandomSeed()
float process(const gsl::span< const o2::itsmft::CompClusterExt > &clusters)
Definition FastMultEst.h:53
float cov[3]
estimated or imposed noise per chip
Definition FastMultEst.h:34
int selectROFs(const gsl::span< const o2::itsmft::ROFRecord > rofs, const gsl::span< const o2::itsmft::CompClusterExt > clus, const gsl::span< const o2::itsmft::PhysTrigger > trig, std::vector< bool > &sel)
float processNoiseFree(const std::array< int, NLayers > ncl)
float processNoiseImposed(const std::array< int, NLayers > ncl)
ClassDefNV(FastMultEst, 1)
static constexpr int NLayers
Definition FastMultEst.h:30
float chi2
covariance matrix of estimation
Definition FastMultEst.h:35
uint32_t lastRandomSeed
number of layers actually used
Definition FastMultEst.h:37
std::array< int, NLayers > nClPerLayer
state of the gRandom before
Definition FastMultEst.h:39
float process(const std::array< int, NLayers > ncl)
Definition FastMultEst.h:47
float imposeNoisePerChip
last layer to account
std::vector< Cluster > clusters