1 #if !defined(__CINT__) || defined(__MAKECINT__)
8 #include "AliESDEvent.h"
9 #include "AliESDtrack.h"
10 #include "AliHLTSystem.h"
11 #include "AliHLTConfiguration.h"
12 #include "AliHLTTriggerDecision.h"
14 #include "AliESDCaloCluster.h"
17 void CreateInput(const char* filename, Int_t numOfTracks, Double_t minPt, Double_t maxPt)
19 gRandom->SetSeed(123);
20 TFile* file = new TFile(filename, "RECREATE");
22 event.CreateStdContent();
24 AliESDCaloCluster cluster;
25 cluster = new AliESDCaloCluster();
27 Double_t et = gRandom->Rndm() * (maxPt - minPt) + minPt;
30 cluster.SetClusterType(AliESDCaloCluster::kPHOSCluster);
31 //cluster.SetClusterType(nuOfmTracks);
33 event.AddCaloCluster(&cluster);
34 event.SetFirstPHOSCluster(0);
40 bool CheckIfOutputIsOk()
42 const char* filename = "PhosClusterEnergyTriggerTestOutput.root";
43 TFile file(filename, "READ");
44 AliHLTTriggerDecision* decision1 = dynamic_cast<AliHLTTriggerDecision*>(file.Get("PhosClusterEnergyTrigger;1"));
45 AliHLTTriggerDecision* decision2 = dynamic_cast<AliHLTTriggerDecision*>(file.Get("PhosClusterEnergyTrigger;2"));
46 if (decision1 == NULL)
48 cerr << "ERROR: 'PhosClusterEnergyTrigger;1' AliHLTTriggerDecision object not found in file " << filename << endl;
51 if (decision2 == NULL)
53 cerr << "ERROR: 'PhosClusterEnergyTrigger;2' AliHLTTriggerDecision object not found in file " << filename << endl;
56 cout << "============================== Decision 1 ==============================" << endl;
58 if (decision1->Result() != 0)
60 cout << "FAILED result check. Expected a result of 0 for trigger decision 1 but received: " << decision1->Result() << endl;
63 cout << "============================== Decision 2 ==============================" << endl;
65 if (decision2->Result() != 1)
67 cout << "FAILED result check. Expected a result of 1 for trigger decision 2 but received: " << decision2->Result() << endl;
74 bool testPhosClusterEnergyTrigger()
76 AliCDBManager * man = AliCDBManager::Instance();
77 man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
79 gSystem->Load("libAliHLTTrigger.so");
80 CreateInput("PhosClusterEnergyTriggerTestInput1.root", -2, 0.1, 1.99);
81 CreateInput("PhosClusterEnergyTriggerTestInput2.root", 0, 2.1, 4.0);
83 sys.LoadComponentLibraries("libAliHLTUtil.so");
84 sys.LoadComponentLibraries("libAliHLTTrigger.so");
85 const char* cmdline = " -datatype ROOTTOBJ 'HLT ' -datafile PhosClusterEnergyTriggerTestInput1.root -nextevent -datafile PhosClusterEnergyTriggerTestInput2.root";
86 AliHLTConfiguration pub("pub", "ROOTFilePublisher", NULL, cmdline);
87 AliHLTConfiguration proc("proc", "PhosClusterEnergyTrigger", "pub", "-energy 2");
88 AliHLTConfiguration sink("sink", "ROOTFileWriter", "proc", "-datafile PhosClusterEnergyTriggerTestOutput.root -concatenate-events");
89 sys.BuildTaskList("sink");
91 return CheckIfOutputIsOk();
94 int main(int /*argc*/, const char** /*argv*/)
96 bool resultOk = testPhosClusterEnergyTrigger();
97 if (not resultOk) return 1;
100 #endif // __MAKECINT__