Gaudi Framework, version v20r2

Generated: 18 Jul 2008

GaudiTuples< PBASE > Class Template Reference

#include <GaudiAlg/GaudiTuples.h>

Collaboration diagram for GaudiTuples< PBASE >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class PBASE>
class GaudiTuples< PBASE >

Templated base class providing common 'ntupling' methods.

Author:
Chris Jones Christopher.Rob.Jones@cern.ch

Vanya BELYAEV Ivan.Belyaev@itep.ru

Date:
2005-08-08

Definition at line 40 of file GaudiTuples.h.

Public Types

typedef GaudiAlg::HistoID HistoID
 the actual type for histogram identifier
typedef Tuples::Tuple Tuple
 the actual type of the tuple
typedef GaudiAlg::TupleID TupleID
 the actual type of N-tuple ID
typedef GaudiAlg::TupleMapTitle TupleMapTitle
 the actual type of (title) -> (tuple) mappping
typedef GaudiAlg::TupleMapNumericID TupleMapNumID
 the actual type of (Numeric ID) -> (tuple) mappping
typedef GaudiAlg::TupleMapLiteralID TupleMapLitID
 the actual type of (Literal ID) -> (tuple) mappping

Public Member Functions

Tuple nTuple (const std::string &title, const CLID &clid=CLID_ColumnWiseTuple) const
 Access an N-Tuple object (book on-demand) with unique identifier.
Tuple nTuple (const TupleID &ID, const std::string &title, const CLID &clid=CLID_ColumnWiseTuple) const
 Access an N-Tuple object (book on-demand) with forced identifier.
Tuple evtCol (const std::string &title, const CLID &clid=CLID_ColumnWiseTuple) const
 Access an Event Tag Collection object (book on-demand) with unique identifier.
Tuple evtCol (const TupleID &ID, const std::string &title, const CLID &clid=CLID_ColumnWiseTuple) const
 Access an Event Tag Collection object (book on-demand) with forced identifier.
bool produceNTuples () const
 get the flag for N-Tuple production (property "NTupleProduce")
bool splitNTupleDir () const
 get the flag for N-Tuple path split (property "NTupleSplitDir")
const std::stringnTupleLUN () const
 get the logical unit for N-Tuples (property "NTupleLUN")
const std::stringnTupleTopDir () const
 get the top-level N-Tuple directory (property "NTupleTopDir")
const std::stringnTupleDir () const
 get the N-Tuple directory (property "NTupleDir")
const TupleID::NumericID nTupleOffSet () const
 get the value for N-Tuple offset (property "NTupleOffSet")
std::string nTuplePath () const
 get the constructed N-Tuple path
bool produceEvtCols () const
 get the flag for Event Tag Collection production (property "EvtColsProduce")
bool splitEvtColDir () const
 get the flag for Event Tag Collection path split (property "EvtColsSplitDir")
const std::stringevtColLUN () const
 get the logical unit for Event Tag Collections (property "EvtColsLUN")
const std::stringevtColTopDir () const
 get the top-level Event Tag Collection directory (property "EvtColsTopDir")
const std::stringevtColDir () const
 get the Event Tag Collection directory (property "EvtColsDir")
const TupleID::NumericID evtColOffSet () const
 get the value for Event Tag Collection offset (property "EvtColsOffSet")
std::string evtColPath () const
 get the constructed Event Tag Collection path
bool tuplesPrint () const
 print tuples at finalization
bool evtColsPrint () const
 print event collections at finalization
long printTuples () const
 perform the actual printout of N-tuples
long printEvtCols () const
 perform the actual printout of Evt Tag Collections
bool nTupleExists (const TupleID &ID) const
 check the existence AND validity of the N-Tuple with the given ID
bool evtColExists (const TupleID &ID) const
 check the existence AND validity of the Event Tag Collection with the given ID
 GaudiTuples (const std::string &name, ISvcLocator *pSvcLocator)
 Algorithm constructor.
 GaudiTuples (const std::string &type, const std::string &name, const IInterface *parent)
 Tool constructor.
virtual ~GaudiTuples ()
 Destructor.

Protected Member Functions

const TupleMapTitlenTupleMapTitle () const
 access to the all ntuples by title
const TupleMapTitleevtColMapTitle () const
 access to the all evet tag collections by title
const TupleMapNumIDnTupleMapNumID () const
 access to the all ntuples by numeric ID
const TupleMapNumIDevtColMapNumID () const
 access to the all evet tag collections by numeric ID
const TupleMapLitIDnTupleMapLitID () const
 access to the all ntuples by literal ID
const TupleMapLitIDevtColMapLitID () const
 access to the all evet tag collections by literal ID
virtual Tuples::TupleObjcreateNTuple (const std::string &name, NTuple::Tuple *tuple, const CLID &clid) const
 create TupleObj
virtual Tuples::TupleObjcreateEvtCol (const std::string &name, NTuple::Tuple *tuple, const CLID &clid) const
 create TupleObj for event tag collection
virtual StatusCode initialize ()
 standard initialization method
virtual StatusCode finalize ()
 standard finalization method

Private Member Functions

void initGaudiTuplesConstructor ()
 Constructor initialisation and job options.

Private Attributes

bool m_produceNTuples
 flag to switch ON/OFF the ntuple filling and booking
bool m_splitNTupleDir
 flag to indicate splitting of tuple directories (useful for HBOOK)
std::string m_nTupleLUN
 name of logical unit for tuple directory
std::string m_nTupleTopDir
 top level tuple directory
std::string m_nTupleDir
 local tuple directory
TupleID::NumericID m_nTupleOffSet
 the offset for ntuple numerical ID
bool m_produceEvtCols
 flag to switch ON/OFF the ntuple filling and booking
bool m_splitEvtColDir
 flag to indicate splitting of tuple directories (useful for HBOOK)
std::string m_evtColLUN
 name of Logical Unit for tuple directory
std::string m_evtColTopDir
 top level tuple directory
std::string m_evtColDir
 local tuple directory
TupleID::NumericID m_evtColOffSet
 the offset for ntuple numerical ID
bool m_tuplesPrint
 print tuples at finalization? print tuples at finalization?
bool m_evtColsPrint
 print event collections at finalization print event collections at finalization
TupleMapTitle m_nTupleMapTitle
 the actual storage of ntuples by title
TupleMapNumID m_nTupleMapNumID
 the actual storage of ntuples by numeric ID
