The Gaudi Framework  master (bef125d4)
Loading...
Searching...
No Matches
NTupleWriterImpls.cpp
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 2024-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11#include <Gaudi/NTuple/Writer.h>
12#include <numeric>
13#include <tuple>
14
16 struct NTupleSimpleWriter_V : Gaudi::NTuple::SimpleWriter<std::tuple<int, size_t, float>( const std::vector<int>& )> {
17 NTupleSimpleWriter_V( const std::string& name, ISvcLocator* svcLoc )
18 : SimpleWriter( name, svcLoc, { KeyValue( "InputLocation", { "MyVector" } ) } ) {}
19
20 void operator()( std::vector<int> const& vector ) const override {
21 for ( size_t index = 0; auto& v : vector ) { fillTree( { v, index++, std::rand() % 20 } ); }
22 }
23 };
24
25 DECLARE_COMPONENT( NTupleSimpleWriter_V )
26
27 struct NTupleWriter_V : Gaudi::NTuple::Writer<std::tuple<int, size_t, float>( const std::vector<int>& )> {
28 NTupleWriter_V( const std::string& name, ISvcLocator* svcLoc )
29 : Writer( name, svcLoc, { KeyValue( "InputLocation", { "MyVector" } ) } ) {}
30
31 std::tuple<int, size_t, float> transform( const std::vector<int>& vector ) const override {
32 return std::make_tuple( std::accumulate( vector.begin(), vector.end(), 0 ), vector.size(), std::rand() % 20 );
33 }
34 };
35
36 DECLARE_COMPONENT( NTupleWriter_V )
37
38} // namespace Gaudi::TestSuite::NTuple
#define DECLARE_COMPONENT(type)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition ISvcLocator.h:42
STL class.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition __init__.py:1
NTuple name space.
Definition INTupleSvc.h:16
STL namespace.
Base template for NTuple::Writer.
Definition Writer.h:129
NTupleSimpleWriter_V(const std::string &name, ISvcLocator *svcLoc)
void operator()(std::vector< int > const &vector) const override
std::tuple< int, size_t, float > transform(const std::vector< int > &vector) const override
NTupleWriter_V(const std::string &name, ISvcLocator *svcLoc)