5 #include <FairLogger.h>
6 #include <FairParSet.h>
9 #include <TClonesArray.h>
19 #include <FairRootManager.h>
20 #include <FairRunAna.h>
21 #include <FairRuntimeDb.h>
24 : FairTask(
"AtTriggerTask"), fIsPersistent(kTRUE), fAtRawEventArray_acc(
"AtRawEvent", 1),
25 fAtEventArray_acc(
"AtEvent", 1)
31 LOG(debug) <<
"Destructor of AtTriggerTask";
36 LOG(debug) <<
"SetParContainers of AtTriggerTask";
38 FairRunAna *ana = FairRunAna::Instance();
39 FairRuntimeDb *rtdb = ana->GetRuntimeDb();
40 fPar =
dynamic_cast<AtTriggerPar *
>(rtdb->getContainer(
"AtTriggerPar"));
45 LOG(debug) <<
"Initilization of AtTriggerTask";
47 FairRootManager *ioman = FairRootManager::Instance();
50 fAtEventArray =
dynamic_cast<TClonesArray *
>(ioman->GetObject(
"AtEventH"));
51 if (fAtEventArray ==
nullptr) {
52 LOG(error) <<
"Cannot find fAtEventArray array!";
56 fAtRawEventArray =
dynamic_cast<TClonesArray *
>(ioman->GetObject(
"AtRawEvent"));
57 if (fAtRawEventArray ==
nullptr) {
58 LOG(error) <<
"Cannot find fAtRawEventArray array!";
63 ioman->Register(
"Accepted_AtRawEvent",
"cbmsim", &fAtRawEventArray_acc, fIsPersistent);
64 ioman->Register(
"Accepted_AtEventH",
"cbmsim", &fAtEventArray_acc, fIsPersistent);
67 Double_t read, write, MSB, LSB, width, fraction, threshold, window, height;
68 fTrigger = std::make_unique<AtTrigger>();
80 fTrigger->SetTriggerParameters(write, read, MSB, LSB, width, fraction, threshold, window, height);
81 fTrigger->SetAtMap(fMapPath);
92 LOG(debug) <<
"Exec of AtTriggerTask";
101 fEvent =
dynamic_cast<AtEvent *
>(fAtEventArray->At(0));
102 fRawEvent =
dynamic_cast<AtRawEvent *
>(fAtRawEventArray->At(0));
105 fIsTrigger = fTrigger->ImplementTrigger(fRawEvent, fEvent);
108 if (fIsTrigger == kTRUE) {
110 std::cerr <<
"Event triggered by DAQ" << std::endl;
112 new (fAtEventArray_acc[0])
AtEvent(*fEvent);
113 new (fAtRawEventArray_acc[0])
AtRawEvent(*fRawEvent);