16#include <FairRootManager.h>
17#include <TClonesArray.h>
23#define TIME_HVON_MAX 5
28 : FairTask(
"NeulandCheckMapping", 1)
37 : FairTask(name, iVerbose)
49 std::cout <<
"Init " << std::endl;
51 FairRootManager* rm = FairRootManager::Instance();
59 fMapped = (TClonesArray*)rm->GetObject(
"NeulandMappedData");
65 h_countsok =
new TH1F(
"countsok",
"countsok", 1200, 0.5, 1200.5);
67 std::cout <<
"Setting all vtargets to -1...\n";
72 for (Int_t pmt = 0; pmt < 2; pmt++)
75 std::ostringstream oss;
76 oss <<
"nl:hv:p" << pln + 1 <<
"b" << bar + 1 <<
"t" << pmt + 1;
78 auto vmon = oss.str() +
":vmon";
79 auto vtarget = oss.str() +
":vtarget.A";
81 auto& entry =
ca[pln][bar][pmt];
82 entry.group =
epics.CreateGroup();
84 entry.vmon = entry.group->CreateChannel(
vmon);
85 entry.vtarget = entry.group->CreateChannel(
vtarget);
87 entry.vtarget->Set(-1);
88 entry.group->Commit();
90 cntOk[pln][bar][pmt] = 0;
94 std::cout <<
"Waiting for tubes to go down...\n";
99 for (Int_t pmt = 0; pmt < 2; pmt++)
102 auto& entrycheck =
ca[pln][bar][pmt];
107 entrycheck.group->Fetch();
108 if (entrycheck.vmon->Get() < 20.)
115 std::cout <<
"\nAll off! Enabling the first tube...\n";
120 entryon.vtarget->Set(1050);
121 entryon.group->Commit();
124 entryon.group->Fetch();
125 if (fabs(entryon.vmon->Get() - entryon.vtarget->Get()) < 15.)
130 std::cout <<
"Done! Ready to rumble.\n";
154 std::cout <<
"5 seconds? " << std::endl;
157 entryoff.vtarget->Set(-1);
158 entryoff.group->Commit();
163 entryoff.group->Fetch();
164 if (entryoff.vmon->Get() < 20.)
185 std::cout <<
"ALL DONE!" << std::endl;
195 entryon.vtarget->Set(1050);
196 entryon.group->Commit();
201 entryon.group->Fetch();
202 if (fabs(entryon.vmon->Get() - entryon.vtarget->Get()) < 15.)
206 std::cout <<
"Done!\n";
216 Int_t nHits =
fMapped->GetEntries();
221 for (Int_t i = 0; i < nHits; i++)
256 std::cout <<
" finish task " << std::endl;
261 for (Int_t pmt = 0; pmt < 2; pmt++)
264 h_countsok->SetBinContent(pln * 100 + bar * 2 + pmt + 1,
cntOk[pln][bar][pmt]);
UInt_t fNofPlanes
Number of planes.
R3BChannelAccessMasterEPICS epics
virtual void Exec(Option_t *option)
Method for event loop implementation.
virtual void FinishTask()
Method for finish of the task execution.
virtual InitStatus Init()
Method for task initialization.
virtual void FinishEvent()
A method for finish of processing of an event.
UInt_t fPaddlesPerPlane
Number of bars per plane.
virtual ~R3BNeulandCheckMapping()
Destructor.
R3BChannelAccess * vtarget
Int_t fTrigger
Trigger value.
R3BEventHeader * header
Event header - input data.
struct R3BNeulandCheckMapping::@240015161367143025021213366075002127224226233032 ca[60][50][2]
TClonesArray * fMapped
Array with mapped data - input data.
R3BNeulandCheckMapping()
Default constructor.
const Int_t & GetPlaneId() const
const Int_t & GetBarId() const