Belle II Software  release-05-01-25
ROEVariables.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Anze Zupanc, Matic Lubej *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 #include <analysis/VariableManager/Manager.h>
13 #include <mdst/dataobjects/MCParticle.h>
14 #include <analysis/dataobjects/RestOfEvent.h>
15 #include <TLorentzVector.h>
16 #include <string>
17 #include <vector>
18 #include <set>
19 
20 namespace Belle2 {
25  class Particle;
26 
27  namespace Variable {
28 
33  double isInRestOfEvent(const Particle* particle);
37  double isCloneOfSignalSide(const Particle* particle);
38 
42  double hasAncestorFromSignalSide(const Particle* particle);
43 
48  double printROE(const Particle* particle);
49 
53  double nRemainingTracksInROE(const Particle* particle, const std::string& maskName = "");
54 
58  Manager::FunctionPtr nROE_RemainingTracksWithMask(const std::vector<std::string>& arguments);
59 
63  Manager::FunctionPtr useROERecoilFrame(const std::vector<std::string>& arguments);
64 
68  double nROE_RemainingTracks(const Particle* particle);
69 
73  double nROE_KLMClusters(const Particle* particle);
74 
78  double ROE_MC_E(const Particle* particle);
79 
83  double ROE_MC_M(const Particle* particle);
84 
88  double ROE_MC_P(const Particle* particle);
89 
93  double ROE_MC_Px(const Particle* particle);
94 
98  double ROE_MC_Py(const Particle* particle);
99 
103  double ROE_MC_Pz(const Particle* particle);
104 
108  double ROE_MC_Pt(const Particle* particle);
109 
113  double ROE_MC_PTheta(const Particle* particle);
114 
118  Manager::FunctionPtr ROE_MC_MissingFlags(const std::vector<std::string>& arguments);
119 
123  Manager::FunctionPtr nROE_Tracks(const std::vector<std::string>& arguments);
124 
128  Manager::FunctionPtr nROE_ECLClusters(const std::vector<std::string>& arguments);
129 
133  Manager::FunctionPtr nROE_NeutralECLClusters(const std::vector<std::string>& arguments);
134 
138  Manager::FunctionPtr nROE_ChargedParticles(const std::vector<std::string>& arguments);
139 
143  Manager::FunctionPtr nROE_Photons(const std::vector<std::string>& arguments);
144 
148  Manager::FunctionPtr nROE_NeutralHadrons(const std::vector<std::string>& arguments);
149 
154  Manager::FunctionPtr nROE_ParticlesInList(const std::vector<std::string>& arguments);
155 
159  Manager::FunctionPtr ROE_Charge(const std::vector<std::string>& arguments);
160 
164  Manager::FunctionPtr ROE_ExtraEnergy(const std::vector<std::string>& arguments);
165 
169  Manager::FunctionPtr ROE_NeutralExtraEnergy(const std::vector<std::string>& arguments);
170 
174  Manager::FunctionPtr ROE_E(const std::vector<std::string>& arguments);
175 
179  Manager::FunctionPtr ROE_M(const std::vector<std::string>& arguments);
180 
184  Manager::FunctionPtr ROE_P(const std::vector<std::string>& arguments);
185 
189  Manager::FunctionPtr ROE_Px(const std::vector<std::string>& arguments);
190 
194  Manager::FunctionPtr ROE_Py(const std::vector<std::string>& arguments);
195 
199  Manager::FunctionPtr ROE_Pz(const std::vector<std::string>& arguments);
200 
204  Manager::FunctionPtr ROE_Pt(const std::vector<std::string>& arguments);
205 
209  Manager::FunctionPtr ROE_PTheta(const std::vector<std::string>& arguments);
210 
214  Manager::FunctionPtr ROE_DeltaE(const std::vector<std::string>& arguments);
215 
219  Manager::FunctionPtr ROE_Mbc(const std::vector<std::string>& arguments);
220 
226  Manager::FunctionPtr WE_DeltaE(const std::vector<std::string>& arguments);
227 
233  Manager::FunctionPtr WE_Mbc(const std::vector<std::string>& arguments);
234 
239  Manager::FunctionPtr WE_MissM2(const std::vector<std::string>& arguments);
240 
245  double REC_MissM2(const Particle* particle);
246 
251  Manager::FunctionPtr WE_MissPTheta(const std::vector<std::string>& arguments);
252 
257  Manager::FunctionPtr WE_MissP(const std::vector<std::string>& arguments);
258 
263  Manager::FunctionPtr WE_MissPx(const std::vector<std::string>& arguments);
264 
269  Manager::FunctionPtr WE_MissPy(const std::vector<std::string>& arguments);
270 
275  Manager::FunctionPtr WE_MissPz(const std::vector<std::string>& arguments);
276 
281  Manager::FunctionPtr WE_MissE(const std::vector<std::string>& arguments);
282 
286  Manager::FunctionPtr ROE_xiZ(const std::vector<std::string>& arguments);
287 
294  Manager::FunctionPtr WE_cosThetaEll(const std::vector<std::string>& arguments);
295 
299  Manager::FunctionPtr passesROEMask(const std::vector<std::string>& arguments);
300 
305  Manager::FunctionPtr WE_MissM2OverMissE(const std::vector<std::string>& arguments);
306 
312  double REC_q2BhSimple(const Particle* particle);
313 
319  double REC_q2Bh(const Particle* particle);
320 
326  Manager::FunctionPtr WE_q2lnuSimple(const std::vector<std::string>& arguments);
327 
334  Manager::FunctionPtr WE_q2lnu(const std::vector<std::string>& arguments);
335 
345  Manager::FunctionPtr pi0Prob(const std::vector<std::string>& arguments);
346 
356  Manager::FunctionPtr etaProb(const std::vector<std::string>& arguments);
357 
358 
359  // ------------------------------------------------------------------------------
360  // Below are some functions for ease of usage, they are not a part of variables
361  // ------------------------------------------------------------------------------
362 
375  TLorentzVector missing4Vector(const Particle* particle, const std::string& maskName, const std::string& opt);
376 
380  void checkMCParticleMissingFlags(const MCParticle* mcp, std::set<const MCParticle*> ROE_MCObjects, int& missingFlags);
381 
387  double isInThisRestOfEvent(const Particle* particle, const RestOfEvent* roe, const std::string& maskName = "");
388 
389 
393  Manager::FunctionPtr bssMassDifference(const std::vector<std::string>& arguments);
397  const RestOfEvent* getRelatedROEObject(const Particle* particle, bool returnHostOnly = false);
398  }
400 } // Belle2 namespace
401 
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Variable::Manager::FunctionPtr
std::function< double(const Particle *)> FunctionPtr
NOTE: the python interface is documented manually in analysis/doc/Variables.rst (because we use ROOT ...
Definition: Manager.h:118