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";
68 for (Int_t pln = 0; pln < fNofPlanes; pln++)
70 for (Int_t bar = 0; bar < fPaddlesPerPlane; bar++)
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";
95 for (Int_t pln = 0; pln < fNofPlanes; pln++)
97 for (Int_t bar = 0; bar < fPaddlesPerPlane; bar++)
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";
119 auto& entryon = ca[iPlnHvOn][iBarHvOn][iPmtHvOn];
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";
148 std::cout <<
"Exec ts0=" << timestamp0 <<
" ts1=" << timestamp1 <<
" diff=" << difftime(timestamp1, timestamp0)
154 std::cout <<
"5 seconds? " << std::endl;
156 auto& entryoff = ca[iPlnHvOn][iBarHvOn][iPmtHvOn];
157 entryoff.vtarget->Set(-1);
158 entryoff.group->Commit();
163 entryoff.group->Fetch();
164 if (entryoff.vmon->Get() < 20.)
171 if (iBarHvOn == fPaddlesPerPlane)
182 iPlnHvOn = fNofPlanes - 1;
183 iBarHvOn = fPaddlesPerPlane - 1;
185 std::cout <<
"ALL DONE!" << std::endl;
193 std::cout <<
"Enabling " << iPlnHvOn <<
':' << iBarHvOn <<
':' << iPmtHvOn <<
"..." << std::flush;
194 auto& entryon = ca[iPlnHvOn][iBarHvOn][iPmtHvOn];
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";
213 if ((fTrigger >= 0) && (header) && (header->GetTrigger() != fTrigger))
216 Int_t nHits = fMapped->GetEntries();
221 for (Int_t i = 0; i < nHits; i++)
237 if (iPlane - 1 == iPlnHvOn && iBar - 1 == iBarHvOn && iSide - 1 == iPmtHvOn)
240 cntOk[iPlnHvOn][iBarHvOn][iPmtHvOn]++;