Skip to content

Commit 3b6bdb1

Browse files
committed
feat(mwpc/online):Added trigger and tpat conditions for mwpc online
1 parent a51d3fd commit 3b6bdb1

2 files changed

Lines changed: 43 additions & 7 deletions

File tree

mwpc/online/R3BMwpcOnlineSpectra.cxx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ InitStatus R3BMwpcOnlineSpectra::Init()
7878
FairRunOnline* run = FairRunOnline::Instance();
7979
run->GetHttpServer()->Register("", this);
8080

81+
header = dynamic_cast<R3BEventHeader*>(mgr->GetObject("EventHeader."));
82+
R3BLOG_IF(warn, header == nullptr, "EventHeader. not found");
83+
R3BLOG_IF(info, header, "EventHeader. found");
84+
8185
// get access to mapped data of mwpcs
8286
fMapItemsMwpc = dynamic_cast<TClonesArray*>(mgr->GetObject(fNameDet + "MappedData"));
8387
R3BLOG_IF(fatal, fMapItemsMwpc == nullptr, fNameDet + "MappedData not found");
@@ -440,6 +444,26 @@ void R3BMwpcOnlineSpectra::Reset_Histo()
440444
void R3BMwpcOnlineSpectra::Exec(Option_t* /*option*/)
441445
{
442446

447+
// Check for requested trigger (Todo: should be done globablly / somewhere else)
448+
if ((fTrigger >= 0) && (header != nullptr) && (header->GetTrigger() != fTrigger))
449+
return;
450+
451+
if (fTpat1 >= 0 && fTpat2 >= 0 && (header))
452+
{
453+
// fTpat = 1-16; fTpat_bit = 0-15
454+
Int_t fTpat_bit1 = fTpat1 - 1;
455+
Int_t fTpat_bit2 = fTpat2 - 1;
456+
Int_t tpatbin = 0;
457+
for (int i = 0; i < 16; i++)
458+
{
459+
tpatbin = (header->GetTpat() & (1 << i));
460+
if (tpatbin != 0 && (i < fTpat_bit1 || i > fTpat_bit2))
461+
{
462+
return;
463+
}
464+
}
465+
}
466+
443467
if (fMapItemsMwpc && fMapItemsMwpc->GetEntriesFast() > 0)
444468
{
445469
Int_t nPadsPerEvent[3];

mwpc/online/R3BMwpcOnlineSpectra.h

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,27 @@ class R3BMwpcOnlineSpectra : public FairTask
9393
*/
9494
virtual void Reset_Histo();
9595

96+
/**
97+
* Method for setting the trigger value.
98+
* @param trigger 1 - physics
99+
*/
100+
inline void SetTrigger(int trigger) { fTrigger = trigger; }
101+
inline void SetTpat(int tpat1, int tpat2)
102+
{
103+
fTpat1 = tpat1;
104+
fTpat2 = tpat2;
105+
}
106+
96107
private:
97-
TClonesArray* fMapItemsMwpc = nullptr; // Array with mapped items
98-
TClonesArray* fCalItemsMwpc = nullptr; /**< Array with cal items. */
99-
TClonesArray* fHitItemsMwpc = nullptr; /**< Array with hit items. */
108+
TClonesArray* fMapItemsMwpc = nullptr;
109+
TClonesArray* fCalItemsMwpc = nullptr;
110+
TClonesArray* fHitItemsMwpc = nullptr;
100111

101-
// check for trigger should be done globablly (somewhere else)
102-
R3BEventHeader* header; /**< Event header. */
103-
int fNEvents = 0; /**< Event counter. */
112+
R3BEventHeader* header = nullptr;
113+
unsigned long long fNEvents = 0;
104114
TString fNameDet;
115+
int fTrigger = -1;
116+
int fTpat1 = -1, fTpat2 = -1;
105117

106118
// Canvas
107119
TCanvas* cMwpc_nPads;
@@ -127,5 +139,5 @@ class R3BMwpcOnlineSpectra : public FairTask
127139
TH2F* fh2_XYpos;
128140

129141
public:
130-
ClassDefOverride(R3BMwpcOnlineSpectra, 1)
142+
ClassDefOverride(R3BMwpcOnlineSpectra, 1); // NOLINT
131143
};

0 commit comments

Comments
 (0)