TupleMapLitID m_nTupleMapLitID
 the actual storage of ntuples by literal ID
TupleMapTitle m_evtColMapTitle
 the actual storage of event collections by title
TupleMapNumID m_evtColMapNumID
 the actual storage of event collections by numeric ID
TupleMapLitID m_evtColMapLitID
 the actual storage of event collections by literal ID


Member Typedef Documentation

template<class PBASE>
typedef GaudiAlg::HistoID GaudiTuples< PBASE >::HistoID

the actual type for histogram identifier

Definition at line 46 of file GaudiTuples.h.

template<class PBASE>
typedef Tuples::Tuple GaudiTuples< PBASE >::Tuple

the actual type of the tuple

Reimplemented in TupleTool.

Definition at line 49 of file GaudiTuples.h.

template<class PBASE>
typedef GaudiAlg::TupleID GaudiTuples< PBASE >::TupleID

the actual type of N-tuple ID

Reimplemented in TupleTool.

Definition at line 51 of file GaudiTuples.h.

template<class PBASE>
typedef GaudiAlg::TupleMapTitle GaudiTuples< PBASE >::TupleMapTitle

the actual type of (title) -> (tuple) mappping

Definition at line 54 of file GaudiTuples.h.

template<class PBASE>
typedef GaudiAlg::TupleMapNumericID GaudiTuples< PBASE >::TupleMapNumID

the actual type of (Numeric ID) -> (tuple) mappping

Definition at line 56 of file GaudiTuples.h.

template<class PBASE>
typedef GaudiAlg::TupleMapLiteralID GaudiTuples< PBASE >::TupleMapLitID

the actual type of (Literal ID) -> (tuple) mappping

Definition at line 58 of file GaudiTuples.h.


Constructor & Destructor Documentation

template<class PBASE>
GaudiTuples< PBASE >::GaudiTuples ( const std::string name,
ISvcLocator pSvcLocator 
)

Algorithm constructor.

template<class PBASE>
GaudiTuples< PBASE >::GaudiTuples ( const std::string type,
const std::string name,
const IInterface parent 
)

Tool constructor.

template<class PBASE>
GaudiTuples< PBASE >::~GaudiTuples (  )  [virtual]

Destructor.

Definition at line 38 of file GaudiTuples.icpp.

00038 {}


Member Function Documentation

template<class PBASE>
Tuples::Tuple GaudiTuples< PBASE >::nTuple ( const std::string title,
const CLID clid = CLID_ColumnWiseTuple 
) const

Access an N-Tuple object (book on-demand) with unique identifier.

  Tuple tuple = nTuple( "My N-Tuple" ) ;
  tuple->column( "A" , sin(0.1) );
  tuple->column( "B" , cos(0.1) );
  tuple->column( "C" , tan(0.1) );
  tuple->write();

Attention:
The NTuple will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first NTuple booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given NTuple will be given when filled under conditional statements, since in these circumstances the order in which the NTuple are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given NTuple could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.
Parameters:
title Unique title for N-Tuple
clid N-Tuple class identifier (row or column wise)
Returns:
ntuple The ntuple object

Reimplemented in TupleTool.

Definition at line 147 of file GaudiTuples.icpp.

References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and StatusCode::SUCCESS.

Referenced by GaudiPython::TupleAlgDecorator::nTuple().

00149 {
00150   // look up in the table
00151   Tuples::TupleObj* tuple = m_nTupleMapTitle[ title ]  ;
00152   if ( 0 != tuple ) { return Tuple( tuple ) ; }                  // RETURN
00153   // Create the tuple ID
00154   TupleID ID;
00155   if ( this->useNumericAutoIDs() || title.empty() )
00156   {
00157     if ( ! this->useNumericAutoIDs() )
00158     {
00159       this -> Warning( "Cannot generate automatic literal ID from an empty title ! Using numeric ID instead for nTuple ID",
00160                        StatusCode::SUCCESS );
00161     }
00162     // propose the tuple ID
00163     ID = TupleID ( m_nTupleMapNumID.size() + 1 + nTupleOffSet() );
00164     // adjust the proposed ID
00165     while ( nTupleExists(ID) || evtColExists(ID) ) { ++ID ; }
00166   }
00167   else
00168   {
00169     // use the title to create a unique literal ID
00170     ID = TupleID( this->convertTitleToID(title) );
00171     // Just in case ...
00172     while ( nTupleExists(ID) || evtColExists(ID) ) { ID = TupleID(ID.idAsString()+"_"); }
00173   }
00174   // return
00175   return nTuple( ID , title , clid ) ;
00176 }

template<class PBASE>
Tuples::Tuple GaudiTuples< PBASE >::nTuple ( const TupleID ID,
const std::string title,
const CLID clid = CLID_ColumnWiseTuple 
) const

Access an N-Tuple object (book on-demand) with forced identifier.

  // Book Ntuple with a numeric ID
  Tuple tuple = nTuple(  1,  "My tuple" ) ;
  // ... or
  Tuple tuple = nTuple( "1", "My tuple" ) ;

  // ... or, Book Ntuple with a literal ID
  Tuple tuple = nTuple( "mytuple", "My tuple" ) ;

  // ... or, Book Ntuple with a literal ID in a sub-dir
  Tuple tuple = nTuple( "subdir/mytuple", "My tuple" ) ;

  // Fill and write NTuple
  tuple->column( "A" , sin(0.1) );
  tuple->column( "B" , cos(0.1) );
  tuple->column( "C" , tan(0.1) );
  tuple->write();

Attention:
If the N-Tuple with given ID is already booked through automatic assignement of N-Tuple ID, the error will not be detected. Therefore it is recommended to use a non-trivial N-Tuple ID offset (property "NTupleOffSet") if one need to combine these techniques together It is still desirable to use the unique N-Tuple title to avoid a bad interference.
Parameters:
ID The forced N-Tuple ID
title Unique title for N-Tuple
clid N-Tuple class identifier (row or column wise)
Returns:
ntuple The ntuple object

Definition at line 221 of file GaudiTuples.icpp.

References Gaudi::Histos::book(), MSG::DEBUG, std::basic_string< _CharT, _Traits, _Alloc >::empty(), and endreq().

