8#include <gtest/gtest.h>
10#include <analysis/VariableManager/Manager.h>
12#include <analysis/dataobjects/Particle.h>
14#include <mdst/dataobjects/Track.h>
15#include <mdst/dataobjects/ECLCluster.h>
17#include "utilities/TestParticleFactory.h"
20using namespace Belle2::Variable;
25 class InclusiveVariablesTest :
public ::testing::Test {
32 StoreArray<ECLCluster> myECLClusters;
33 StoreArray<TrackFitResult> myTFRs;
34 StoreArray<Track> myTracks;
35 StoreArray<Particle> myParticles;
42 TestUtilities::TestParticleFactory factory;
43 ROOT::Math::XYZVector ipposition(0, 0, 0);
44 ROOT::Math::PxPyPzEVector b0momentum(3, 0, 0, 5);
45 factory.
produceParticle(
string(
"^B0 -> [^K*0 -> [^K_S0 -> ^pi+ ^pi-] [^pi0 -> ^gamma ^gamma]] ^e+ ^e-"),
46 b0momentum, ipposition);
50 void TearDown()
override
55 TEST_F(InclusiveVariablesTest, nCompositeDaughters)
59 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 1);
61 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 1);
63 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 0);
65 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 0);
67 TEST_F(InclusiveVariablesTest, nCompositeAllGenerationDaughters)
71 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 3);
73 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 1);
75 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 1);
77 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 1);
79 TEST_F(InclusiveVariablesTest, nPhotonDaughters)
83 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 2);
85 TEST_F(InclusiveVariablesTest, nDaughterNeutralHadrons)
89 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 0);
91 TEST_F(InclusiveVariablesTest, nChargedDaughters)
95 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 4);
97 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 2);
99 EXPECT_EQ(std::get<int>(var->function(myParticles[9])), 2);
102 TEST_F(InclusiveVariablesTest, daughterAverageOf)
106 EXPECT_FLOAT_EQ(std::get<double>(var->function(myParticles[9])),
float(313 + 11 - 11) / 3);
static DataStore & Instance()
Instance of singleton Store.
void setInitializeActive(bool active)
Setter for m_initializeActive.
void reset(EDurability durability)
Frees memory occupied by data store items and removes all objects from the map.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
Accessor to arrays stored in the data store.
const Var * getVariable(std::string name)
Get the variable belonging to the given key.
static Manager & Instance()
get singleton instance.
const Belle2::Particle * produceParticle(const std::string &decayString, const ROOT::Math::PxPyPzEVector &momentum, const ROOT::Math::XYZVector &vertex)
Main method to produce particles.
Abstract base class for different kinds of events.