ROOT logo
//-*- Mode: C++ -*-
// $Id$
#ifndef ALIHLTRUNSTATISTICS_H
#define ALIHLTRUNSTATISTICS_H

/* This file is property of and copyright by the ALICE HLT Project        * 
 * ALICE Experiment at CERN, All rights reserved.                         *
 * See cxx source for full Copyright notice                               */

/** @file   AliHLTRunStatistics.h
    @author Jochen Thaeder
    @date   
    @brief  Base class for run statistics, for all detectors
*/

// see below for class documentation
// or
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   

#include "TNamed.h"
#include "TObjArray.h"
#include "TString.h"

#include "AliHLTDataTypes.h"

/**
 * @class  AliHLTRunStatistics
 * @brief  Base class for run statistics, for all detectors
 *
 * The run statistic classes hold information / histograms about certain 
 * characteristica of the processed events. They are devided into 3 parts. 
 * A base class  @see AliHLTRunStatistics for general Information, detector 
 * specific classes like @see AliHLTTPCRunStatistics for the TPC and a summary 
 * class @see AliHLTRunStatisticsSummary which can hold several detector classes.
 *
 * This is the base class.
 *
 * Currently implemented detecor classes <br>
 * * @see AliHLTTPCRunStatistics <br>
 *
 * @ingroup alihlt_run_statistics alihlt_trigger
 */

class AliHLTRunStatistics : public TNamed {
  
public:
  
  /** constructor */
  AliHLTRunStatistics();
  /** copy constructor */
  AliHLTRunStatistics (const AliHLTRunStatistics&);
  /** assignment operator */
  AliHLTRunStatistics& operator= (const AliHLTRunStatistics&);
  /** destructor */
  virtual ~AliHLTRunStatistics();

  /// Get detector name
  TString GetDetectorName() const        { return GetName(); }

  /// Set detector name
  void SetDetectorName( TString s )      { SetName(s); }
  /// Set detector name
  void SetDetectorName(const char* name) { SetName(name); }

  /// inherited from TObject
  virtual void Print(Option_t* option) const;

  /// inherited from TObject, copy to the target object
  virtual void Copy(TObject &object) const;

  /// Inherited from TObject. Create a new clone.
  virtual TObject *Clone(const char *newname="") const;

  /// Inherited from TObject. Clear content.
  virtual void  Clear(Option_t * option ="");

  // -- event parameters ------------------------

  /// Set Number of events 
  void SetNEvents( ULong_t i )           { fNEvents = i; }

  /// Increment event count
  void IncrementNEvents()                { fNEvents++; }

  /// Get number of events
  ULong_t GetNEvents() const             { return fNEvents; }

  /// Add clone of object
  int Add(const TObject* pObject);

  /// Find an object
  virtual TObject *FindObject(const char *name) const {
    return fMyObjects.FindObject(name); }

private:

  /** Number of events */
  ULong_t fNEvents;                              // see above

  /// array of statistics objects owned by the array
  TObjArray fMyObjects;                          // see above

  ClassDef(AliHLTRunStatistics, 1);

};
#endif
 AliHLTRunStatistics.h:1
 AliHLTRunStatistics.h:2
 AliHLTRunStatistics.h:3
 AliHLTRunStatistics.h:4
 AliHLTRunStatistics.h:5
 AliHLTRunStatistics.h:6
 AliHLTRunStatistics.h:7
 AliHLTRunStatistics.h:8
 AliHLTRunStatistics.h:9
 AliHLTRunStatistics.h:10
 AliHLTRunStatistics.h:11
 AliHLTRunStatistics.h:12
 AliHLTRunStatistics.h:13
 AliHLTRunStatistics.h:14
 AliHLTRunStatistics.h:15
 AliHLTRunStatistics.h:16
 AliHLTRunStatistics.h:17
 AliHLTRunStatistics.h:18
 AliHLTRunStatistics.h:19
 AliHLTRunStatistics.h:20
 AliHLTRunStatistics.h:21
 AliHLTRunStatistics.h:22
 AliHLTRunStatistics.h:23
 AliHLTRunStatistics.h:24
 AliHLTRunStatistics.h:25
 AliHLTRunStatistics.h:26
 AliHLTRunStatistics.h:27
 AliHLTRunStatistics.h:28
 AliHLTRunStatistics.h:29
 AliHLTRunStatistics.h:30
 AliHLTRunStatistics.h:31
 AliHLTRunStatistics.h:32
 AliHLTRunStatistics.h:33
 AliHLTRunStatistics.h:34
 AliHLTRunStatistics.h:35
 AliHLTRunStatistics.h:36
 AliHLTRunStatistics.h:37
 AliHLTRunStatistics.h:38
 AliHLTRunStatistics.h:39
 AliHLTRunStatistics.h:40
 AliHLTRunStatistics.h:41
 AliHLTRunStatistics.h:42
 AliHLTRunStatistics.h:43
 AliHLTRunStatistics.h:44
 AliHLTRunStatistics.h:45
 AliHLTRunStatistics.h:46
 AliHLTRunStatistics.h:47
 AliHLTRunStatistics.h:48
 AliHLTRunStatistics.h:49
 AliHLTRunStatistics.h:50
 AliHLTRunStatistics.h:51
 AliHLTRunStatistics.h:52
 AliHLTRunStatistics.h:53
 AliHLTRunStatistics.h:54
 AliHLTRunStatistics.h:55
 AliHLTRunStatistics.h:56
 AliHLTRunStatistics.h:57
 AliHLTRunStatistics.h:58
 AliHLTRunStatistics.h:59
 AliHLTRunStatistics.h:60
 AliHLTRunStatistics.h:61
 AliHLTRunStatistics.h:62
 AliHLTRunStatistics.h:63
 AliHLTRunStatistics.h:64
 AliHLTRunStatistics.h:65
 AliHLTRunStatistics.h:66
 AliHLTRunStatistics.h:67
 AliHLTRunStatistics.h:68
 AliHLTRunStatistics.h:69
 AliHLTRunStatistics.h:70
 AliHLTRunStatistics.h:71
 AliHLTRunStatistics.h:72
 AliHLTRunStatistics.h:73
 AliHLTRunStatistics.h:74
 AliHLTRunStatistics.h:75
 AliHLTRunStatistics.h:76
 AliHLTRunStatistics.h:77
 AliHLTRunStatistics.h:78
 AliHLTRunStatistics.h:79
 AliHLTRunStatistics.h:80
 AliHLTRunStatistics.h:81
 AliHLTRunStatistics.h:82
 AliHLTRunStatistics.h:83
 AliHLTRunStatistics.h:84
 AliHLTRunStatistics.h:85
 AliHLTRunStatistics.h:86
 AliHLTRunStatistics.h:87
 AliHLTRunStatistics.h:88
 AliHLTRunStatistics.h:89
 AliHLTRunStatistics.h:90
 AliHLTRunStatistics.h:91
 AliHLTRunStatistics.h:92
 AliHLTRunStatistics.h:93
 AliHLTRunStatistics.h:94
 AliHLTRunStatistics.h:95
 AliHLTRunStatistics.h:96
 AliHLTRunStatistics.h:97
 AliHLTRunStatistics.h:98
 AliHLTRunStatistics.h:99
 AliHLTRunStatistics.h:100
 AliHLTRunStatistics.h:101
 AliHLTRunStatistics.h:102
 AliHLTRunStatistics.h:103
 AliHLTRunStatistics.h:104
 AliHLTRunStatistics.h:105
 AliHLTRunStatistics.h:106
 AliHLTRunStatistics.h:107
 AliHLTRunStatistics.h:108