#if !defined(__CINT__) || defined(__MAKECINT__)
#include "Riostream.h"
#include "TFile.h"
#include "TSystem.h"
#include "TRandom3.h"
#include "TMath.h"
#include "TParticle.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliHLTSystem.h"
#include "AliHLTConfiguration.h"
#include "AliHLTTriggerDecision.h"
#include "AliESDCaloCluster.h"
#endif
void CreateInput(const char* filename, Int_t numOfTracks, Double_t minPt, Double_t maxPt)
{
gRandom->SetSeed(123);
TFile* file = new TFile(filename, "RECREATE");
AliESDEvent event;
event.CreateStdContent();
AliESDCaloCluster cluster;
cluster = new AliESDCaloCluster();
Double_t et = gRandom->Rndm() * (maxPt - minPt) + minPt;
cluster.SetE(et);
cluster.SetClusterType(AliESDCaloCluster::kPHOSCluster);
//cluster.SetClusterType(nuOfmTracks);
event.AddCaloCluster(&cluster);
event.Write();
delete file;
}
bool CheckIfOutputIsOk()
{
const char* filename = "PhosClusterEnergyTriggerTestOutput.root";
TFile file(filename, "READ");
AliHLTTriggerDecision* decision1 = dynamic_cast<AliHLTTriggerDecision*>(file.Get("PhosClusterEnergyTrigger;2"));
AliHLTTriggerDecision* decision2 = dynamic_cast<AliHLTTriggerDecision*>(file.Get("PhosClusterEnergyTrigger;3"));
if (decision1 == NULL)
{
cerr << "ERROR: 'PhosClusterEnergyTrigger;1' AliHLTTriggerDecision object not found in file " << filename << endl;
return false;
}
if (decision2 == NULL)
{
cerr << "ERROR: 'PhosClusterEnergyTrigger;2' AliHLTTriggerDecision object not found in file " << filename << endl;
return false;
}
cout << "============================== Decision 1 ==============================" << endl;
decision1->Print();
if (decision1->Result() != 0)
{
cout << "FAILED result check. Expected a result of 0 for trigger decision 1 but received: " << decision1->Result() << endl;
return false;
}
cout << "============================== Decision 2 ==============================" << endl;
decision2->Print();
if (decision2->Result() != 1)
{
cout << "FAILED result check. Expected a result of 1 for trigger decision 2 but received: " << decision2->Result() << endl;
return false;
}
return true;
}
bool testPhosClusterEnergyTrigger()
{
AliCDBManager * man = AliCDBManager::Instance();
man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
man->SetRun(0);
gSystem->Load("libAliHLTUtil.so");
gSystem->Load("libAliHLTMUON.so");
gSystem->Load("libAliHLTTRD.so");
gSystem->Load("libAliHLTTrigger.so");
CreateInput("PhosClusterEnergyTriggerTestInput1.root", -2, 0.1, 0.99);
CreateInput("PhosClusterEnergyTriggerTestInput2.root", 0, 2.1, 4.0);
AliHLTSystem sys;
sys.LoadComponentLibraries("libAliHLTUtil.so");
sys.LoadComponentLibraries("libAliHLTTrigger.so");
const char* cmdline = " -datatype ROOTTOBJ 'HLT ' -datafile PhosClusterEnergyTriggerTestInput1.root -nextevent -datafile PhosClusterEnergyTriggerTestInput2.root";
AliHLTConfiguration pub("pub", "ROOTFilePublisher", NULL, cmdline);
AliHLTConfiguration proc("proc", "PhosClusterEnergyTrigger", "pub", "");
AliHLTConfiguration sink("sink", "ROOTFileWriter", "proc", "-datafile PhosClusterEnergyTriggerTestOutput.root -concatenate-events");
sys.BuildTaskList("sink");
sys.Run(2);
return CheckIfOutputIsOk();
}
#ifndef __MAKECINT__
int main(int /*argc*/, const char** /*argv*/)
{
bool resultOk = testPhosClusterEnergyTrigger();
if (not resultOk) return 1;
return 0;
}
#endif // __MAKECINT__
testPhosClusterEnergyTrigger.C:1 testPhosClusterEnergyTrigger.C:2 testPhosClusterEnergyTrigger.C:3 testPhosClusterEnergyTrigger.C:4 testPhosClusterEnergyTrigger.C:5 testPhosClusterEnergyTrigger.C:6 testPhosClusterEnergyTrigger.C:7 testPhosClusterEnergyTrigger.C:8 testPhosClusterEnergyTrigger.C:9 testPhosClusterEnergyTrigger.C:10 testPhosClusterEnergyTrigger.C:11 testPhosClusterEnergyTrigger.C:12 testPhosClusterEnergyTrigger.C:13 testPhosClusterEnergyTrigger.C:14 testPhosClusterEnergyTrigger.C:15 testPhosClusterEnergyTrigger.C:16 testPhosClusterEnergyTrigger.C:17 testPhosClusterEnergyTrigger.C:18 testPhosClusterEnergyTrigger.C:19 testPhosClusterEnergyTrigger.C:20 testPhosClusterEnergyTrigger.C:21 testPhosClusterEnergyTrigger.C:22 testPhosClusterEnergyTrigger.C:23 testPhosClusterEnergyTrigger.C:24 testPhosClusterEnergyTrigger.C:25 testPhosClusterEnergyTrigger.C:26 testPhosClusterEnergyTrigger.C:27 testPhosClusterEnergyTrigger.C:28 testPhosClusterEnergyTrigger.C:29 testPhosClusterEnergyTrigger.C:30 testPhosClusterEnergyTrigger.C:31 testPhosClusterEnergyTrigger.C:32 testPhosClusterEnergyTrigger.C:33 testPhosClusterEnergyTrigger.C:34 testPhosClusterEnergyTrigger.C:35 testPhosClusterEnergyTrigger.C:36 testPhosClusterEnergyTrigger.C:37 testPhosClusterEnergyTrigger.C:38 testPhosClusterEnergyTrigger.C:39 testPhosClusterEnergyTrigger.C:40 testPhosClusterEnergyTrigger.C:41 testPhosClusterEnergyTrigger.C:42 testPhosClusterEnergyTrigger.C:43 testPhosClusterEnergyTrigger.C:44 testPhosClusterEnergyTrigger.C:45 testPhosClusterEnergyTrigger.C:46 testPhosClusterEnergyTrigger.C:47 testPhosClusterEnergyTrigger.C:48 testPhosClusterEnergyTrigger.C:49 testPhosClusterEnergyTrigger.C:50 testPhosClusterEnergyTrigger.C:51 testPhosClusterEnergyTrigger.C:52 testPhosClusterEnergyTrigger.C:53 testPhosClusterEnergyTrigger.C:54 testPhosClusterEnergyTrigger.C:55 testPhosClusterEnergyTrigger.C:56 testPhosClusterEnergyTrigger.C:57 testPhosClusterEnergyTrigger.C:58 testPhosClusterEnergyTrigger.C:59 testPhosClusterEnergyTrigger.C:60 testPhosClusterEnergyTrigger.C:61 testPhosClusterEnergyTrigger.C:62 testPhosClusterEnergyTrigger.C:63 testPhosClusterEnergyTrigger.C:64 testPhosClusterEnergyTrigger.C:65 testPhosClusterEnergyTrigger.C:66 testPhosClusterEnergyTrigger.C:67 testPhosClusterEnergyTrigger.C:68 testPhosClusterEnergyTrigger.C:69 testPhosClusterEnergyTrigger.C:70 testPhosClusterEnergyTrigger.C:71 testPhosClusterEnergyTrigger.C:72 testPhosClusterEnergyTrigger.C:73 testPhosClusterEnergyTrigger.C:74 testPhosClusterEnergyTrigger.C:75 testPhosClusterEnergyTrigger.C:76 testPhosClusterEnergyTrigger.C:77 testPhosClusterEnergyTrigger.C:78 testPhosClusterEnergyTrigger.C:79 testPhosClusterEnergyTrigger.C:80 testPhosClusterEnergyTrigger.C:81 testPhosClusterEnergyTrigger.C:82 testPhosClusterEnergyTrigger.C:83 testPhosClusterEnergyTrigger.C:84 testPhosClusterEnergyTrigger.C:85 testPhosClusterEnergyTrigger.C:86 testPhosClusterEnergyTrigger.C:87 testPhosClusterEnergyTrigger.C:88 testPhosClusterEnergyTrigger.C:89 testPhosClusterEnergyTrigger.C:90 testPhosClusterEnergyTrigger.C:91 testPhosClusterEnergyTrigger.C:92 testPhosClusterEnergyTrigger.C:93 testPhosClusterEnergyTrigger.C:94 testPhosClusterEnergyTrigger.C:95 testPhosClusterEnergyTrigger.C:96 testPhosClusterEnergyTrigger.C:97 testPhosClusterEnergyTrigger.C:98 testPhosClusterEnergyTrigger.C:99 testPhosClusterEnergyTrigger.C:100 testPhosClusterEnergyTrigger.C:101 testPhosClusterEnergyTrigger.C:102 testPhosClusterEnergyTrigger.C:103