#include <BeamMonDbuModule.h>
Inheritance diagram for BeamMonDbuModule:

Public Member Functions | |
| BeamMonDbuModule () | |
| ~BeamMonDbuModule () | |
| JobCResult | Ana (const MomNavigator *mom) |
| void | BeginFile () |
| void | EndFile () |
| void | EndJob () |
Private Member Functions | |
| void | FillPipeline () |
| void | Reap () |
| void | Process (const RawBeamMonHeaderBlock &rbmhb, const RawBeamMonBlock &rbmb) |
Private Attributes | |
| BDPipeline | fPipe |
| BMFileSummaryFiller * | fFileSummaryFiller |
| BMSpillFiller * | fSpillFiller |
| BDScalar * | fProtonIntensity [4] |
| BDEarliest * | fEarliest |
| BDHornCurrent * | fHornCurrent |
| BDTarget * | fTarget |
| BDHadMuMon * | fHadMu [4] |
Created on: Wed Apr 13 18:16:24 2005
Definition at line 42 of file BeamMonDbuModule.h.
|
|
Definition at line 30 of file BeamMonDbuModule.cxx. References FillPipeline(). 00031 : JobCModule() 00032 , fPipe() 00033 , fFileSummaryFiller(0) 00034 , fSpillFiller(0) 00035 { 00036 this->FillPipeline(); 00037 }
|
|
|
Definition at line 38 of file BeamMonDbuModule.cxx.
|
|
|
Implement this for read only access to the MomNavigator Reimplemented from JobCModule. Definition at line 84 of file BeamMonDbuModule.cxx. References BDUniquify::GetUniqueBlocks(), MSG, and Process(). 00085 {
00086 static BDUniquify uniqifier;
00087 vector<BDUniquify::BlockPair> blocks = uniqifier.GetUniqueBlocks(*mom);
00088
00089 size_t nblocks = blocks.size();
00090
00091 if (nblocks == 0) {
00092 MSG("BD",Msg::kWarning)
00093 << "No good beam monitoring data in MOM\n";
00094 return JobCResult::kFailed;
00095 }
00096
00097 for (size_t iblock=0; iblock<nblocks; ++iblock) {
00098 const RawBeamMonHeaderBlock& rbmhb = *blocks[iblock].first;
00099 const RawBeamMonBlock& rbmb = *blocks[iblock].second;
00100
00101 this->Process(rbmhb,rbmb);
00102 }
00103 return JobCResult::kAOK;
00104
00105 }
|
|
|
Implement for notification of begin of file. See GetCurrentFile(). Reimplemented from JobCModule. Definition at line 142 of file BeamMonDbuModule.cxx. References fFileSummaryFiller, JobCModule::GetCurrentFile(), MSG, and BMFileSummaryFiller::NewFile(). 00143 {
00144 const char* file = this->GetCurrentFile();
00145 MSG("BD",Msg::kDebug) << "BeginFile: " << file << endl;
00146 fFileSummaryFiller->NewFile(file);
00147 }
|
|
|
Implement for notification of end of file. See GetLastFile(). Reimplemented from JobCModule. Definition at line 149 of file BeamMonDbuModule.cxx. References BMFileSummaryFiller::Commit(), fFileSummaryFiller, and MSG. 00150 {
00151 MSG("BD",Msg::kDebug) << "EndFile\n";
00152 fFileSummaryFiller->Commit();
00153 }
|
|
|
Implement for notification of end of job Reimplemented from JobCModule. Definition at line 155 of file BeamMonDbuModule.cxx.
|
|
|
Definition at line 60 of file BeamMonDbuModule.cxx. References fEarliest, fFileSummaryFiller, fHadMu, fHornCurrent, fPipe, fProtonIntensity, fSpillFiller, fTarget, BDPipeline::GetProcessPipeline(), BDScalar::SetDevice(), and toroids. Referenced by BeamMonDbuModule(). 00061 {
00062 BDPipeline::ProcessPipeline& pipeline = fPipe.GetProcessPipeline();
00063
00064 const char* toroids[] = { "E:TOR101", "E:TR101D", "E:TORTGT", "E:TRTGTD", 0 };
00065 for (int ind=0; toroids[ind]; ++ind) {
00066 fProtonIntensity[ind] = new BDScalar();
00067 fProtonIntensity[ind]->SetDevice(toroids[ind]);
00068 pipeline.push_back(fProtonIntensity[ind]);
00069 }
00070 pipeline.push_back(fEarliest = new BDEarliest);
00071 pipeline.push_back(fHornCurrent = new BDHornCurrent);
00072 pipeline.push_back(fTarget = new BDTarget);
00073
00074 for (int ind=0; ind<4; ++ind) {
00075 fHadMu[ind] = new BDHadMuMon;
00076 }
00077
00078 fFileSummaryFiller = new BMFileSummaryFiller(*fProtonIntensity[3]);
00079 fSpillFiller = new BMSpillFiller(*fEarliest,fProtonIntensity,
00080 *fHornCurrent,*fTarget,fHadMu);
00081 }
|
|
||||||||||||
|
Definition at line 106 of file BeamMonDbuModule.cxx. References BDSwicCalibrator::Calibrate(), fFileSummaryFiller, fHadMu, fPipe, fSpillFiller, BDSwicCalibrator::Get(), RawBeamMonHeaderBlock::GetTimeStamp(), BDDevices::HadMuMonitors(), MSG, BDHadMuMon::SetData(), BDPipeline::SetSpill(), BMFileSummaryFiller::SetTclkTrigger(), BMSpillFiller::Spill(), RawBeamMonBlock::TclkTriggerDelay(), RawBeamMonBlock::TclkTriggerEvent(), and BMFileSummaryFiller::Timestamp(). Referenced by Ana(). 00108 {
00109 vector<string> hadmu_name = BDDevices::HadMuMonitors();
00110 for (int ind=0; ind<4; ++ind) {
00111 const RawBeamData* d = rbmb[hadmu_name[ind].c_str()];
00112 if (!d) {
00113 MSG("BD",Msg::kDebug)
00114 << "No device data for " << hadmu_name[ind] << ", skipping\n";
00115 continue;
00116 }
00117 fHadMu[ind]->SetData(*d);
00118 }
00119
00120 BDSwicCalibrator::Get().Calibrate(rbmhb,rbmb);
00121
00122 const int trigger_event = 0xa9; // FIXME: needs to be a configurable param.
00123 if (rbmb.TclkTriggerEvent() != trigger_event) {
00124 MSG("BD",Msg::kWarning)
00125 << "Wrong trigger event: " << rbmb.TclkTriggerEvent()
00126 << " != " << trigger_event << endl;
00127 return;
00128 }
00129
00130 // Alert each table of new data
00131 fPipe.SetSpill(rbmhb,rbmb);
00132
00133
00134 fFileSummaryFiller->Timestamp(rbmhb.GetTimeStamp());
00135 fFileSummaryFiller->SetTclkTrigger(rbmb.TclkTriggerEvent(),
00136 rbmb.TclkTriggerDelay());
00137
00138 fSpillFiller->Spill(rbmhb,rbmb);
00139
00140 }
|
|
|
Definition at line 44 of file BeamMonDbuModule.cxx. References fFileSummaryFiller, fHadMu, and fSpillFiller. Referenced by EndJob(), and ~BeamMonDbuModule(). 00045 {
00046 if (fSpillFiller)
00047 delete fSpillFiller;
00048 fSpillFiller = 0;
00049
00050 if (fFileSummaryFiller)
00051 delete fFileSummaryFiller;
00052 fFileSummaryFiller = 0;
00053
00054 for (int ind=0; ind<4; ++ind) {
00055 if (fHadMu[ind]) delete fHadMu[ind];
00056 fHadMu[ind] = 0;
00057 }
00058 }
|
|
|
Definition at line 72 of file BeamMonDbuModule.h. Referenced by FillPipeline(). |
|
|
Definition at line 67 of file BeamMonDbuModule.h. Referenced by BeginFile(), EndFile(), FillPipeline(), Process(), and Reap(). |
|
|
Definition at line 77 of file BeamMonDbuModule.h. Referenced by FillPipeline(), Process(), and Reap(). |
|
|
Definition at line 73 of file BeamMonDbuModule.h. Referenced by FillPipeline(). |
|
|
Definition at line 64 of file BeamMonDbuModule.h. Referenced by FillPipeline(), and Process(). |
|
|
Definition at line 71 of file BeamMonDbuModule.h. Referenced by FillPipeline(). |
|
|
Definition at line 68 of file BeamMonDbuModule.h. Referenced by FillPipeline(), Process(), and Reap(). |
|
|
Definition at line 74 of file BeamMonDbuModule.h. Referenced by FillPipeline(). |
1.3.9.1