Commit de3926e5 authored by Marco Clemencic's avatar Marco Clemencic
Browse files

v12r5

parent e7c8f01c
......@@ -832,6 +832,8 @@ private:
/// PV and relation table entry when applicable.
StatusCode saveInTES();
protected:
/// Save all marked local particles not already in the TES.
/// Saves decay tree elements not already in TES
/// This method can be overwritten if special TES saving actions are
......
......@@ -4,7 +4,7 @@
#============================================================================
package DaVinciKernel
version v10r0p1
version v10r2
# Structure, i.e. directories to process.
#============================================================================
......
......@@ -4,6 +4,16 @@
! Responsible : J.P. Palacios
!============================================================================
!========================= DaVinciKernel v10r2 2011-06-16 =========================
! 2011-05-22 - Vanya Belyaev
- DVAlgorithm
move _saveInTES from private to protected section
- Increase to v10r1
!======================== DaVinciKernel v10r0p1 2011-04-21 ==================
! 2011-04-18 - Juan Palacios
......
// $Id: FilterMCParticlesBase.h,v 1.1 2007-07-24 12:09:22 jpalac Exp $
// $Id: FilterMCParticlesBase.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef KERNEL_FILTERMCPARTICLESBASE_H
#define KERNEL_FILTERMCPARTICLESBASE_H 1
......
// $Id: HepMC2MC.h,v 1.2 2008-06-03 15:24:14 cattanem Exp $
// $Id: HepMC2MC.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef MCTOOLS_HEPMC2MC_H
#define MCTOOLS_HEPMC2MC_H 1
......@@ -23,8 +23,6 @@ template <class FROM,class TO> class IRelation2D ;
// Event
// ============================================================================
namespace LHCb { class MCParticle ; }
// ============================================================================
// ============================================================================
/** @file
*
......@@ -40,10 +38,9 @@ namespace LHCb { class MCParticle ; }
* @date 2006-01-23
*/
// ============================================================================
namespace LHCb
{
// ===========================================================================
/** @namespace LHCb::Relations_
* definition fo low-level classes used for relations
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
......@@ -51,21 +48,22 @@ namespace LHCb
*/
namespace Relations_
{
// ========================================================================
/// the actual type for HepMC --> MC relations
typedef IRelation<HepMC::GenParticle*,LHCb::MCParticle> HepMC2MC ;
/// the actual type for MC --> HepMC relations
typedef IRelation<LHCb::MCParticle,HepMC::GenParticle*> MC2HepMC ;
/// the actual type for HepMC <--> MC relations
typedef IRelation2D<HepMC::GenParticle*,LHCb::MCParticle> HepMC2MC2D ;
};
// ========================================================================
} // end of namespace LHCb::Relations_
// ==========================================================================
/// the actual type for HepMC --> MC relations
typedef LHCb::Relations_::HepMC2MC HepMC2MC ;
/// the actual type for MC --> HepMC relations
typedef LHCb::Relations_::MC2HepMC MC2HepMC ;
/// the actual type for HepMC <--> MC relations
typedef LHCb::Relations_::HepMC2MC2D HepMC2MC2D ;
// ==========================================================================
/** @namespace HepMC2MCLocation
* namespace with the definiton of "default" TES
......@@ -87,13 +85,11 @@ namespace LHCb
const std::string Default =
"Relations/" + LHCb::HepMCEventLocation::Default ;
// ========================================================================
};
} // end of namespace LHCb::HepMC2MCLocation
// ==========================================================================
} ; // end of namespace LHCb
} // end of namespace LHCb
// ============================================================================
// The END
// The END
// ============================================================================
#endif // MCTOOLS_HEPMC2MC_H
// ============================================================================
// $Id: IBackgroundCategory.h,v 1.6 2010-06-09 12:00:55 gligorov Exp $
// $Id: IBackgroundCategory.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef DAVINCIMCTOOLS_IBACKGROUNDCATEGORY_H
#define DAVINCIMCTOOLS_IBACKGROUNDCATEGORY_H 1
......
// $Id: IDaVinciAssociatorsWrapper.h,v 1.5 2009-01-20 15:54:56 jpalac Exp $
// $Id: IDaVinciAssociatorsWrapper.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef IDAVINCIASSOCIATORSWRAPPER_H
#define IDAVINCIASSOCIATORSWRAPPER_H 1
......
// $Id: IFilterMCParticles.h,v 1.1 2007-07-24 12:08:44 jpalac Exp $
// $Id: IFilterMCParticles.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef KERNEL_IFILTERMCPARTICLES_H
#define KERNEL_IFILTERMCPARTICLES_H 1
......
// $Id: IHepMC2MC.h,v 1.2 2008-06-03 15:24:14 cattanem Exp $
// $Id: IHepMC2MC.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef MCTOOLS_IHEPMC2MC_H
#define MCTOOLS_IHEPMC2MC_H 1
......
// $Id: IMC2Collision.h,v 1.2 2008-06-03 15:24:14 cattanem Exp $
// $Id: IMC2Collision.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef KERNEL_IMC2COLLISION_H
#define KERNEL_IMC2COLLISION_H 1
......
// $Id: IMCParticleArrayFilter.h,v 1.2 2007-07-24 12:38:25 jpalac Exp $
// $Id: IMCParticleArrayFilter.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef KERNEL_IMCPARTICLEARRAYFILTER_H
#define KERNEL_IMCPARTICLEARRAYFILTER_H 1
......
// $Id: IMCParticleTupleTool.h,v 1.1 2009-01-19 18:05:52 pkoppenb Exp $
// $Id: IMCParticleTupleTool.h 124246 2011-06-05 16:03:42Z ibelyaev $
// ============================================================================
#ifndef DECAYTUPLE_IMCPARTICLETUPLETOOL_H
#define DECAYTUPLE_IMCPARTICLETUPLETOOL_H 1
// ============================================================================
// Include files
// from STL
#include <string>
......@@ -13,11 +14,10 @@ static const InterfaceID IID_IMCParticleTupleTool ( "IMCParticleTupleTool", 1, 0
namespace Tuples{
class Tuple;
};
}
namespace LHCb {
class MCParticle;
};
}
/** @class IMCParticleTupleTool
*
* Fill some mc-particle related variables into a tuple.
......@@ -28,22 +28,23 @@ namespace LHCb {
* @author patrick.koppenburg@cern.ch
* @date 19 January 2009
*/
class IMCParticleTupleTool : virtual public IAlgTool {
public:
class IMCParticleTupleTool : virtual public IAlgTool
{
public:
virtual ~IMCParticleTupleTool(){};
// Return the interface ID
static const InterfaceID& interfaceID() { return IID_IMCParticleTupleTool; }
//! Fill the tuple.
//! - \b top : may be used to provide additional information about \b part, like the top particle of the decay.
//! - \b part : the particle about which some info are filled.
//! - \b head : prefix for the tuple column name.
//! - \b tuple: the tuple to fill
virtual StatusCode fill( const LHCb::MCParticle* top
, const LHCb::MCParticle* part
, const std::string& head
, Tuples::Tuple& tuple )=0;
virtual StatusCode fill( const LHCb::MCParticle* top ,
const LHCb::MCParticle* part ,
const std::string& head ,
Tuples::Tuple& tuple ) = 0 ;
};
#endif // DECAYTUPLE_IMCPARTICLETUPLETOOL_H
// $Id: IP2VVMCPartAngleCalculator.h,v 1.3 2008-06-03 13:44:01 pkoppenb Exp $
// $Id: IP2VVMCPartAngleCalculator.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef IMCANGLECALCULATOR_H
#define IMCANGLECALCULATOR_H 1
......
// $Id: IPV2MC.h,v 1.2 2008-06-03 15:24:14 cattanem Exp $
// $Id: IPV2MC.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef KERNEL_IPV2MC_H
#define KERNEL_IPV2MC_H 1
......@@ -7,13 +7,12 @@
// ============================================================================
// GaudiKernel
// ============================================================================
#include "GaudiKernel/Kernel.h"
#include "GaudiKernel/IAlgTool.h"
// ============================================================================
// Kernel ?
// ============================================================================
#include "Kernel/PV2MC.h"
// ============================================================================
// ============================================================================
/** @file
*
......@@ -27,20 +26,22 @@
*
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-19
*
* $Revision: 124237 $
* Last modification $Date: 2011-06-05 15:10:10 +0200 (Sun, 05 Jun 2011) $
* by $Author: ibelyaev $
*/
// ============================================================================
/** @class IPV2MC IPV2MC.h Kernel/IPV2MC.h
*
*
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-19
*/
class IPV2MC
: virtual public IAlgTool
class GAUDI_API IPV2MC : virtual public IAlgTool
{
public:
// ==========================================================================
/// the actual type of PV -> MC relations
typedef LHCb::PV2MC PV2MC ;
/// the actual type of MC -> PV relations
......@@ -49,8 +50,9 @@ public:
typedef LHCb::PV2Collision PV2Collision ;
/// the actual type of Collision -> PV relations
typedef LHCb::Collision2PV Collision2PV ;
// ==========================================================================
public:
// ==========================================================================
/** return a relation table for
* LHCb::RecVertex ---> LHCb::MCVertex relations
*
......@@ -88,7 +90,7 @@ public:
* @date 2006-03-19
*/
virtual const PV2MC* pv2MC() const = 0 ;
// ==========================================================================
/** return a relation table for
* (primary)LHCb::MCVertex --> LHCb::RecVertex relations
*
......@@ -99,7 +101,7 @@ public:
* @date 2006-03-19
*/
virtual const MC2PV* mc2PV() const = 0 ;
// ==========================================================================
/** return a relation table for
* LHCb::RecVertex ---> LHCb::GenCollision relations
*
......@@ -137,7 +139,7 @@ public:
* @date 2006-03-19
*/
virtual const PV2Collision* pv2Collision() const = 0 ;
// ==========================================================================
/** return a relation table for
* LHCb::GenCollision --> LHCb::RecVertex relations
*
......@@ -148,15 +150,18 @@ public:
* @date 2006-03-19
*/
virtual const Collision2PV* collision2PV() const = 0 ;
// ==========================================================================
public:
// ==========================================================================
/// Return the unique interface identifier
static const InterfaceID& interfaceID() ;
// ==========================================================================
protected:
// virtual and protected destructor
virtual ~IPV2MC( ); ///< virtual and protected destructor
// ==========================================================================
/// virtual and protected destructor
virtual ~IPV2MC() ; // virtual and protected destructor
// ==========================================================================
};
// ============================================================================
// The END
// ============================================================================
......
// $Id: IParticle2MCAssociator.h,v 1.11 2009-10-15 14:07:30 jpalac Exp $
// $Id: IParticle2MCAssociator.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef KERNEL_IPARTICLE2MCASSOCIATOR_H
#define KERNEL_IPARTICLE2MCASSOCIATOR_H 1
......
// $Id: IParticle2MCWeightedAssociator.h,v 1.8 2009-10-15 16:10:53 jpalac Exp $
// $Id: IParticle2MCWeightedAssociator.h 124237 2011-06-05 13:10:10Z ibelyaev $
#ifndef KERNEL_IPARTICLE2MCWEIGHTEDASSOCIATOR_H
#define KERNEL_IPARTICLE2MCWEIGHTEDASSOCIATOR_H 1
......
// $Id: IPrintDecayTreeTool.h,v 1.6 2008-03-30 18:00:53 ibelyaev Exp $
// $Id: IPrintDecayTreeTool.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef DAVINCIMCTOOLS_IPRINTDECAYTREETOOL_H
#define DAVINCIMCTOOLS_IPRINTDECAYTREETOOL_H 1
......
// $Id: MC2Collision.h,v 1.3 2008-06-03 15:24:14 cattanem Exp $
// $Id: MC2Collision.h 124237 2011-06-05 13:10:10Z ibelyaev $
// ============================================================================
#ifndef KERNEL_MC2COLLISION_H
#define KERNEL_MC2COLLISION_H 1
// ============================================================================
// Include files
// ============================================================================
// GaudiKernel
// ============================================================================
#include "GaudiKernel/Kernel.h"
// ============================================================================
// Event
// ============================================================================
#include "Event/MCVertex.h"
......@@ -21,12 +25,11 @@ namespace LHCb
class MCRichHit ;
class MCOTDeposit ;
class MCSTDeposit ;
};
template <class FROM, class TO> class IRelation;
}
// ============================================================================
template <class FROM, class TO> class IRelation;
// ============================================================================
/** @file
/** @file Kernel/MC2Collision.h
*
* This file is a part of LoKi project -
* "C++ ToolKit for Smart and Friendly Physics Analysis"
......@@ -38,28 +41,37 @@ template <class FROM, class TO> class IRelation;
*
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*
* $Revision: 124237 $
* Last modification $Date: 2011-06-05 15:10:10 +0200 (Sun, 05 Jun 2011) $
* by $Author: ibelyaev $
*/
// ============================================================================
namespace LHCb
{
// ==========================================================================
namespace Relations_
{
// ========================================================================
/// the actual type for MCVertex --> GenCollision relations
typedef IRelation<LHCb::MCVertex,LHCb::GenCollision> MCVertex2Collision ;
} ;
// ========================================================================
} // end of namesapce LHCb::Relations_
// ==========================================================================
/// the actual type for MCVertex --> GenCollision relations
typedef LHCb::Relations_::MCVertex2Collision MCVertex2Collision ;
///
// ==========================================================================
namespace MC2CollisionLocation
{
// ========================================================================
const std::string Default =
"Relations/" + LHCb::MCVertexLocation::Default + "2Collision";
};
} ;
// ========================================================================
} // end of namespace LHCb::MC2CollisionLocation
// ==========================================================================
} // end of namespace LHCb
// ============================================================================
/** @namespace MC2Collision MC2Collision.h Kernel/MC2Collision.h
/** @namespace MC2Collision Kernel/MC2Collision.h
*
* Collection of helper utilities to determine the collision for
* MC objects
......@@ -70,6 +82,7 @@ namespace LHCb
// ==========================================================================
namespace MC2Collision
{
// ==========================================================================
/** get the GenCollision object, associated with the given vertex
*
* @code
......@@ -95,11 +108,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCVertex* vertex ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given particle
*
* @code
......@@ -125,11 +139,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCParticle* particle ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given hit
*
* @code
......@@ -155,11 +170,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCHit* hit ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given hit
*
* @code
......@@ -185,11 +201,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCCaloHit* hit ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given deposit
*
* @code
......@@ -215,11 +232,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCOTDeposit* hit ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given deposit
*
* @code
......@@ -245,11 +263,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCSTDeposit* hit ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** get the GenCollision object, associated with the given Rich hit
*
* @code
......@@ -275,11 +294,12 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::GenCollision*
collision
( const LHCb::MCRichHit* hit ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given vertex
*
* @param vertex vertex
......@@ -288,8 +308,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCVertex* vertex ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given particle
*
* @param hit particle
......@@ -298,8 +320,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCParticle* hit ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given hit
*
* @param hit hit
......@@ -308,8 +332,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCHit* hit ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given hit
*
* @param hit hit
......@@ -318,8 +344,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCCaloHit* hit ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given hit
*
* @param hit hit
......@@ -328,8 +356,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCRichHit* hit ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given hit
*
* @param hit hit
......@@ -338,8 +368,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCOTDeposit* hit ) ;
// ==========================================================================
/** Simple function wich returns the primary vertex for the given hit
*
* @param hit hit
......@@ -348,9 +380,10 @@ namespace MC2Collision
* @author Vanya BELYAEV ibelyaev@physics.syr.edu
* @date 2006-03-18
*/
GAUDI_API
const LHCb::MCVertex*
primaryVertex ( const LHCb::MCSTDeposit* hit ) ;
// ==========================================================================
/** Helper function which checs, is the given (primary) vertex
* has as an origin the given collision
* @param vertex the vertex
......@@ -358,11 +391,12 @@ namespace MC2Collision
* @param table the information source
* @return true if the vertex comes from the collision
*/
GAUDI_API
bool fromCollision
( const LHCb::MCVertex* vertex ,
const LHCb::GenCollision* collision ,
const LHCb::MCVertex2Collision* table ) ;
// ==========================================================================
/** Helper class(functor) to find check if the MC-objects
* originates form a given GenCollision
*
......@@ -410,6 +444,7 @@ namespace MC2Collision
: public std::unary_function<const TYPE*,bool>
{
public:
// ========================================================================
/// constructor from the collision and the information provider
FromCollision
( const LHCb::GenCollision* collision ,
......@@ -421,19 +456,22 @@ namespace MC2Collision
bool operator () ( const TYPE* object ) const
{ return fromCollision
( primaryVertex ( object ) , m_collision , m_table ) ; }
// ========================================================================
private:
// the default constructor is disabled