00224 {
00225   // Check ID
00226   if ( ID.undefined() )
00227   { this->Error("Undefined NTuple ID : Title='"+title1+"'"); return Tuple(0); }
00228 
00229   // look up in the table
00230   Tuples::TupleObj * tuple =
00231     ( ID.numeric() ? m_nTupleMapNumID[ID.numericID()] : m_nTupleMapLitID[ID.literalID()] ) ;
00232   if( 0 != tuple ) { return Tuple( tuple ) ; }                   // RETURN
00233 
00234   // convert ID to the string
00235   const std::string tID = ID.idAsString() ;
00236 
00237   // adjust the NTuple title
00238   const std::string title = title1.empty() ? ( "NTuple #" + tID ) : title1 ;
00239 
00240   // book new ntuple
00241   if( produceNTuples() )
00242   {
00243     // book NTupel
00244     NTuple::Tuple * tup = 0;
00245     if ( ID.numeric() )
00246     {
00247       tup = this->ntupleSvc() -> book ( nTuplePath() , ID.numericID() , clid , title );
00248     }
00249     else if ( ID.literal() )
00250     {
00251       tup = this->ntupleSvc() -> book ( nTuplePath() , ID.literalID() , clid , title );
00252     }
00253     else { this->Error( "Undefined NTuple ID" ); }
00254 
00255     // assertion
00256     this->Assert( 0 != tup , "Could not book the N-Tuple='" + title + "'" ) ;
00257     // some printout
00258     if( 0 != tup -> registry() && this->msgLevel(MSG::DEBUG) )
00259     { this->debug() << "Booked NTuple '" << title << "' ID=" << tID
00260                     << "' Path='"  << nTuplePath() << "' TS='"
00261                     << tup -> registry() -> identifier() << "'" << endreq; }
00262 
00263     tuple = createNTuple ( title , tup                , clid ) ;
00264   }
00265   else
00266   {
00267     tuple = createNTuple ( title , (NTuple::Tuple*) 0 , clid ) ;
00268   }
00269   // increment the reference
00270   tuple -> addRef();
00271   if   ( ID.numeric() ) { m_nTupleMapNumID [ ID.numericID() ] = tuple ; }
00272   else                  { m_nTupleMapLitID [ ID.literalID() ] = tuple ; }
00273   tuple -> addRef();
00274   m_nTupleMapTitle[ title ] = tuple ;
00275   // return
00276   return Tuple( tuple ) ;
00277 };

template<class PBASE>
Tuples::Tuple GaudiTuples< PBASE >::evtCol ( const std::string title,
const CLID clid = CLID_ColumnWiseTuple 
) const

Access an Event Tag Collection object (book on-demand) with unique identifier.

  Tuple tuple = evtCol( "My Tag Collection" ) ;
  tuple->column( "A" , sin(0.1) );
  tuple->column( "B" , cos(0.1) );
  tuple->column( "C" , tan(0.1) );
  tuple->write();

The Event Tag Collection will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first Event Tag Collection booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given Event Tag Collection will be given when filled under conditional statements, since in these circumstances the order in which the Event Tag Collection are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given Event Tag Collection could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

Parameters:
title Unique title for Event Tag Collection
clid N-Tuple class identifier (row or column wise)
Returns:
ntuple The Event Tag Collection object

Reimplemented in TupleTool.

Definition at line 184 of file GaudiTuples.icpp.

References std::basic_string< _CharT, _Traits, _Alloc >::empty(), and StatusCode::SUCCESS.

Referenced by GaudiPython::TupleAlgDecorator::evtCol().

00186 {
00187   // look up in the table
00188   Tuples::TupleObj* tuple = m_evtColMapTitle[ title ]  ;
00189   if ( 0 != tuple ) { return Tuple( tuple ) ; }                   // RETURN
00190   // Create the tuple ID
00191   TupleID ID;
00192   if ( this->useNumericAutoIDs() || title.empty() )
00193   {
00194     if ( ! this->useNumericAutoIDs() )
00195     {
00196       this -> Warning( "Cannot generate automatic literal ID from an empty title ! Using numeric ID instead for evtCol ID",
00197                        StatusCode::SUCCESS );
00198     }
00199     // proposed the tuple ID
00200     ID = m_evtColMapNumID.size() + 1 + evtColOffSet() ;
00201     // adjust the proposed ID
00202     while ( nTupleExists(ID) || evtColExists(ID) ) { ++ID ; }
00203   }
00204   else
00205   {
00206     // use the title to create a unique literal ID
00207     ID = TupleID( this->convertTitleToID(title) );
00208     // Just in case ...
00209     while ( nTupleExists(ID) || evtColExists(ID) ) { ID = TupleID(ID.idAsString()+"_"); }
00210   }
00211   // return
00212   return evtCol( ID , title , clid ) ;
00213 }

template<class PBASE>
Tuples::Tuple GaudiTuples< PBASE >::evtCol ( const TupleID ID,
const std::string title,
const CLID clid = CLID_ColumnWiseTuple 
) const

Access an Event Tag Collection object (book on-demand) with forced identifier.

  // Book Ntuple with a numeric ID
  Tuple tuple = evtCol(  1,  "My Tag Collection" ) ;
  // ... or
  Tuple tuple = evtCol( "1", "My Tag Collection" ) ;

  // ... or, Book Ntuple with a literal ID
  Tuple tuple = evtCol( "mytuple", "My Tag Collection" ) ;

  // ... or, Book Ntuple with a literal ID in a sub-dir
  Tuple tuple = evtCol( "subdir/mytuple", "My Tag Collection" ) ;

  // Fill and write
  tuple->column( "A" , sin(0.1) );
  tuple->column( "B" , cos(0.1) );
  tuple->column( "C" , tan(0.1) );
  tuple->write();

Attention:
If the Event Tag Collection with given ID is already booked through automatic assignement of Event Tag Collection ID, the error will not be detected. Therefore it is recommended to use a non-trivial Event Tag Collection ID offset (property "EvtColOffSet") if one need to combine these techniques together It is still desirable to use the unique Event Tag Collection title to avoid a bad interference.
Parameters:
ID The forced Event Tag Collection ID
title Unique title for Event Tag Collection
clid N-Tuple class identifier (row or column wise)
Returns:
ntuple The Event Tag Collection object

Definition at line 282 of file GaudiTuples.icpp.

References MSG::DEBUG, std::basic_string< _CharT, _Traits, _Alloc >::empty(), and endreq().

