#include "AliESDHLTDecision.h"
#include <iostream>
using std::endl;
using std::cout;
ClassImp(AliESDHLTDecision)
AliESDHLTDecision::AliESDHLTDecision()
: TNamed(fgkName, "")
, fInputObjectInfo(TNamed::Class())
, fTriggerItems()
, fCounters()
{
}
const char* AliESDHLTDecision::fgkName="HLTGlobalTrigger";
AliESDHLTDecision::AliESDHLTDecision(bool result, const char* description)
: TNamed(fgkName, description)
, fInputObjectInfo(TNamed::Class())
, fTriggerItems()
, fCounters()
{
SetBit(kTriggerResult, result);
}
AliESDHLTDecision::AliESDHLTDecision(const AliESDHLTDecision& src)
: TNamed(src)
, fInputObjectInfo(src.fInputObjectInfo)
, fTriggerItems(src.fTriggerItems)
, fCounters(src.fCounters)
{
}
AliESDHLTDecision& AliESDHLTDecision::operator=(const AliESDHLTDecision& src)
{
TNamed::operator=(src);
fInputObjectInfo=src.fInputObjectInfo;
fTriggerItems=src.fTriggerItems;
fCounters=src.fCounters;
return *this;
}
AliESDHLTDecision::~AliESDHLTDecision()
{
fInputObjectInfo.Delete();
}
const char* AliESDHLTDecision::GetDescription() const
{
return GetTitle();
}
Bool_t AliESDHLTDecision::IsTriggerFired(const char* name) const
{
Option_t* option=this->GetOption();
if (option==NULL || *option!='1') return kFALSE;
if (name) {
TString description=GetDescription();
Int_t index=description.Index(name);
if (index<0) return kFALSE;
index+=strlen(name);
if (index>=description.Length()) return kFALSE;
if (description[index]!=0 && description[index]!=' ') return kFALSE;
}
return kTRUE;
}
void AliESDHLTDecision::Print(Option_t* option ) const
{
TString opt(option);
if (opt.Contains("compact"))
{
cout << "Global Trigger " << GetName() << ": result = " << TestBit(kTriggerResult) << endl;
cout << " Description = \"" << GetDescription() << "\"" << endl;
}
else if (opt.Contains("short"))
{
cout << "Global Trigger " << GetName() << ": result = " << TestBit(kTriggerResult) << endl;
cout << " Description = \"" << GetDescription() << "\"" << endl;
cout << "#################### Input trigger decisions ####################" << endl;
TIter next(&fInputObjectInfo);
TObject* object=NULL;
int count=0;
while ((object=next())) {
if (object->TestBit(kTriggerDecision)) {
count++;
cout << "Trigger " << object->GetName() << ": result = " << object->TestBit(kTriggerResult) << endl;
cout << " Description = \"" << object->GetTitle() << "\"" << endl;
}
}
if (count==0) {
cout << "(none)" << endl;
}
}
else if (opt.Contains("counters"))
{
cout << "Counter\tValue" << endl;
for (Int_t i = 0; i < fCounters.GetSize(); i++)
{
cout << i << "\t" << fCounters[i] << endl;
}
if (fCounters.GetSize() == 0)
{
cout << "(none)" << endl;
}
}
else
{
TObject* object=NULL;
cout << "Global Trigger " << GetName() << ": result = " << TestBit(kTriggerResult) << endl;
cout << " Description = \"" << GetDescription() << "\"" << endl;
cout << "#################### Input trigger decisions ####################" << endl;
TIter next(&fInputObjectInfo);
int count=0;
while ((object=next())) {
if (object->TestBit(kTriggerDecision)) {
count++;
cout << "Trigger " << object->GetName() << ": result = " << object->TestBit(kTriggerResult) << endl;
cout << " Description = \"" << object->GetTitle() << "\"" << endl;
}
}
if (count==0) {
cout << "(none)" << endl;
}
cout << "###################### Other input objects ######################" << endl;
count=0;
next.Reset();
while ((object=next())) {
if (!object->TestBit(kTriggerDecision)) {
cout << "------------------------ Input object " << count << " ------------------------" << endl;
object->Print(option);
count++;
}
}
if (count==0) {
cout << "(none)" << endl;
}
cout << "#################### Event class counters ####################" << endl;
cout << "Counter\tValue" << endl;
for (Int_t i = 0; i < fCounters.GetSize(); i++)
{
cout << i << "\t" << fCounters[i] << endl;
}
if (fCounters.GetSize() == 0)
{
cout << "(none)" << endl;
}
}
}
void AliESDHLTDecision::Copy(TObject &object) const
{
if (object.IsA() != IsA()) return;
AliESDHLTDecision& target=dynamic_cast<AliESDHLTDecision&>(object);
target=*this;
}
TObject *AliESDHLTDecision::Clone(const char *) const
{
return new AliESDHLTDecision(*this);
}
AliESDHLTDecision.cxx:100 AliESDHLTDecision.cxx:101 AliESDHLTDecision.cxx:102 AliESDHLTDecision.cxx:103 AliESDHLTDecision.cxx:104 AliESDHLTDecision.cxx:105 AliESDHLTDecision.cxx:106 AliESDHLTDecision.cxx:107 AliESDHLTDecision.cxx:108 AliESDHLTDecision.cxx:109 AliESDHLTDecision.cxx:110 AliESDHLTDecision.cxx:111 AliESDHLTDecision.cxx:112 AliESDHLTDecision.cxx:113 AliESDHLTDecision.cxx:114 AliESDHLTDecision.cxx:115 AliESDHLTDecision.cxx:116 AliESDHLTDecision.cxx:117 AliESDHLTDecision.cxx:118 AliESDHLTDecision.cxx:119 AliESDHLTDecision.cxx:120 AliESDHLTDecision.cxx:121 AliESDHLTDecision.cxx:122 AliESDHLTDecision.cxx:123 AliESDHLTDecision.cxx:124 AliESDHLTDecision.cxx:125 AliESDHLTDecision.cxx:126 AliESDHLTDecision.cxx:127 AliESDHLTDecision.cxx:128 AliESDHLTDecision.cxx:129 AliESDHLTDecision.cxx:130 AliESDHLTDecision.cxx:131 AliESDHLTDecision.cxx:132 AliESDHLTDecision.cxx:133 AliESDHLTDecision.cxx:134 AliESDHLTDecision.cxx:135 AliESDHLTDecision.cxx:136 AliESDHLTDecision.cxx:137 AliESDHLTDecision.cxx:138 AliESDHLTDecision.cxx:139 AliESDHLTDecision.cxx:140 AliESDHLTDecision.cxx:141 AliESDHLTDecision.cxx:142 AliESDHLTDecision.cxx:143 AliESDHLTDecision.cxx:144 AliESDHLTDecision.cxx:145 AliESDHLTDecision.cxx:146 AliESDHLTDecision.cxx:147 AliESDHLTDecision.cxx:148 AliESDHLTDecision.cxx:149 AliESDHLTDecision.cxx:150 AliESDHLTDecision.cxx:151 AliESDHLTDecision.cxx:152 AliESDHLTDecision.cxx:153 AliESDHLTDecision.cxx:154 AliESDHLTDecision.cxx:155 AliESDHLTDecision.cxx:156 AliESDHLTDecision.cxx:157 AliESDHLTDecision.cxx:158 AliESDHLTDecision.cxx:159 AliESDHLTDecision.cxx:160 AliESDHLTDecision.cxx:161 AliESDHLTDecision.cxx:162 AliESDHLTDecision.cxx:163 AliESDHLTDecision.cxx:164 AliESDHLTDecision.cxx:165 AliESDHLTDecision.cxx:166 AliESDHLTDecision.cxx:167 AliESDHLTDecision.cxx:168 AliESDHLTDecision.cxx:169 AliESDHLTDecision.cxx:170 AliESDHLTDecision.cxx:171 AliESDHLTDecision.cxx:172 AliESDHLTDecision.cxx:173 AliESDHLTDecision.cxx:174 AliESDHLTDecision.cxx:175 AliESDHLTDecision.cxx:176 AliESDHLTDecision.cxx:177 AliESDHLTDecision.cxx:178 AliESDHLTDecision.cxx:179 AliESDHLTDecision.cxx:180 AliESDHLTDecision.cxx:181 AliESDHLTDecision.cxx:182 AliESDHLTDecision.cxx:183 AliESDHLTDecision.cxx:184 AliESDHLTDecision.cxx:185 AliESDHLTDecision.cxx:186 AliESDHLTDecision.cxx:187 AliESDHLTDecision.cxx:188 AliESDHLTDecision.cxx:189 AliESDHLTDecision.cxx:190 AliESDHLTDecision.cxx:191 AliESDHLTDecision.cxx:192 AliESDHLTDecision.cxx:193 AliESDHLTDecision.cxx:194 AliESDHLTDecision.cxx:195 AliESDHLTDecision.cxx:196 AliESDHLTDecision.cxx:197 AliESDHLTDecision.cxx:198 AliESDHLTDecision.cxx:199 AliESDHLTDecision.cxx:200 AliESDHLTDecision.cxx:201 AliESDHLTDecision.cxx:202 AliESDHLTDecision.cxx:203 AliESDHLTDecision.cxx:204 AliESDHLTDecision.cxx:205 AliESDHLTDecision.cxx:206 AliESDHLTDecision.cxx:207 AliESDHLTDecision.cxx:208 AliESDHLTDecision.cxx:209 AliESDHLTDecision.cxx:210 AliESDHLTDecision.cxx:211