adding Copy and Clone methods inherited from TObject for abstract access and
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTGlobalTriggerDecision.cxx
CommitLineData
4a035340 1// $Id$
1b9a175e 2/**************************************************************************
3 * This file is property of and copyright by the ALICE HLT Project *
4 * ALICE Experiment at CERN, All rights reserved. *
5 * *
6 * Primary Authors: Artur Szostak <artursz@iafrica.com> *
7 * for The ALICE HLT Project. *
8 * *
9 * Permission to use, copy, modify and distribute this software and its *
10 * documentation strictly for non-commercial purposes is hereby granted *
11 * without fee, provided that the above copyright notice appears in all *
12 * copies and that both the copyright notice and this permission notice *
13 * appear in the supporting documentation. The authors make no claims *
14 * about the suitability of this software for any purpose. It is *
15 * provided "as is" without express or implied warranty. *
16 **************************************************************************/
17
18/// @file AliHLTGlobalTriggerDecision.cxx
19/// @author Artur Szostak <artursz@iafrica.com>
20/// @date 26 Nov 2008
21/// @brief Implementation of the AliHLTGlobalTriggerDecision class.
22///
23/// The global trigger decision class stores the global HLT decision.
24
25#include "AliHLTGlobalTriggerDecision.h"
26#include "Riostream.h"
27
28ClassImp(AliHLTGlobalTriggerDecision)
29
30
31AliHLTGlobalTriggerDecision::AliHLTGlobalTriggerDecision() :
32 AliHLTTriggerDecision(),
33 fContributingTriggers(AliHLTTriggerDecision::Class()),
52f67e50 34 fInputObjects(),
1b9a175e 35 fCounters()
36{
37 // Default constructor.
38}
39
40
41AliHLTGlobalTriggerDecision::AliHLTGlobalTriggerDecision(
52f67e50 42 bool result, const AliHLTTriggerDomain& triggerDomain, const char* description
1b9a175e 43 ) :
52f67e50 44 AliHLTTriggerDecision(result, "HLTGlobalTrigger", triggerDomain, description),
1b9a175e 45 fContributingTriggers(AliHLTTriggerDecision::Class()),
52f67e50 46 fInputObjects(),
1b9a175e 47 fCounters()
48{
49 // Constructor specifying multiple information fields.
50
51 Result(result);
52f67e50 52 fInputObjects.SetOwner(kTRUE);
1b9a175e 53}
54
55
56AliHLTGlobalTriggerDecision::~AliHLTGlobalTriggerDecision()
57{
58 // Default destructor.
59}
60
61
62void AliHLTGlobalTriggerDecision::Print(Option_t* option) const
63{
64 // Prints the contents of the trigger decision.
65
66 TString opt(option);
52f67e50 67 if (opt.Contains("compact"))
68 {
69 cout << "Global ";
70 AliHLTTriggerDecision::Print("");
71 }
72 else if (opt.Contains("short"))
1b9a175e 73 {
74 cout << "Global ";
75 AliHLTTriggerDecision::Print(option);
52f67e50 76 cout << "#################### Input trigger decisions ####################" << endl;
1b9a175e 77 for (Int_t i = 0; i < NumberOfTriggerInputs(); i++)
78 {
79 TriggerInput(i)->Print(option);
80 }
52f67e50 81 if (NumberOfTriggerInputs() == 0)
82 {
83 cout << "(none)" << endl;
84 }
85 }
86 else if (opt.Contains("counters"))
87 {
88 cout << "Counter\tValue" << endl;
89 for (Int_t i = 0; i < fCounters.GetSize(); i++)
90 {
91 cout << i << "\t" << fCounters[i] << endl;
92 }
93 if (fCounters.GetSize() == 0)
94 {
95 cout << "(none)" << endl;
96 }
1b9a175e 97 }
98 else
99 {
100 cout << "Global ";
101 AliHLTTriggerDecision::Print(option);
52f67e50 102 cout << "#################### Input trigger decisions ####################" << endl;
1b9a175e 103 for (Int_t i = 0; i < NumberOfTriggerInputs(); i++)
104 {
52f67e50 105 cout << "-------------------- Input trigger decision " << i << " --------------------" << endl;
1b9a175e 106 TriggerInput(i)->Print(option);
107 }
52f67e50 108 if (NumberOfTriggerInputs() == 0)
109 {
110 cout << "(none)" << endl;
111 }
112 cout << "###################### Other input objects ######################" << endl;
113 for (Int_t i = 0; i < NumberOfInputObjects(); i++)
114 {
115 cout << "------------------------ Input object " << i << " ------------------------" << endl;
116 InputObject(i)->Print(option);
117 }
118 if (NumberOfInputObjects() == 0)
119 {
120 cout << "(none)" << endl;
121 }
122 cout << "#################### Event class counters ####################" << endl;
1b9a175e 123 cout << "Counter\tValue" << endl;
124 for (Int_t i = 0; i < fCounters.GetSize(); i++)
125 {
126 cout << i << "\t" << fCounters[i] << endl;
127 }
52f67e50 128 if (fCounters.GetSize() == 0)
129 {
130 cout << "(none)" << endl;
131 }
1b9a175e 132 }
133}
134
4a035340 135void AliHLTGlobalTriggerDecision::Copy(TObject &object) const
136{
137 // copy this to the specified object
138
139 AliHLTGlobalTriggerDecision* pDecision=dynamic_cast<AliHLTGlobalTriggerDecision*>(&object);
140 if (pDecision)
141 {
142 // copy members if target is a AliHLTGlobalTriggerDecision
143 *pDecision=*this;
144 }
145
146 // copy the base class
147 AliHLTTriggerDecision::Copy(object);
148}
149
150TObject *AliHLTGlobalTriggerDecision::Clone(const char */*newname*/) const
151{
152 // create a new clone, classname is ignored
153
154 return new AliHLTGlobalTriggerDecision(*this);
155}