Belle II Software  light-2205-abys
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 
21 namespace 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 
55  int nRemainingTracksInROE(const Particle* particle, const std::string& maskName = RestOfEvent::c_defaultMaskName);
56 
60  Manager::FunctionPtr nROE_RemainingTracksWithMask(const std::vector<std::string>& arguments);
61 
65  Manager::FunctionPtr useROERecoilFrame(const std::vector<std::string>& arguments);
66 
70  int nROE_RemainingTracks(const Particle* particle);
71 
75  double nROE_KLMClusters(const Particle* particle);
76 
80  double ROE_MC_E(const Particle* particle);
81 
85  double ROE_MC_M(const Particle* particle);
86 
90  double ROE_MC_P(const Particle* particle);
91 
95  double ROE_MC_Px(const Particle* particle);
96 
100  double ROE_MC_Py(const Particle* particle);
101 
105  double ROE_MC_Pz(const Particle* particle);
106 
110  double ROE_MC_Pt(const Particle* particle);
111 
115  double ROE_MC_PTheta(const Particle* particle);
116 
120  Manager::FunctionPtr ROE_MC_MissingFlags(const std::vector<std::string>& arguments);
121 
125  Manager::FunctionPtr nROE_Tracks(const std::vector<std::string>& arguments);
126 
130  Manager::FunctionPtr nROE_ECLClusters(const std::vector<std::string>& arguments);
131 
135  Manager::FunctionPtr nROE_NeutralECLClusters(const std::vector<std::string>& arguments);
136 
140  Manager::FunctionPtr nROE_ChargedParticles(const std::vector<std::string>& arguments);
141 
145  Manager::FunctionPtr nROE_Photons(const std::vector<std::string>& arguments);
146 
150  Manager::FunctionPtr nROE_NeutralHadrons(const std::vector<std::string>& arguments);
151 
155  Manager::FunctionPtr nROE_Composites(const std::vector<std::string>& arguments);
156 
161  Manager::FunctionPtr nROE_ParticlesInList(const std::vector<std::string>& arguments);
162 
166  Manager::FunctionPtr ROE_Charge(const std::vector<std::string>& arguments);
167 
171  Manager::FunctionPtr ROE_ExtraEnergy(const std::vector<std::string>& arguments);
172 
176  Manager::FunctionPtr ROE_NeutralExtraEnergy(const std::vector<std::string>& arguments);
177 
181  Manager::FunctionPtr ROE_E(const std::vector<std::string>& arguments);
182 
186  Manager::FunctionPtr ROE_M(const std::vector<std::string>& arguments);
187 
191  Manager::FunctionPtr ROE_P(const std::vector<std::string>& arguments);
192 
196  Manager::FunctionPtr ROE_Px(const std::vector<std::string>& arguments);
197 
201  Manager::FunctionPtr ROE_Py(const std::vector<std::string>& arguments);
202 
206  Manager::FunctionPtr ROE_Pz(const std::vector<std::string>& arguments);
207 
211  Manager::FunctionPtr ROE_Pt(const std::vector<std::string>& arguments);
212 
216  Manager::FunctionPtr ROE_PTheta(const std::vector<std::string>& arguments);
217 
221  Manager::FunctionPtr ROE_DeltaE(const std::vector<std::string>& arguments);
222 
226  Manager::FunctionPtr ROE_Mbc(const std::vector<std::string>& arguments);
227 
233  Manager::FunctionPtr WE_DeltaE(const std::vector<std::string>& arguments);
234 
240  Manager::FunctionPtr WE_Mbc(const std::vector<std::string>& arguments);
241 
246  Manager::FunctionPtr WE_MissM2(const std::vector<std::string>& arguments);
247 
252  Manager::FunctionPtr WE_MissPTheta(const std::vector<std::string>& arguments);
253 
258  Manager::FunctionPtr WE_MissP(const std::vector<std::string>& arguments);
259 
264  Manager::FunctionPtr WE_MissPx(const std::vector<std::string>& arguments);
265 
270  Manager::FunctionPtr WE_MissPy(const std::vector<std::string>& arguments);
271 
276  Manager::FunctionPtr WE_MissPz(const std::vector<std::string>& arguments);
277 
282  Manager::FunctionPtr WE_MissE(const std::vector<std::string>& arguments);
283 
287  Manager::FunctionPtr ROE_xiZ(const std::vector<std::string>& arguments);
288 
295  Manager::FunctionPtr WE_cosThetaEll(const std::vector<std::string>& arguments);
296 
300  Manager::FunctionPtr passesROEMask(const std::vector<std::string>& arguments);
301 
306  Manager::FunctionPtr WE_MissM2OverMissE(const std::vector<std::string>& arguments);
307 
313  Manager::FunctionPtr WE_q2lnuSimple(const std::vector<std::string>& arguments);
314 
321  Manager::FunctionPtr WE_q2lnu(const std::vector<std::string>& arguments);
322 
332  Manager::FunctionPtr pi0Prob(const std::vector<std::string>& arguments);
333 
343  Manager::FunctionPtr etaProb(const std::vector<std::string>& arguments);
344 
345 
346  // ------------------------------------------------------------------------------
347  // Below are some functions for ease of usage, they are not a part of variables
348  // ------------------------------------------------------------------------------
349 
362  ROOT::Math::PxPyPzEVector missing4Vector(const Particle* particle, const std::string& maskName, const std::string& opt);
363 
367  void checkMCParticleMissingFlags(const MCParticle* mcp, std::set<const MCParticle*> ROE_MCObjects, int& missingFlags);
368 
374  double isInThisRestOfEvent(const Particle* particle, const RestOfEvent* roe,
375  const std::string& maskName = RestOfEvent::c_defaultMaskName);
376 
377 
381  Manager::FunctionPtr bssMassDifference(const std::vector<std::string>& arguments);
385  const RestOfEvent* getRelatedROEObject(const Particle* particle, bool returnHostOnly = false);
386  }
388 } // Belle2 namespace
389 
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.
Definition: ClusterUtils.h:23