ATLAS Offline Software
Loading...
Searching...
No Matches
PixeldEdxTrackParticleThinning.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrackParticleThinning.h, (c) ATLAS Detector software
8
9/*
10 The low pT track thinning tool for the dE/dx calibration.
11*/
12
13#ifndef DERIVATIONFRAMEWORK_PIXELDEDXTRACKPARTICLETHINNING_H
14#define DERIVATIONFRAMEWORK_PIXELDEDXTRACKPARTICLETHINNING_H
15
24
25#include "GaudiKernel/ToolHandle.h"
26
27#include <string>
28#include <atomic>
29#include <vector>
30#include <mutex>
31
33
34namespace DerivationFramework {
35
36 class PixeldEdxTrackParticleThinning : public extends<ExpressionParserUser<AthAlgTool>, IThinningTool> {
37 public:
38 PixeldEdxTrackParticleThinning(const std::string& t, const std::string& n, const IInterface* p);
40 virtual StatusCode initialize() override;
41 virtual StatusCode finalize() override;
42 virtual StatusCode doThinning() const override;
43
44 private:
45
46 StringProperty m_selectionString {
47 this, "SelectionString", "", "track selections"};
48
49 //Counters and keys for xAOD::TrackParticle container
50
51 mutable std::atomic<unsigned int> m_ntot{0}, m_npass{0};
52
53 StringProperty m_streamName {
54 this, "StreamName", "", "Name of the stream being thinned" };
56 this, "InDetTrackParticlesKey", "InDetTrackParticles", "" };
58 this, "VertexContainerKey", "PrimaryVertices"};
59
60
61 DoubleProperty m_unprescalePtCut {
62 this, "UnprescalePtCut", 10.e3};
63 DoubleProperty m_globalScale {
64 this, "GlobalScale", 1.};
65 DoubleProperty m_d0SignifCut {
66 this, "d0SignifCut", 5.};
67 DoubleProperty m_z0Cut {
68 this, "z0Cut", 3.};
69 DoubleProperty m_etaCut {
70 this, "EtaCut", 2.};
71
72 std::vector<double> m_pTbins;
73 static const std::vector<double> m_preScales;
74
75 //logic
76 mutable std::vector<unsigned long long> m_counter ATLAS_THREAD_SAFE;
77 mutable std::vector<unsigned long long> m_counter_picked ATLAS_THREAD_SAFE;
78 mutable std::mutex m_mutex;
79
80 };
81}
82
83#endif // DERIVATIONFRAMEWORK_PIXELDEDXTRACKPARTICLETHINNING_H
HandleKey object for adding thinning to an object.
std::vector< unsigned long long > m_counter ATLAS_THREAD_SAFE
PixeldEdxTrackParticleThinning(const std::string &t, const std::string &n, const IInterface *p)
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainerKey
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_inDetParticlesKey
Property holding a SG store/key/clid from which a ReadHandle is made.
HandleKey object for adding thinning to an object.
THE reconstruction tool.