ROOT logo
//-*- Mode: C++ -*-
// $Id$
/**************************************************************************
 * This file is property of and copyright by the ALICE HLT Project        * 
 * ALICE Experiment at CERN, All rights reserved.                         *
 *                                                                        *
 * Primary Authors: Jochen Thaeder <thaeder@kip.uni-heidelberg.de>        *
 *                  for The ALICE HLT Project.                            *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

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

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

#include "AliHLTRunStatistics.h"
#include <iostream>
#include <cerrno>

using std::cout;

ClassImp(AliHLTRunStatistics)
    
AliHLTRunStatistics::AliHLTRunStatistics()
  : TNamed("HLT", "HLT Run Statistics")
  , fNEvents(0)
  , fMyObjects()
{
  // see header file for class documentation
  // or
  // refer to README to build package
  // or
  // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
}

AliHLTRunStatistics::AliHLTRunStatistics (const AliHLTRunStatistics& src)
  : TNamed(src)
  , fNEvents(src.fNEvents)
  , fMyObjects()
{
  // see header file for class documentation
  for (int i=0; i<src.fMyObjects.GetEntriesFast(); i++) {
    fMyObjects.Add(src.fMyObjects.Clone());
  }
  fMyObjects.SetOwner(kTRUE);
}

AliHLTRunStatistics& AliHLTRunStatistics::operator= (const AliHLTRunStatistics& src)
{
  // see header file for class documentation
  this->~AliHLTRunStatistics();
  new (this) AliHLTRunStatistics(src);
  return *this;
}

AliHLTRunStatistics::~AliHLTRunStatistics()
{
  // see header file for class documentation
  fMyObjects.Delete();
}

void AliHLTRunStatistics::Print(Option_t* option) const
{
  // see header file for class documentation
  cout << "============ " << GetTitle() << " ============" << endl;
  cout << "\t" << GetNEvents() << " event(s)" << endl;
  for (int i=0; i<fMyObjects.GetEntriesFast(); i++) {
    fMyObjects.Print(option);
  }
  cout << "==============================================" << endl;
}

void AliHLTRunStatistics::Copy(TObject &object) const
{
  // copy this to the specified object

  AliHLTRunStatistics* pStatistics=dynamic_cast<AliHLTRunStatistics*>(&object);
  if (pStatistics) {
    // copy members if target is a AliHLTTriggerDecision
    *pStatistics=*this;
  }

  // copy the base class
  TObject::Copy(object);
}

TObject *AliHLTRunStatistics::Clone(const char */*newname*/) const
{
  // create a new clone, classname is ignored

  return new AliHLTRunStatistics(*this);
}

void  AliHLTRunStatistics::Clear(Option_t * /*option*/)
{
  // clear the content
  fNEvents=0;
  fMyObjects.Clear();
}

