Project
Loading...
Searching...
No Matches
FastMultEstConfig.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
15
16#ifndef ALICEO2_ITS_FASTMULTESTCONF_H_
17#define ALICEO2_ITS_FASTMULTESTCONF_H_
18
22
23namespace o2
24{
25namespace its
26{
27struct FastMultEstConfig : public o2::conf::ConfigurableParamHelper<FastMultEstConfig> {
28 static constexpr int NLayers = 7; // FIXME
29
31 float accCorr[NLayers] = {1.f, 0.895, 0.825, 0.803, 0.720, 0.962, 0.911};
32 int firstLayer = 3;
33 int lastLayer = 6;
34 float imposeNoisePerChip = 1.e-7 * 1024 * 512; // assumed noise, free parameter if<0
35
36 // cuts to reject to low or too high mult events
37 float cutMultClusLow = 0;
38 float cutMultClusHigh = -1;
39 float cutMultVtxLow = -1;
40 float cutMultVtxHigh = -1;
41 float cutRandomFraction = -1.;
42 int randomSeed = 0;
43 bool preferTriggered = true;
44
45 bool isMultCutRequested() const { return cutMultClusLow >= 0.f && cutMultClusHigh > 0.f; };
46 bool isVtxMultCutRequested() const { return cutMultVtxLow >= 0.f && cutMultVtxHigh > 0.f; };
48 bool isPassingMultCut(float mult) const { return mult >= cutMultClusLow && (mult <= cutMultClusHigh || cutMultClusHigh <= 0.f); }
49 bool isPassingVtxMultCut(int mult) const { return mult >= cutMultVtxLow && (mult <= cutMultVtxHigh || cutMultVtxHigh <= 0.f); }
50
51 O2ParamDef(FastMultEstConfig, "fastMultConfig");
52};
53
54} // namespace its
55} // namespace o2
56
57#endif
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
float accCorr[NLayers]
acceptance correction per layer (cluster / track)
bool isPassingMultCut(float mult) const
float cutMultClusHigh
reject ROF with estimated cluster mult. below this value (no cut if <0)
float cutRandomFraction
reject seed vertex if its multiplicity above this value (no cut if <0)
int randomSeed
apply random cut rejecting requested fraction
float imposeNoisePerChip
last layer to account
O2ParamDef(FastMultEstConfig, "fastMultConfig")
int lastLayer
1st layer to account
bool isMultCutRequested() const
prefer ROFs with highest number of physics triggers
float cutMultVtxLow
reject ROF with estimated cluster mult. above this value (no cut if <0)
bool preferTriggered
0 - do not seet seed, >0 : set as is, <0 : use current time
bool isPassingVtxMultCut(int mult) const
float cutMultVtxHigh
reject seed vertex if its multiplicity below this value (no cut if <0)
bool isPassingRandomRejection() const
static constexpr int NLayers