1 #include <gtest/gtest.h>
3 #include <TMatrixFSym.h>
5 #include <TLorentzVector.h>
8 #include <analysis/VariableManager/Manager.h>
9 #include <analysis/VariableManager/Utility.h>
11 #include <analysis/dataobjects/Particle.h>
12 #include <analysis/dataobjects/ParticleExtraInfoMap.h>
13 #include <analysis/dataobjects/ParticleList.h>
14 #include <analysis/dataobjects/EventExtraInfo.h>
15 #include <analysis/dataobjects/RestOfEvent.h>
16 #include <analysis/utility/ReferenceFrame.h>
17 #include <framework/datastore/StoreArray.h>
18 #include <framework/datastore/StoreObjPtr.h>
19 #include <framework/utilities/TestHelpers.h>
20 #include <framework/logging/Logger.h>
21 #include <framework/gearbox/Gearbox.h>
23 #include <mdst/dataobjects/Track.h>
24 #include <mdst/dataobjects/ECLCluster.h>
25 #include <mdst/dataobjects/KLMCluster.h>
27 #include <analysis/variables/Variables.h>
29 #include "utilities/TestParticleFactory.h"
32 using namespace Belle2::Variable;
37 class InclusiveVariablesTest :
public ::testing::Test {
43 DataStore::Instance().setInitializeActive(
true);
51 myECLClusters.registerInDataStore();
52 myKLMClusters.registerInDataStore();
53 myTFRs.registerInDataStore();
54 myTracks.registerInDataStore();
55 myParticles.registerInDataStore();
56 myROEs.registerInDataStore();
57 myPIDLikelihoods.registerInDataStore();
60 DataStore::Instance().setInitializeActive(
false);
63 TVector3 ipposition(0, 0, 0);
64 TLorentzVector b0momentum(3, 0, 0, 5);
65 factory.
produceParticle(
string(
"^B0 -> [^K_S0 -> ^pi+ ^pi-] [^pi0 -> ^gamma ^gamma] ^e+ ^e-"), b0momentum, ipposition);
69 void TearDown()
override
71 DataStore::Instance().reset();
74 TEST_F(InclusiveVariablesTest, nCompositeDaughters)
77 auto* var = Manager::Instance().getVariable(
"nCompositeDaughters");
78 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 2.0);
80 TEST_F(InclusiveVariablesTest, nPhotonDaughters)
83 auto* var = Manager::Instance().getVariable(
"nDaughterPhotons");
84 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 2.0);
86 TEST_F(InclusiveVariablesTest, nDaughterNeutralHadrons)
89 auto* var = Manager::Instance().getVariable(
"nDaughterNeutralHadrons");
90 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 0.0);
92 TEST_F(InclusiveVariablesTest, nChargedDaughters)
95 auto* var = Manager::Instance().getVariable(
"nDaughterCharged()");
96 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 4.0);
97 var = Manager::Instance().getVariable(
"nDaughterCharged(11)");
98 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 2.0);
99 var = Manager::Instance().getVariable(
"nDaughterCharged(211)");
100 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 2.0);
103 TEST_F(InclusiveVariablesTest, daughterAverageOf)
106 auto* var = Manager::Instance().getVariable(
"daughterAverageOf(PDG)");
107 EXPECT_FLOAT_EQ(var->function(myParticles[8]), 105.25);