int AliHLTRunStatistics::Add(const TObject* pObject)
{
  // Add clone of object

  if (!pObject) return -EINVAL;
  fMyObjects.Add(pObject->Clone());
  return 0;
}
 AliHLTRunStatistics.cxx:1
 AliHLTRunStatistics.cxx:2
 AliHLTRunStatistics.cxx:3
 AliHLTRunStatistics.cxx:4
 AliHLTRunStatistics.cxx:5
 AliHLTRunStatistics.cxx:6
 AliHLTRunStatistics.cxx:7
 AliHLTRunStatistics.cxx:8
 AliHLTRunStatistics.cxx:9
 AliHLTRunStatistics.cxx:10
 AliHLTRunStatistics.cxx:11
 AliHLTRunStatistics.cxx:12
 AliHLTRunStatistics.cxx:13
 AliHLTRunStatistics.cxx:14
 AliHLTRunStatistics.cxx:15
 AliHLTRunStatistics.cxx:16
 AliHLTRunStatistics.cxx:17
 AliHLTRunStatistics.cxx:18
 AliHLTRunStatistics.cxx:19
 AliHLTRunStatistics.cxx:20
 AliHLTRunStatistics.cxx:21
 AliHLTRunStatistics.cxx:22
 AliHLTRunStatistics.cxx:23
 AliHLTRunStatistics.cxx:24
 AliHLTRunStatistics.cxx:25
 AliHLTRunStatistics.cxx:26
 AliHLTRunStatistics.cxx:27
 AliHLTRunStatistics.cxx:28
 AliHLTRunStatistics.cxx:29
 AliHLTRunStatistics.cxx:30
 AliHLTRunStatistics.cxx:31
 AliHLTRunStatistics.cxx:32
 AliHLTRunStatistics.cxx:33
 AliHLTRunStatistics.cxx:34
 AliHLTRunStatistics.cxx:35
 AliHLTRunStatistics.cxx:36
 AliHLTRunStatistics.cxx:37
 AliHLTRunStatistics.cxx:38
 AliHLTRunStatistics.cxx:39
 AliHLTRunStatistics.cxx:40
 AliHLTRunStatistics.cxx:41
 AliHLTRunStatistics.cxx:42
 AliHLTRunStatistics.cxx:43
 AliHLTRunStatistics.cxx:44
 AliHLTRunStatistics.cxx:45
 AliHLTRunStatistics.cxx:46
 AliHLTRunStatistics.cxx:47
 AliHLTRunStatistics.cxx:48
 AliHLTRunStatistics.cxx:49
 AliHLTRunStatistics.cxx:50
 AliHLTRunStatistics.cxx:51
 AliHLTRunStatistics.cxx:52
 AliHLTRunStatistics.cxx:53
 AliHLTRunStatistics.cxx:54
 AliHLTRunStatistics.cxx:55
 AliHLTRunStatistics.cxx:56
 AliHLTRunStatistics.cxx:57
 AliHLTRunStatistics.cxx:58
 AliHLTRunStatistics.cxx:59
 AliHLTRunStatistics.cxx:60
 AliHLTRunStatistics.cxx:61
 AliHLTRunStatistics.cxx:62
 AliHLTRunStatistics.cxx:63
 AliHLTRunStatistics.cxx:64
 AliHLTRunStatistics.cxx:65
 AliHLTRunStatistics.cxx:66
 AliHLTRunStatistics.cxx:67
 AliHLTRunStatistics.cxx:68
 AliHLTRunStatistics.cxx:69
 AliHLTRunStatistics.cxx:70
 AliHLTRunStatistics.cxx:71
 AliHLTRunStatistics.cxx:72
 AliHLTRunStatistics.cxx:73
 AliHLTRunStatistics.cxx:74
 AliHLTRunStatistics.cxx:75
 AliHLTRunStatistics.cxx:76
 AliHLTRunStatistics.cxx:77
 AliHLTRunStatistics.cxx:78
 AliHLTRunStatistics.cxx:79
 AliHLTRunStatistics.cxx:80
 AliHLTRunStatistics.cxx:81
 AliHLTRunStatistics.cxx:82
 AliHLTRunStatistics.cxx:83
 AliHLTRunStatistics.cxx:84
 AliHLTRunStatistics.cxx:85
 AliHLTRunStatistics.cxx:86
 AliHLTRunStatistics.cxx:87
 AliHLTRunStatistics.cxx:88
 AliHLTRunStatistics.cxx:89
 AliHLTRunStatistics.cxx:90
 AliHLTRunStatistics.cxx:91
 AliHLTRunStatistics.cxx:92
 AliHLTRunStatistics.cxx:93
 AliHLTRunStatistics.cxx:94
 AliHLTRunStatistics.cxx:95
 AliHLTRunStatistics.cxx:96
 AliHLTRunStatistics.cxx:97
 AliHLTRunStatistics.cxx:98
 AliHLTRunStatistics.cxx:99
 AliHLTRunStatistics.cxx:100
 AliHLTRunStatistics.cxx:101
 AliHLTRunStatistics.cxx:102
 AliHLTRunStatistics.cxx:103
 AliHLTRunStatistics.cxx:104
 AliHLTRunStatistics.cxx:105
 AliHLTRunStatistics.cxx:106
 AliHLTRunStatistics.cxx:107
 AliHLTRunStatistics.cxx:108
 AliHLTRunStatistics.cxx:109
 AliHLTRunStatistics.cxx:110
 AliHLTRunStatistics.cxx:111
 AliHLTRunStatistics.cxx:112
 AliHLTRunStatistics.cxx:113
 AliHLTRunStatistics.cxx:114
 AliHLTRunStatistics.cxx:115
 AliHLTRunStatistics.cxx:116
 AliHLTRunStatistics.cxx:117
 AliHLTRunStatistics.cxx:118
 AliHLTRunStatistics.cxx:119
 AliHLTRunStatistics.cxx:120
 AliHLTRunStatistics.cxx:121
 AliHLTRunStatistics.cxx:122
 AliHLTRunStatistics.cxx:123