00285 {
00286   // Check ID
00287   if ( ID.undefined() )
00288   { this->Error("Undefined NTuple ID : Title='"+title1+"'"); return Tuple(0); }
00289 
00290   // look up in the table
00291   Tuples::TupleObj* tuple =
00292     ( ID.numeric() ? m_evtColMapNumID[ID.numericID()] : m_evtColMapLitID[ID.literalID()] ) ;
00293   if ( 0 != tuple ) { return Tuple( tuple ) ; }                   // RETURN
00294 
00295   // convert ID to the string
00296   const std::string tID = ID.idAsString() ;
00297 
00298   // adjust the NTuple title
00299   const std::string title = title1.empty() ? ( "EvtCol #" + tID ) : title1 ;
00300 
00301   // book new ntuple
00302   if( produceEvtCols() )
00303   {
00304     // book NTuple
00305     NTuple::Tuple* tup = 0;
00306     if (  ID.numeric() )
00307     {
00308       tup = this->evtColSvc()->book ( evtColPath() , ID.numericID() , clid , title ) ;
00309     }
00310     else if ( ID.literal() )
00311     {
00312       tup = this->evtColSvc()->book ( evtColPath() , ID.literalID() , clid , title ) ;
00313     }
00314     else { this->Error( "Undefined NTuple ID" ); }
00315 
00316     // assertion
00317     this->Assert( 0 != tup , "Could not book the EvtCol='" + title + "'" ) ;
00318     // some printout
00319     if( 0 != tup -> registry() && this->msgLevel(MSG::DEBUG) )
00320     { this->debug() << "Booked EvtCol '" << title << "' ID=" << tID
00321                     << "' Path='" << evtColPath() << "' TS='"
00322                     << tup -> registry() -> identifier() << "'" << endreq ; }
00323 
00324     tuple = createEvtCol ( title , tup                , clid ) ;
00325   }
00326   else
00327   {
00328     tuple = createEvtCol ( title , (NTuple::Tuple*) 0 , clid ) ;
00329   }
00330   // increment the reference
00331   tuple -> addRef();
00332   if   ( ID.numeric() ) { m_evtColMapNumID [ ID.numericID() ] = tuple ; }
00333   else                  { m_evtColMapLitID [ ID.literalID() ] = tuple ; }
00334   tuple -> addRef();
00335   m_evtColMapTitle[ title ] = tuple ;
00336   // return
00337   return Tuple( tuple ) ;
00338 }

template<class PBASE>
bool GaudiTuples< PBASE >::produceNTuples (  )  const [inline]

get the flag for N-Tuple production (property "NTupleProduce")

Definition at line 216 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::initialize().

00216 { return m_produceNTuples ; }

template<class PBASE>
bool GaudiTuples< PBASE >::splitNTupleDir (  )  const [inline]

get the flag for N-Tuple path split (property "NTupleSplitDir")

Definition at line 218 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::nTuplePath().

