Difference: DecayChainNTuple (1 vs. 2)

Revision 22008-03-27 - unknown

Line: 1 to 1
 
META TOPICPARENT name="DaVinci"

DecayChainNTuple rewrite

Changed:
<
<

Introduction

DecayChainNTuple is a generic algorithm that fills an nTuple for any decay chain. It needs a serious revision. See PK's talk at Oct 07 software week.
>
>
Is done. Please use DecayTreeTuple. Many thanks to Jérémie Borel.
 
Changed:
<
<

Definitions

Observable
Measured or true variables like momentum, IP, Pdg-code, mass...
Particle
A unique name for the particle for which the observables are computed. For instance B0, Kstar
Variable
The concatenation of the two, e.g. B0mass

Requirements

  1. Be able to switch on and off any set of observables (for instance everything related to IP).
  2. The default set of observables should not be "all".
  3. The observable names should follow the standard defined by LoKiParticleFunctions.
  4. The variable name should be human-readable. I.e. B0mass, not Mass_lab0.
  5. The variable names must be understood by root.
  6. The nTuple should contain the address of the event, i.e. be an ETC.

Suggested changes

Particle naming

I suggest a tool parsing the particle names and changing the problematic characters +, -, (, )... to something acceptable.

Split it into tools

I suggest to create ore or two new tools ITupleTool (and IMCTupleTool) that would have methods like
<!-- SyntaxHighlightingPlugin -->
/// fill nTuple with momentum of particle P using particle name head
void fillMomentum(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
/// fill nTuple with momentum errors of particle P using particle name head
void fillMomentumErr(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
/// fill nTuple with momentum of MC particle MCP using particle name head
void fillMomentum(const LHCb::MCParticle* MCP, std::string& head, Tuple& tuple) const;
/// fill nTuple with IPs wrt all PVs of particle P using particle name head
void fillIP(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
<!-- end SyntaxHighlightingPlugin -->
This tool could then be used from any user code as well.

The main algorithm

The main algorithm would be in charge of following the decay chain, or doing MC association, of assigning head particle names and of calling the relevant methods.

Special care is needed to treat a decay tree and it's cc the same way.

Related project:

SimplePlotTool should be adapted in a similar way to be configured using the same variable names.

Volunteers

None identified yet.

Comments

This section is left for comments and suggestions.

-- PatrickKoppenburg - 04 Oct 2007

>
>
-- PatrickKoppenburg - 27 Mar 2008

Revision 12007-10-04 - unknown

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="DaVinci"

DecayChainNTuple rewrite

Introduction

DecayChainNTuple is a generic algorithm that fills an nTuple for any decay chain. It needs a serious revision. See PK's talk at Oct 07 software week.

Definitions

Observable
Measured or true variables like momentum, IP, Pdg-code, mass...
Particle
A unique name for the particle for which the observables are computed. For instance B0, Kstar
Variable
The concatenation of the two, e.g. B0mass

Requirements

  1. Be able to switch on and off any set of observables (for instance everything related to IP).
  2. The default set of observables should not be "all".
  3. The observable names should follow the standard defined by LoKiParticleFunctions.
  4. The variable name should be human-readable. I.e. B0mass, not Mass_lab0.
  5. The variable names must be understood by root.
  6. The nTuple should contain the address of the event, i.e. be an ETC.

Suggested changes

Particle naming

I suggest a tool parsing the particle names and changing the problematic characters +, -, (, )... to something acceptable.

Split it into tools

I suggest to create ore or two new tools ITupleTool (and IMCTupleTool) that would have methods like
<!-- SyntaxHighlightingPlugin -->
/// fill nTuple with momentum of particle P using particle name head
void fillMomentum(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
/// fill nTuple with momentum errors of particle P using particle name head
void fillMomentumErr(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
/// fill nTuple with momentum of MC particle MCP using particle name head
void fillMomentum(const LHCb::MCParticle* MCP, std::string& head, Tuple& tuple) const;
/// fill nTuple with IPs wrt all PVs of particle P using particle name head
void fillIP(const LHCb::Particle* P, std::string& head, Tuple& tuple) const;
<!-- end SyntaxHighlightingPlugin -->
This tool could then be used from any user code as well.

The main algorithm

The main algorithm would be in charge of following the decay chain, or doing MC association, of assigning head particle names and of calling the relevant methods.

Special care is needed to treat a decay tree and it's cc the same way.

Related project:

SimplePlotTool should be adapted in a similar way to be configured using the same variable names.

Volunteers

None identified yet.

Comments

This section is left for comments and suggestions.

-- PatrickKoppenburg - 04 Oct 2007

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback