3 #ifndef GAUDIALG_GAUDITUPLES_H
4 #define GAUDIALG_GAUDITUPLES_H 1
19 #include "GaudiKernel/ClassID.h"
23 #include "GaudiAlg/Maps.h"
24 #include "GaudiAlg/Tuple.h"
25 #include "GaudiAlg/TupleObj.h"
36 template <
class PBASE>
85 Tuple
nTuple (
const std::string& title ,
86 const CLID& clid = CLID_ColumnWiseTuple )
const ;
126 Tuple
nTuple (
const TupleID& ID ,
127 const std::string& title ,
128 const CLID& clid = CLID_ColumnWiseTuple )
const ;
160 Tuple evtCol (
const std::string& title ,
161 const CLID& clid = CLID_ColumnWiseTuple )
const ;
201 Tuple evtCol (
const TupleID& ID ,
202 const std::string& title ,
203 const CLID& clid = CLID_ColumnWiseTuple )
const ;
208 bool produceNTuples ()
const {
return m_produceNTuples ; }
210 bool splitNTupleDir ()
const {
return m_splitNTupleDir ; }
212 const std::string& nTupleLUN ()
const {
return m_nTupleLUN ; }
214 const std::string& nTupleTopDir ()
const {
return m_nTupleTopDir ; }
216 const std::string& nTupleDir ()
const {
return m_nTupleDir ; }
218 TupleID::NumericID nTupleOffSet ()
const {
return m_nTupleOffSet ; }
220 std::string nTuplePath ()
const;
222 bool produceEvtCols ()
const {
return m_produceEvtCols ; }
224 bool splitEvtColDir ()
const {
return m_splitEvtColDir ; }
226 const std::string& evtColLUN ()
const {
return m_evtColLUN ; }
228 const std::string& evtColTopDir ()
const {
return m_evtColTopDir ; }
230 const std::string& evtColDir ()
const {
return m_evtColDir ; }
232 TupleID::NumericID evtColOffSet ()
const {
return m_evtColOffSet ; }
234 std::string evtColPath ()
const;
236 bool tuplesPrint ()
const {
return m_tuplesPrint ; }
238 bool evtColsPrint ()
const {
return m_evtColsPrint ; }
245 long printTuples ()
const ;
249 long printEvtCols ()
const ;
254 bool nTupleExists (
const TupleID& ID )
const;
256 bool evtColExists (
const TupleID& ID )
const;
261 const TupleMapTitle& nTupleMapTitle ()
const {
return m_nTupleMapTitle ; }
263 const TupleMapTitle& evtColMapTitle ()
const {
return m_evtColMapTitle ; }
265 const TupleMapID& nTupleMapID ()
const {
return m_nTupleMapID ; }
267 const TupleMapID& evtColMapID ()
const {
return m_evtColMapID ; }
279 createNTuple (
const std::string& name ,
281 const CLID& clid )
const ;
290 createEvtCol (
const std::string& name ,
292 const CLID& clid )
const ;
301 const std::string& name ,
313 {
return i_gtInitialize(); }
322 {
return i_gtFinalize(); }
330 inline void initGaudiTuplesConstructor()
332 m_produceNTuples = true ;
333 m_splitNTupleDir =
false ;
334 m_nTupleLUN =
"FILE1" ;
335 m_nTupleTopDir =
"" ;
336 m_nTupleDir = this->name() ;
339 m_produceEvtCols =
false ;
340 m_splitEvtColDir =
false ;
341 m_evtColLUN =
"EVTCOL" ;
342 m_evtColTopDir =
"" ;
343 m_evtColDir = this->name() ;
346 m_tuplesPrint = true ;
347 m_evtColsPrint =
false ;
349 this -> declareProperty
350 (
"NTupleProduce" , m_produceNTuples ,
351 "General switch to enable/disable N-tuples" ) ;
352 this -> declareProperty
353 (
"NTuplePrint" , m_tuplesPrint ,
354 "Print N-tuple statistics" )
356 this -> declareProperty
357 (
"NTupleSplitDir" , m_splitNTupleDir ,
358 "Split long directory names into short pieces (suitable for HBOOK)" ) ;
359 this -> declareProperty
360 (
"NTupleOffSet" , m_nTupleOffSet ,
361 "Offset for numerical N-tuple ID" ) ;
362 this -> declareProperty
363 (
"NTupleLUN" , m_nTupleLUN ,
364 "Logical File Unit for N-tuples" ) ;
365 this -> declareProperty
366 (
"NTupleTopDir" , m_nTupleTopDir ,
367 "Top-level directory for N-Tuples") ;
368 this -> declareProperty
369 (
"NTupleDir" , m_nTupleDir ,
370 "Subdirectory for N-Tuples" ) ;
372 this -> declareProperty
373 (
"EvtColsProduce" , m_produceEvtCols ,
374 "General switch to enable/disable Event Tag Collections" ) ;
375 this -> declareProperty
376 (
"EvtColsPrint" , m_evtColsPrint ,
377 "Print statistics for Event Tag Collections " )
379 this -> declareProperty
380 (
"EvtColSplitDir" , m_splitEvtColDir ,
381 "Split long directory names into short pieces" ) ;
382 this -> declareProperty
383 (
"EvtColOffSet" , m_evtColOffSet ,
384 "Offset for numerical N-tuple ID" ) ;
385 this -> declareProperty
386 (
"EvtColLUN" , m_evtColLUN ,
387 "Logical File Unit for Event Tag Collections" ) ;
388 this -> declareProperty
389 (
"EvtColTopDir" , m_evtColTopDir ,
390 "Top-level directory for Event Tag Collections" ) ;
391 this -> declareProperty
392 (
"EvtColDir" , m_evtColDir ,
393 "Subdirectory for Event Tag Collections" ) ;
400 void printNTupleHandler (
Property& ) ;
402 void printEvtColHandler (
Property& ) ;
407 bool m_produceNTuples ;
409 bool m_splitNTupleDir ;
411 std::string m_nTupleLUN ;
413 std::string m_nTupleTopDir ;
415 std::string m_nTupleDir ;
417 TupleID::NumericID m_nTupleOffSet ;
420 bool m_produceEvtCols ;
422 bool m_splitEvtColDir ;
424 std::string m_evtColLUN ;
426 std::string m_evtColTopDir ;
428 std::string m_evtColDir ;
430 TupleID::NumericID m_evtColOffSet ;
435 bool m_evtColsPrint ;
438 mutable TupleMapTitle m_nTupleMapTitle ;
440 mutable TupleMapID m_nTupleMapID ;
443 mutable TupleMapTitle m_evtColMapTitle ;
445 mutable TupleMapID m_evtColMapID ;
451 #endif // GAUDIALG_GAUDITUPLES_H
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Templated base class providing common 'ntupling' methods.
GaudiAlg::ID HistoID
The actual type for histogram identifier.
A simple wrapper class over standard Gaudi NTuple::Tuple facility.
A simple wrapper class over standard Gaudi NTuple::Tuple facility.
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
GaudiAlg::ID TupleID
the actual type for N-Tuple identifier (HBOOK-style)
def nTuple
Retrieve (book-on-demand) 'Smart'-N-tuple object.
unsigned int CLID
Class ID definition.
Abstract base class which allows the user to interact with the actual N tuple implementation.
Property base class allowing Property* collections to be "homogeneous".
Common class providing an architecture-independent hash map.
GaudiUtils::HashMap< TupleID, Tuples::TupleObj * > TupleMapID
the actual type for (ID)->(tuple) map
ID class for Histogram and Ntuples.
GaudiUtils::HashMap< std::string, Tuples::TupleObj * > TupleMapTitle
the actual type for (title)->(tuple) map