Belle II Software development
ROEVariables.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <analysis/VariableManager/Manager.h>
12
13#include <analysis/dataobjects/RestOfEvent.h>
14
15#include <Math/Vector4D.h>
16
17#include <string>
18#include <vector>
19#include <set>
20
21namespace Belle2 {
26 class MCParticle;
27 class Particle;
28
29 namespace Variable {
30
35 double isInRestOfEvent(const Particle* particle);
39 double isCloneOfSignalSide(const Particle* particle);
40
44 double hasAncestorFromSignalSide(const Particle* particle);
45
50 double printROE(const Particle* particle);
51
57 double hasCorrectROECombination(const Particle* particle);
58
62 int nRemainingTracksInROE(const Particle* particle, const std::string& maskName = RestOfEvent::c_defaultMaskName);
63
67 Manager::FunctionPtr nROE_RemainingTracksWithMask(const std::vector<std::string>& arguments);
68
72 Manager::FunctionPtr useROERecoilFrame(const std::vector<std::string>& arguments);
73
77 int nROE_RemainingTracks(const Particle* particle);
78
82 double nROE_KLMClusters(const Particle* particle);
83
87 double ROE_MC_E(const Particle* particle);
88
92 double ROE_MC_M(const Particle* particle);
93
97 double ROE_MC_P(const Particle* particle);
98
102 double ROE_MC_Px(const Particle* particle);
103
107 double ROE_MC_Py(const Particle* particle);
108
112 double ROE_MC_Pz(const Particle* particle);
113
117 double ROE_MC_Pt(const Particle* particle);
118
122 double ROE_MC_PTheta(const Particle* particle);
123
127 Manager::FunctionPtr ROE_MC_MissingFlags(const std::vector<std::string>& arguments);
128
132 Manager::FunctionPtr nROE_Tracks(const std::vector<std::string>& arguments);
133
137 Manager::FunctionPtr nROE_ECLClusters(const std::vector<std::string>& arguments);
138
142 Manager::FunctionPtr nROE_NeutralECLClusters(const std::vector<std::string>& arguments);
143
147 Manager::FunctionPtr nROE_ChargedParticles(const std::vector<std::string>& arguments);
148
152 Manager::FunctionPtr nROE_Photons(const std::vector<std::string>& arguments);
153
157 Manager::FunctionPtr nROE_NeutralHadrons(const std::vector<std::string>& arguments);
158
162 Manager::FunctionPtr nROE_Composites(const std::vector<std::string>& arguments);
163
168 Manager::FunctionPtr nROE_ParticlesInList(const std::vector<std::string>& arguments);
169
173 Manager::FunctionPtr ROE_Charge(const std::vector<std::string>& arguments);
174
178 Manager::FunctionPtr ROE_ExtraEnergy(const std::vector<std::string>& arguments);
179
183 Manager::FunctionPtr ROE_NeutralExtraEnergy(const std::vector<std::string>& arguments);
184
188 Manager::FunctionPtr ROE_E(const std::vector<std::string>& arguments);
189
193 Manager::FunctionPtr ROE_M(const std::vector<std::string>& arguments);
194
198 Manager::FunctionPtr ROE_P(const std::vector<std::string>& arguments);
199
203 Manager::FunctionPtr ROE_Px(const std::vector<std::string>& arguments);
204
208 Manager::FunctionPtr ROE_Py(const std::vector<std::string>& arguments);
209
213 Manager::FunctionPtr ROE_Pz(const std::vector<std::string>& arguments);
214
218 Manager::FunctionPtr ROE_Pt(const std::vector<std::string>& arguments);
219
223 Manager::FunctionPtr ROE_PTheta(const std::vector<std::string>& arguments);
224
228 Manager::FunctionPtr ROE_DeltaE(const std::vector<std::string>& arguments);
229
233 Manager::FunctionPtr ROE_Mbc(const std::vector<std::string>& arguments);
234
240 Manager::FunctionPtr WE_DeltaE(const std::vector<std::string>& arguments);
241
247 Manager::FunctionPtr WE_Mbc(const std::vector<std::string>& arguments);
248
253 Manager::FunctionPtr WE_MissM2(const std::vector<std::string>& arguments);
254
259 Manager::FunctionPtr WE_MissPTheta(const std::vector<std::string>& arguments);
260
265 Manager::FunctionPtr WE_MissP(const std::vector<std::string>& arguments);
266
271 Manager::FunctionPtr WE_MissPx(const std::vector<std::string>& arguments);
272
277 Manager::FunctionPtr WE_MissPy(const std::vector<std::string>& arguments);
278
283 Manager::FunctionPtr WE_MissPz(const std::vector<std::string>& arguments);
284
289 Manager::FunctionPtr WE_MissE(const std::vector<std::string>& arguments);
290
294 Manager::FunctionPtr ROE_xiZ(const std::vector<std::string>& arguments);
295
302 Manager::FunctionPtr WE_cosThetaEll(const std::vector<std::string>& arguments);
303
307 Manager::FunctionPtr passesROEMask(const std::vector<std::string>& arguments);
308
313 Manager::FunctionPtr WE_MissM2OverMissE(const std::vector<std::string>& arguments);
314
320 Manager::FunctionPtr WE_q2lnuSimple(const std::vector<std::string>& arguments);
321
328 Manager::FunctionPtr WE_q2lnu(const std::vector<std::string>& arguments);
329
339 Manager::FunctionPtr pi0Prob(const std::vector<std::string>& arguments);
340
350 Manager::FunctionPtr etaProb(const std::vector<std::string>& arguments);
351
352
353 // ------------------------------------------------------------------------------
354 // Below are some functions for ease of usage, they are not a part of variables
355 // ------------------------------------------------------------------------------
356
369 ROOT::Math::PxPyPzEVector missing4Vector(const Particle* particle, const std::string& maskName, const std::string& opt);
370
374 void checkMCParticleMissingFlags(const MCParticle* mcp, std::set<const MCParticle*> ROE_MCObjects, int& missingFlags);
375
381 double isInThisRestOfEvent(const Particle* particle, const RestOfEvent* roe,
382 const std::string& maskName = RestOfEvent::c_defaultMaskName);
383
384
388 Manager::FunctionPtr bssMassDifference(const std::vector<std::string>& arguments);
392 const RestOfEvent* getRelatedROEObject(const Particle* particle, bool returnHostOnly = false);
393 }
395} // Belle2 namespace
396
static constexpr const char * c_defaultMaskName
Default mask name.
Definition: RestOfEvent.h:60
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition: Manager.h:113
Abstract base class for different kinds of events.