00218 { return m_splitNTupleDir ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::nTupleLUN (  )  const [inline]

get the logical unit for N-Tuples (property "NTupleLUN")

Definition at line 220 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::nTuplePath().

00220 { return m_nTupleLUN      ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::nTupleTopDir (  )  const [inline]

get the top-level N-Tuple directory (property "NTupleTopDir")

Definition at line 222 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::nTuplePath().

00222 { return m_nTupleTopDir   ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::nTupleDir (  )  const [inline]

get the N-Tuple directory (property "NTupleDir")

Definition at line 224 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::nTuplePath().

00224 { return m_nTupleDir      ; }

template<class PBASE>
const TupleID::NumericID GaudiTuples< PBASE >::nTupleOffSet (  )  const [inline]

get the value for N-Tuple offset (property "NTupleOffSet")

Definition at line 226 of file GaudiTuples.h.

00226 { return m_nTupleOffSet   ; }

template<class PBASE>
std::string GaudiTuples< PBASE >::nTuplePath (  )  const [inline]

get the constructed N-Tuple path

Definition at line 228 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::initialize(), and GaudiTuples< PBASE >::printTuples().

00229   {
00230     const std::string path = nTupleLUN() + "/" + nTupleTopDir() + nTupleDir();
00231     return ( splitNTupleDir() ? dirHbookName( path ) : path ) ;
00232   }

template<class PBASE>
bool GaudiTuples< PBASE >::produceEvtCols (  )  const [inline]

get the flag for Event Tag Collection production (property "EvtColsProduce")

Definition at line 235 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::initialize().

00235 { return m_produceEvtCols ; }

template<class PBASE>
bool GaudiTuples< PBASE >::splitEvtColDir (  )  const [inline]

get the flag for Event Tag Collection path split (property "EvtColsSplitDir")

Definition at line 237 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColPath().

00237 { return m_splitEvtColDir ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::evtColLUN (  )  const [inline]

get the logical unit for Event Tag Collections (property "EvtColsLUN")

Definition at line 239 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColPath().

00239 { return m_evtColLUN      ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::evtColTopDir (  )  const [inline]

get the top-level Event Tag Collection directory (property "EvtColsTopDir")

Definition at line 241 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColPath().

00241 { return m_evtColTopDir   ; }

template<class PBASE>
const std::string& GaudiTuples< PBASE >::evtColDir (  )  const [inline]

get the Event Tag Collection directory (property "EvtColsDir")

Definition at line 243 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColPath().

00243 { return m_evtColDir      ; }

template<class PBASE>
const TupleID::NumericID GaudiTuples< PBASE >::evtColOffSet (  )  const [inline]

get the value for Event Tag Collection offset (property "EvtColsOffSet")

Definition at line 245 of file GaudiTuples.h.

00245 { return m_evtColOffSet   ; }

template<class PBASE>
std::string GaudiTuples< PBASE >::evtColPath (  )  const [inline]

get the constructed Event Tag Collection path

Definition at line 247 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::initialize(), and GaudiTuples< PBASE >::printEvtCols().

00248   {
00249     std::string path = evtColLUN() + "/" + evtColTopDir() + evtColDir();
00250     return ( splitEvtColDir() ? dirHbookName( path ) : path );
00251   }

template<class PBASE>
bool GaudiTuples< PBASE >::tuplesPrint (  )  const [inline]

print tuples at finalization

Definition at line 254 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize().

00254 { return m_tuplesPrint  ; }

template<class PBASE>
bool GaudiTuples< PBASE >::evtColsPrint (  )  const [inline]

print event collections at finalization

Definition at line 256 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize().

00256 { return m_evtColsPrint ; }

template<class PBASE>
long GaudiTuples< PBASE >::printTuples (  )  const

perform the actual printout of N-tuples

Returns:
number of active N-Tuples

Definition at line 374 of file GaudiTuples.icpp.

References MSG::DEBUG, GaudiUtils::Map< K, T, M >::end(), endreq(), GaudiTuples< PBASE >::nTupleMapLitID(), GaudiTuples< PBASE >::nTupleMapNumID(), GaudiTuples< PBASE >::nTupleMapTitle(), GaudiTuples< PBASE >::nTuplePath(), GaudiAlg::PrintTuple::print(), and Tuples::Tuple::tuple().

Referenced by GaudiTuples< PBASE >::finalize().

00375 {
00376 
00377   typedef std::set<const NTuple::Tuple*> _Tuples ;
00378 
00379   if ( nTupleMapTitle().empty() &&
00380        nTupleMapNumID().empty() &&
00381        nTupleMapLitID().empty() )
00382   { if (this->msgLevel(MSG::DEBUG)) this->debug() << "No N-Tuples   are booked" << endreq ; }
00383   else
00384   { this->always() << "List of booked N-Tuples in directory "
00385                    << "\"" << nTuplePath() << "\"" << endreq ; }
00386 
00387   _Tuples tuples ;
00388   { // N-Tuple by Numeric ID
00389     for ( TupleMapNumID::const_iterator entry = nTupleMapNumID().begin() ;
00390           nTupleMapNumID().end() != entry ; ++entry )
00391     {
00392       if ( 0 == entry->second ) { continue ; }
00393       const NTuple::Tuple* tuple = entry->second->tuple() ;
00394       if ( 0 == tuple )
00395       { this->error() << " NTuple::Tuple* points to NULL" << endreq ; continue ; }
00396       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00397       tuples.insert ( tuple ) ;
00398       this->always() << GaudiAlg::PrintTuple::print ( tuple , entry->first ) << endreq ;
00399     }
00400   }
00401   { // N-Tuple by Literal ID
00402     for ( TupleMapLitID::const_iterator entry = nTupleMapLitID().begin() ;
00403           nTupleMapLitID().end() != entry ; ++entry )
00404     {
00405       if ( 0 == entry->second ) { continue ; }
00406       const NTuple::Tuple* tuple = entry->second->tuple() ;
00407       if ( 0 == tuple )
00408       { this->error() << " NTuple::Tuple* points to NULL" << endreq ; continue ; }
00409       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00410       tuples.insert ( tuple ) ;
00411       this->always() << GaudiAlg::PrintTuple::print ( tuple , entry->first ) << endreq ;
00412     }
00413   }
00414   { // N-Tuples by Title
00415     for ( TupleMapTitle::const_iterator entry = nTupleMapTitle().begin() ;
00416           nTupleMapTitle().end() != entry ; ++entry )
00417     {
00418       if ( 0 == entry->second ) { continue ; }
00419       const NTuple::Tuple* tuple = entry->second->tuple() ;
00420       if ( 0 == tuple )
00421       { this->error() << " NTuple::Tuple* points to NULL" << endreq ; continue ; }
00422       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00423       tuples.insert ( tuple ) ;
00424       this->always() << GaudiAlg::PrintTuple::print ( tuple )             << endreq ;
00425     }
00426   }
00427 
00428   return tuples.size() ;
00429 };

template<class PBASE>
long GaudiTuples< PBASE >::printEvtCols (  )  const

perform the actual printout of Evt Tag Collections

Returns:
number of active Event Tag Collections

Definition at line 436 of file GaudiTuples.icpp.

References GaudiUtils::Map< K, T, M >::end(), endreq(), GaudiTuples< PBASE >::evtColMapLitID(), GaudiTuples< PBASE >::evtColMapNumID(), GaudiTuples< PBASE >::evtColMapTitle(), GaudiTuples< PBASE >::evtColPath(), GaudiAlg::PrintTuple::print(), Gaudi::Utils::toString(), and Tuples::Tuple::tuple().

Referenced by GaudiTuples< PBASE >::finalize().

00437 {
00438   typedef std::set<const NTuple::Tuple*> _Tuples ;
00439 
00440   if ( evtColMapTitle().empty() &&
00441        evtColMapNumID().empty() &&
00442        evtColMapLitID().empty() )
00443   { this->always() << "No Event Tag Collections are booked" << endreq ; }
00444   else
00445   { this->always() << "List of booked Event Tag Collections in directory "
00446                    << "\"" << evtColPath() << "\"" << endreq ; }
00447 
00448   _Tuples tuples ;
00449   { // EvtCols by Numeric ID
00450     for ( TupleMapNumID::const_iterator entry = evtColMapNumID().begin() ;
00451           evtColMapNumID().end() != entry ; ++entry )
00452     {
00453       if ( 0 == entry->second ) { continue ; }
00454       const NTuple::Tuple* tuple = entry->second->tuple() ;
00455       if ( 0 == tuple )
00456       { this->error() << "NTuple::Tuple* points to NULL" << endreq ; continue ; }
00457       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00458       tuples.insert ( tuple ) ;
00459       this->always() << GaudiAlg::PrintTuple::print ( tuple , entry->first )
00460                      << " Items:"
00461                      << Gaudi::Utils::toString ( entry->second->items() )    << endreq ;
00462     }
00463   }
00464   { // EvtCols by literal ID
00465     for ( TupleMapLitID::const_iterator entry = evtColMapLitID().begin() ;
00466           evtColMapLitID().end() != entry ; ++entry )
00467     {
00468       if ( 0 == entry->second ) { continue ; }
00469       const NTuple::Tuple* tuple = entry->second->tuple() ;
00470       if ( 0 == tuple )
00471       { this->error() << "NTuple::Tuple* points to NULL" << endreq ; continue ; }
00472       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00473       tuples.insert ( tuple ) ;
00474       this->always() << GaudiAlg::PrintTuple::print ( tuple , entry->first )
00475                      << " Items:"
00476                      << Gaudi::Utils::toString ( entry->second->items() )    << endreq ;
00477     }
00478   }
00479   { // EvtCols by Title
00480     for ( TupleMapTitle::const_iterator entry = evtColMapTitle().begin() ;
00481           evtColMapTitle().end() != entry ; ++entry )
00482     {
00483       if ( 0 == entry->second ) { continue ; }
00484       const NTuple::Tuple* tuple = entry->second->tuple() ;
00485       if ( 0 == tuple )
00486       { this->error() << "NTuple::Tuple* points to NULL" << endreq ; continue ; }
00487       if ( tuples.end() != tuples.find( tuple ) ) { continue ; }
00488       tuples.insert ( tuple ) ;
00489       this->always() << GaudiAlg::PrintTuple::print ( tuple )
00490                      << " Items:"
00491                      << Gaudi::Utils::toString ( entry->second->items() ) << endreq ;
00492     }
00493   }
00494 
00495   return tuples.size() ;
00496 }

template<class PBASE>
bool GaudiTuples< PBASE >::nTupleExists ( const TupleID ID  )  const

check the existence AND validity of the N-Tuple with the given ID

Definition at line 502 of file GaudiTuples.icpp.

References GaudiUtils::Map< K, T, M >::end(), GaudiUtils::Map< K, T, M >::find(), GaudiTuples< PBASE >::m_nTupleMapLitID, and GaudiTuples< PBASE >::m_nTupleMapNumID.

00503 {
00504   bool OK(false);
00505   if ( ID.numeric() )
00506   {
00507     TupleMapNumID::iterator found = m_nTupleMapNumID.find( ID.numericID() ) ;
00508     OK = ( m_nTupleMapNumID.end() != found );
00509   }
00510   else
00511   {
00512     TupleMapLitID::iterator found = m_nTupleMapLitID.find( ID.literalID() ) ;
00513     OK = ( m_nTupleMapLitID.end() != found );
00514   }
00515   return OK;
00516 }

template<class PBASE>
bool GaudiTuples< PBASE >::evtColExists ( const TupleID ID  )  const

check the existence AND validity of the Event Tag Collection with the given ID

Definition at line 522 of file GaudiTuples.icpp.

References GaudiUtils::Map< K, T, M >::end(), GaudiUtils::Map< K, T, M >::find(), GaudiTuples< PBASE >::m_evtColMapLitID, and GaudiTuples< PBASE >::m_evtColMapNumID.

00523 {
00524   bool OK(false);
00525   if ( ID.numeric() )
00526   {
00527     TupleMapNumID::iterator found = m_evtColMapNumID.find( ID.numericID() ) ;
00528     OK = ( m_evtColMapNumID.end() != found );
00529   }
00530   else
00531   {
00532     TupleMapLitID::iterator found = m_evtColMapLitID.find( ID.literalID() ) ;
00533     OK = ( m_evtColMapLitID.end() != found );
00534   }
00535   return OK;
00536 }

template<class PBASE>
const TupleMapTitle& GaudiTuples< PBASE >::nTupleMapTitle (  )  const [inline, protected]

access to the all ntuples by title

Definition at line 281 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printTuples().

00281 { return m_nTupleMapTitle ; }

template<class PBASE>
const TupleMapTitle& GaudiTuples< PBASE >::evtColMapTitle (  )  const [inline, protected]

access to the all evet tag collections by title

Definition at line 283 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printEvtCols().

00283 { return m_evtColMapTitle ; }

template<class PBASE>
const TupleMapNumID& GaudiTuples< PBASE >::nTupleMapNumID (  )  const [inline, protected]

access to the all ntuples by numeric ID

Definition at line 285 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printTuples().

00285 { return m_nTupleMapNumID ; }

template<class PBASE>
const TupleMapNumID& GaudiTuples< PBASE >::evtColMapNumID (  )  const [inline, protected]

access to the all evet tag collections by numeric ID

Definition at line 287 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printEvtCols().

00287 { return m_evtColMapNumID ; }

template<class PBASE>
const TupleMapLitID& GaudiTuples< PBASE >::nTupleMapLitID (  )  const [inline, protected]

access to the all ntuples by literal ID

Definition at line 289 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printTuples().

00289 { return m_nTupleMapLitID ; }

template<class PBASE>
const TupleMapLitID& GaudiTuples< PBASE >::evtColMapLitID (  )  const [inline, protected]

access to the all evet tag collections by literal ID

Definition at line 291 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< PBASE >::printEvtCols().

00291 { return m_evtColMapLitID ; }

template<class PBASE>
Tuples::TupleObj * GaudiTuples< PBASE >::createNTuple ( const std::string name,
NTuple::Tuple tuple,
const CLID clid 
) const [protected, virtual]

create TupleObj

Attention:
The method should never used directly by users
Parameters:
name name/title
tuple the underlying ntuple implementation
clid unique classID for ntuple
Returns:
pointer to newly created TupleObj

Definition at line 346 of file GaudiTuples.icpp.

References Tuples::createTupleObj(), name, and Tuples::NTUPLE.

00349 {
00350   return Tuples::createTupleObj
00351     ( this , "Tuple '" + name  + "'" , tuple , clid , Tuples::NTUPLE ) ;
00352 }

template<class PBASE>
Tuples::TupleObj * GaudiTuples< PBASE >::createEvtCol ( const std::string name,
NTuple::Tuple tuple,
const CLID clid 
) const [protected, virtual]

create TupleObj for event tag collection

Attention:
The method should never used directly by users
Parameters:
name name/title
tuple the underlying ntuple implementation
clid unique classID for ntuple
Returns:
pointer to newly created TupelObj

Definition at line 360 of file GaudiTuples.icpp.

References Tuples::createTupleObj(), Tuples::EVTCOL, and name.

00363 {
00364   return Tuples::createTupleObj
00365     ( this , "EvtCol '" + name  + "'" , tuple , clid , Tuples::EVTCOL ) ;
00366 }

template<class PBASE>
StatusCode GaudiTuples< PBASE >::initialize (  )  [protected, virtual]

standard initialization method

Returns:
status code

Reimplemented in GaudiTupleAlg, and GaudiTupleTool.

Definition at line 44 of file GaudiTuples.icpp.

References MSG::DEBUG, endreq(), GaudiTuples< PBASE >::evtColPath(), StatusCode::isFailure(), GaudiTuples< PBASE >::nTuplePath(), GaudiTuples< PBASE >::produceEvtCols(), GaudiTuples< PBASE >::produceNTuples(), and StatusCode::SUCCESS.

Referenced by GaudiTupleTool::initialize(), and GaudiTupleAlg::initialize().

00045 {
00046   // initialize base class
00047   const StatusCode sc = PBASE::initialize();
00048   if ( sc.isFailure() ) return sc;
00049 
00050   if ( produceNTuples() )
00051   {
00052     // check the existance of service
00053     if ( 0 == this->ntupleSvc() )
00054     { return  this->Error( "INTupleSvc* points to NULL!" ); }
00055     // Print ntuple path
00056     Print( "The N-Tuple   path is set to be '" + nTuplePath() + "'", 
00057            StatusCode(StatusCode::SUCCESS, true) , MSG::DEBUG);
00058   }
00059   else
00060   { this->debug() << "Production of N-Tuples is switched OFF" << endreq; }
00061 
00062   if ( produceEvtCols() )
00063   {
00064     // check the existance of service
00065     if ( 0 == this->evtColSvc() )
00066     { return  this->Error( "INTupleSvc* points to NULL!" ); }
00067     // Print EvtCol path
00068     Print( "The EventCol  path is set to be '" + evtColPath() + "'", 
00069            StatusCode(StatusCode::SUCCESS, true) , MSG::DEBUG );
00070   }
00071   else
00072   { this->debug() << "Production of Event Collections is switched OFF" << endreq; }
00073 
00074   return sc;
00075 }

template<class PBASE>
StatusCode GaudiTuples< PBASE >::finalize (  )  [protected, virtual]

standard finalization method

Returns:
status code

Reimplemented in GaudiTupleAlg, and GaudiTupleTool.

Definition at line 81 of file GaudiTuples.icpp.

References GaudiUtils::Map< K, T, M >::begin(), GaudiUtils::Map< K, T, M >::clear(), GaudiUtils::Map< K, T, M >::end(), endreq(), GaudiTuples< PBASE >::evtColMapLitID(), GaudiTuples< PBASE >::evtColMapNumID(), GaudiTuples< PBASE >::evtColMapTitle(), GaudiTuples< PBASE >::evtColsPrint(), GaudiTuples< PBASE >::m_evtColMapLitID, GaudiTuples< PBASE >::m_evtColMapNumID, GaudiTuples< PBASE >::m_evtColMapTitle, GaudiTuples< PBASE >::m_nTupleMapLitID, GaudiTuples< PBASE >::m_nTupleMapNumID, GaudiTuples< PBASE >::m_nTupleMapTitle, GaudiTuples< PBASE >::nTupleMapLitID(), GaudiTuples< PBASE >::nTupleMapNumID(), GaudiTuples< PBASE >::nTupleMapTitle(), GaudiTuples< PBASE >::printEvtCols(), GaudiTuples< PBASE >::printTuples(), GaudiTuples< PBASE >::produceEvtCols(), GaudiTuples< PBASE >::produceNTuples(), GaudiUtils::Map< K, T, M >::size(), and GaudiTuples< PBASE >::tuplesPrint().

Referenced by GaudiTupleTool::finalize(), and GaudiTupleAlg::finalize().

00082 {
00083   if ( !( nTupleMapTitle() .empty() &&
00084           nTupleMapNumID() .empty() &&
00085           nTupleMapLitID() .empty() &&
00086           evtColMapTitle() .empty() &&
00087           evtColMapNumID() .empty() &&
00088           evtColMapLitID() .empty()
00089           ) )
00090   {
00091     const int nNtuples = nTupleMapNumID().size() + nTupleMapLitID().size();
00092     const int nEvtCols = evtColMapNumID().size() + evtColMapLitID().size();
00093     this->always()
00094       << "Booked " << nNtuples << " N-Tuples and " << nEvtCols
00095       << " Event Tag Collections" << endreq ;
00096   }
00097 
00098   if ( produceNTuples () && tuplesPrint  () ) { printTuples  () ; }
00099   if ( produceEvtCols () && evtColsPrint () ) { printEvtCols () ; }
00100 
00101   { // release ntuples and clear the container
00102     for( TupleMapTitle::iterator itup = m_nTupleMapTitle.begin() ;
00103          m_nTupleMapTitle.end() != itup ; ++itup )
00104     { if( 0 != itup->second ) { itup->second->release() ; } }
00105     m_nTupleMapTitle.clear() ;
00106   }
00107   { // release ntuples and clear the container
00108     for( TupleMapNumID::iterator itup = m_nTupleMapNumID.begin() ;
00109          m_nTupleMapNumID.end() != itup ; ++itup )
00110     { if( 0 != itup->second ) { itup->second->release() ; } }
00111     m_nTupleMapNumID.clear();
00112   }
00113   { // release ntuples and clear the container
00114     for( TupleMapLitID::iterator itup = m_nTupleMapLitID.begin() ;
00115          m_nTupleMapLitID.end() != itup ; ++itup )
00116     { if( 0 != itup->second ) { itup->second->release() ; } }
00117     m_nTupleMapLitID.clear();
00118   }
00119   { // release ntuples and clear the container
00120     for( TupleMapTitle::iterator itup = m_evtColMapTitle.begin() ;
00121          m_evtColMapTitle.end() != itup ; ++itup )
00122     { if( 0 != itup->second ) { itup->second->release() ; } }
00123     m_evtColMapTitle.clear();
00124   }
00125   { // release ntuples and clear the container
00126     for( TupleMapNumID::iterator itup = m_evtColMapNumID.begin() ;
00127          m_evtColMapNumID.end() != itup ; ++itup )
00128     { if( 0 != itup->second ) { itup->second->release() ; } }
00129     m_evtColMapNumID.clear() ;
00130   }
00131   { // release ntuples and clear the container
00132     for( TupleMapLitID::iterator itup = m_evtColMapLitID.begin() ;
00133          m_evtColMapLitID.end() != itup ; ++itup )
00134     { if( 0 != itup->second ) { itup->second->release() ; } }
00135     m_evtColMapLitID.clear() ;
00136   }
00137 
00138   // finalize base class
00139   return PBASE::finalize();
00140 }

template<class PBASE>
void GaudiTuples< PBASE >::initGaudiTuplesConstructor (  )  [inline, private]

Constructor initialisation and job options.

Definition at line 348 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoTool >::GaudiTuples(), and GaudiTuples< GaudiHistoAlg >::GaudiTuples().

00349   {
00350     m_produceNTuples = true ;     // Switch ON/OFF ntuple production
00351     m_splitNTupleDir = false ;    // for HBOOK it is better to use 'true'
00352     m_nTupleLUN      = "FILE1" ;  // logical unit for ntuples
00353     m_nTupleTopDir   = "" ;       // top level ntuple directory
00354     m_nTupleDir      = this->name() ;   // ntuple directory
00355     m_nTupleOffSet   = 0  ;       // offset for ntuples
00356     //
00357     m_produceEvtCols = false ;    // Switch ON/OFF ntupel production
00358     m_splitEvtColDir = false ;    // for HBOOK it is better to use 'true'
00359     m_evtColLUN      = "EVTCOL" ; // logical unit for ntuples
00360     m_evtColTopDir   = ""    ;    // top level ntuple directory
00361     m_evtColDir      = this->name() ;   // ntuple directory
00362     m_evtColOffSet   = 0   ;      // offset for ntuples
00363     //
00364     m_tuplesPrint    = true  ;    // print tuples at end of job
00365     m_evtColsPrint   = false  ;   // print event collections at end of job
00366     //
00367     this->declareProperty ( "NTupleProduce"  , m_produceNTuples ) ;
00368     this->declareProperty ( "NTuplePrint"    , m_tuplesPrint    ) ;
00369     this->declareProperty ( "NTupleSplitDir" , m_splitNTupleDir ) ;
00370     this->declareProperty ( "NTupleOffSet"   , m_nTupleOffSet   ) ;
00371     this->declareProperty ( "NTupleLUN"      , m_nTupleLUN      ) ;
00372     this->declareProperty ( "NTupleTopDir"   , m_nTupleTopDir   ) ;
00373     this->declareProperty ( "NTupleDir"      , m_nTupleDir      ) ;
00374     //
00375     this->declareProperty ( "EvtColsProduce" , m_produceEvtCols ) ;
00376     this->declareProperty ( "EvtColsPrint"   , m_evtColsPrint   ) ;
00377     this->declareProperty ( "EvtColSplitDir" , m_splitEvtColDir ) ;
00378     this->declareProperty ( "EvtColOffSet"   , m_evtColOffSet   ) ;
00379     this->declareProperty ( "EvtColLUN"      , m_evtColLUN      ) ;
00380     this->declareProperty ( "EvtColTopDir"   , m_evtColTopDir   ) ;
00381     this->declareProperty ( "EvtColDir"      , m_evtColDir      ) ;
00382   }


Member Data Documentation

template<class PBASE>
bool GaudiTuples< PBASE >::m_produceNTuples [private]

flag to switch ON/OFF the ntuple filling and booking

Definition at line 387 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::produceNTuples().

template<class PBASE>
bool GaudiTuples< PBASE >::m_splitNTupleDir [private]

flag to indicate splitting of tuple directories (useful for HBOOK)

Definition at line 389 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::splitNTupleDir().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_nTupleLUN [private]

name of logical unit for tuple directory

Definition at line 391 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::nTupleLUN().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_nTupleTopDir [private]

top level tuple directory

Definition at line 393 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::nTupleTopDir().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_nTupleDir [private]

local tuple directory

Definition at line 395 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::nTupleDir().

template<class PBASE>
TupleID::NumericID GaudiTuples< PBASE >::m_nTupleOffSet [private]

the offset for ntuple numerical ID

Definition at line 397 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::nTupleOffSet().

template<class PBASE>
bool GaudiTuples< PBASE >::m_produceEvtCols [private]

flag to switch ON/OFF the ntuple filling and booking

Definition at line 400 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::produceEvtCols().

template<class PBASE>
bool GaudiTuples< PBASE >::m_splitEvtColDir [private]

flag to indicate splitting of tuple directories (useful for HBOOK)

Definition at line 402 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::splitEvtColDir().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_evtColLUN [private]

name of Logical Unit for tuple directory

Definition at line 404 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColLUN(), and GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_evtColTopDir [private]

top level tuple directory

Definition at line 406 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColTopDir(), and GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor().

template<class PBASE>
std::string GaudiTuples< PBASE >::m_evtColDir [private]

local tuple directory

Definition at line 408 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColDir(), and GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor().

template<class PBASE>
TupleID::NumericID GaudiTuples< PBASE >::m_evtColOffSet [private]

the offset for ntuple numerical ID

Definition at line 410 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColOffSet(), and GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor().

template<class PBASE>
bool GaudiTuples< PBASE >::m_tuplesPrint [private]

print tuples at finalization? print tuples at finalization?

Definition at line 413 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor(), and GaudiTuples< GaudiHistoAlg >::tuplesPrint().

template<class PBASE>
bool GaudiTuples< PBASE >::m_evtColsPrint [private]

print event collections at finalization print event collections at finalization

Definition at line 415 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColsPrint(), and GaudiTuples< GaudiHistoAlg >::initGaudiTuplesConstructor().

template<class PBASE>
TupleMapTitle GaudiTuples< PBASE >::m_nTupleMapTitle [mutable, private]

the actual storage of ntuples by title

Definition at line 418 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), and GaudiTuples< GaudiHistoAlg >::nTupleMapTitle().

template<class PBASE>
TupleMapNumID GaudiTuples< PBASE >::m_nTupleMapNumID [mutable, private]

the actual storage of ntuples by numeric ID

Definition at line 420 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), GaudiTuples< PBASE >::nTupleExists(), and GaudiTuples< GaudiHistoAlg >::nTupleMapNumID().

template<class PBASE>
TupleMapLitID GaudiTuples< PBASE >::m_nTupleMapLitID [mutable, private]

the actual storage of ntuples by literal ID

Definition at line 422 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::finalize(), GaudiTuples< PBASE >::nTupleExists(), and GaudiTuples< GaudiHistoAlg >::nTupleMapLitID().

template<class PBASE>
TupleMapTitle GaudiTuples< PBASE >::m_evtColMapTitle [mutable, private]

the actual storage of event collections by title

Definition at line 425 of file GaudiTuples.h.

Referenced by GaudiTuples< GaudiHistoAlg >::evtColMapTitle(), and GaudiTuples< PBASE >::finalize().

template<class PBASE>
TupleMapNumID GaudiTuples< PBASE >::m_evtColMapNumID [mutable, private]

the actual storage of event collections by numeric ID

Definition at line 427 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::evtColExists(), GaudiTuples< GaudiHistoAlg >::evtColMapNumID(), and GaudiTuples< PBASE >::finalize().

template<class PBASE>
TupleMapLitID GaudiTuples< PBASE >::m_evtColMapLitID [mutable, private]

the actual storage of event collections by literal ID

Definition at line 429 of file GaudiTuples.h.

Referenced by GaudiTuples< PBASE >::evtColExists(), GaudiTuples< GaudiHistoAlg >::evtColMapLitID(), and GaudiTuples< PBASE >::finalize().


The documentation for this class was generated from the following files:
Generated at Fri Jul 18 12:07:39 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004