ALIROOT-5600 - skip non-participating detector modules
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTRunStatistics.cxx
CommitLineData
2ff24e4c 1//-*- Mode: C++ -*-
2// $Id$
3/**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * ALICE Experiment at CERN, All rights reserved. *
6 * *
7 * Primary Authors: Jochen Thaeder <thaeder@kip.uni-heidelberg.de> *
8 * for The ALICE HLT Project. *
9 * *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
18
19/** @file AliHLTRunStatistics.cxx
20 @author Jochen Thaeder
21 @date
22 @brief Base class for run statistics, for all detectors
23*/
24
25// see header file for class documentation
26// or
27// refer to README to build package
28// or
29// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
30
2ff24e4c 31#include "AliHLTRunStatistics.h"
408bd64a 32#include <iostream>
33#include <cerrno>
2ff24e4c 34
c515df4c 35using std::cout;
36
2ff24e4c 37ClassImp(AliHLTRunStatistics)
38
408bd64a 39AliHLTRunStatistics::AliHLTRunStatistics()
40 : TNamed("HLT", "HLT Run Statistics")
41 , fNEvents(0)
42 , fMyObjects()
43{
2ff24e4c 44 // see header file for class documentation
45 // or
46 // refer to README to build package
47 // or
48 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
49}
50
408bd64a 51AliHLTRunStatistics::AliHLTRunStatistics (const AliHLTRunStatistics& src)
52 : TNamed(src)
53 , fNEvents(src.fNEvents)
54 , fMyObjects()
55{
2ff24e4c 56 // see header file for class documentation
408bd64a 57 for (int i=0; i<src.fMyObjects.GetEntriesFast(); i++) {
58 fMyObjects.Add(src.fMyObjects.Clone());
59 }
60 fMyObjects.SetOwner(kTRUE);
61}
62
63AliHLTRunStatistics& AliHLTRunStatistics::operator= (const AliHLTRunStatistics& src)
64{
65 // see header file for class documentation
66 this->~AliHLTRunStatistics();
67 new (this) AliHLTRunStatistics(src);
68 return *this;
69}
70
71AliHLTRunStatistics::~AliHLTRunStatistics()
72{
73 // see header file for class documentation
74 fMyObjects.Delete();
75}
76
77void AliHLTRunStatistics::Print(Option_t* option) const
78{
79 // see header file for class documentation
80 cout << "============ " << GetTitle() << " ============" << endl;
81 cout << "\t" << GetNEvents() << " event(s)" << endl;
82 for (int i=0; i<fMyObjects.GetEntriesFast(); i++) {
83 fMyObjects.Print(option);
84 }
85 cout << "==============================================" << endl;
86}
87
88void AliHLTRunStatistics::Copy(TObject &object) const
89{
90 // copy this to the specified object
91
92 AliHLTRunStatistics* pStatistics=dynamic_cast<AliHLTRunStatistics*>(&object);
93 if (pStatistics) {
94 // copy members if target is a AliHLTTriggerDecision
95 *pStatistics=*this;
96 }
97
98 // copy the base class
99 TObject::Copy(object);
100}
101
102TObject *AliHLTRunStatistics::Clone(const char */*newname*/) const
103{
104 // create a new clone, classname is ignored
105
106 return new AliHLTRunStatistics(*this);
107}
108
109void AliHLTRunStatistics::Clear(Option_t * /*option*/)
110{
111 // clear the content
112 fNEvents=0;
113 fMyObjects.Clear();
114}
115
116int AliHLTRunStatistics::Add(const TObject* pObject)
117{
118 // Add clone of object
119
120 if (!pObject) return -EINVAL;
121 fMyObjects.Add(pObject->Clone());
122 return 0;
2ff24e4c 123}