]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTGlobalTriggerDecision.cxx
adding Copy and Clone methods inherited from TObject for abstract access and
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTGlobalTriggerDecision.cxx
1 // $Id$
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
28 ClassImp(AliHLTGlobalTriggerDecision)
29
30
31 AliHLTGlobalTriggerDecision::AliHLTGlobalTriggerDecision() :
32   AliHLTTriggerDecision(),
33   fContributingTriggers(AliHLTTriggerDecision::Class()),
34   fInputObjects(),
35   fCounters()
36 {
37   // Default constructor.
38 }
39
40
41 AliHLTGlobalTriggerDecision::AliHLTGlobalTriggerDecision(
42     bool result, const AliHLTTriggerDomain& triggerDomain, const char* description
43   ) :
44   AliHLTTriggerDecision(result, "HLTGlobalTrigger", triggerDomain, description),
45   fContributingTriggers(AliHLTTriggerDecision::Class()),
46   fInputObjects(),
47   fCounters()
48 {
49   // Constructor specifying multiple information fields.
50   
51   Result(result);
52   fInputObjects.SetOwner(kTRUE);
53 }
54
55
56 AliHLTGlobalTriggerDecision::~AliHLTGlobalTriggerDecision()
57 {
58   // Default destructor.
59 }
60
61
62 void AliHLTGlobalTriggerDecision::Print(Option_t* option) const
63 {
64   // Prints the contents of the trigger decision.
65   
66   TString opt(option);
67   if (opt.Contains("compact"))
68   {
69     cout << "Global ";
70     AliHLTTriggerDecision::Print("");
71   }
72   else if (opt.Contains("short"))
73   {
74     cout << "Global ";
75     AliHLTTriggerDecision::Print(option);
76     cout << "#################### Input trigger decisions ####################" << endl;
77     for (Int_t i = 0; i < NumberOfTriggerInputs(); i++)
78     {
79       TriggerInput(i)->Print(option);
80     }
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     }
97   }
98   else
99   {
100     cout << "Global ";
101     AliHLTTriggerDecision::Print(option);
102     cout << "#################### Input trigger decisions ####################" << endl;
103     for (Int_t i = 0; i < NumberOfTriggerInputs(); i++)
104     {
105       cout << "-------------------- Input trigger decision " << i << " --------------------" << endl;
106       TriggerInput(i)->Print(option);
107     }
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;
123     cout << "Counter\tValue" << endl;
124     for (Int_t i = 0; i < fCounters.GetSize(); i++)
125     {
126       cout << i << "\t" << fCounters[i] << endl;
127     }
128     if (fCounters.GetSize() == 0)
129     {
130       cout << "(none)" << endl;
131     }
132   }
133 }
134
135 void 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
150 TObject *AliHLTGlobalTriggerDecision::Clone(const char */*newname*/) const
151 {
152   // create a new clone, classname is ignored
153
154   return new AliHLTGlobalTriggerDecision(*this);
155 }