#include <PlotSnarl.h>
Inheritance diagram for Anp::PlotSnarl:

Public Member Functions | |
| PlotSnarl () | |
| virtual | ~PlotSnarl () |
| bool | Run (Record &record) |
| void | Config (const Registry ®) |
| void | Set (TDirectory *dir) |
| void | End (const DataBlock &block) |
Private Member Functions | |
| void | Plot (int key, float data) |
| TH1 * | GetTH1 (const std::string &key, const std::string &name="") |
Private Attributes | |
| TDirectory * | fDir |
| std::string | fDirName |
| std::map< int, TH1 * > | fHist |
| double | fTorMin |
| double | fTorMax |
| DataBlock | fBlock |
| bool | fPlot |
| int | fNMiss |
| TH1 * | fTimeEvent |
| TH1 * | fTimeStrip |
|
|
Definition at line 28 of file PlotSnarl.cxx. 00029 :fDir(0), 00030 fDirName("snarl"), 00031 fTorMin(-1.0), 00032 fTorMax(-1.0), 00033 fPlot(false), 00034 fNMiss(0) 00035 { 00036 }
|
|
|
Definition at line 39 of file PlotSnarl.cxx. 00040 {
00041 }
|
|
|
Reimplemented from Anp::AlgSnarl. Definition at line 86 of file PlotSnarl.cxx. References fDirName, fTorMax, fTorMin, Registry::Get(), Registry::KeyExists(), and reg. 00087 {
00088 //
00089 // Configure self
00090 //
00091
00092 reg.Get("PlotSnarlTorMin", fTorMin);
00093 reg.Get("PlotSnarlTorMax", fTorMax);
00094
00095 const char *value_char = 0;
00096 if(reg.Get("PlotSnarlDirName", value_char))
00097 {
00098 fDirName = value_char;
00099 }
00100
00101 if(reg.KeyExists("PrintConfig"))
00102 {
00103 cout << "PlotSnarl::Config" << endl
00104 << " DirName = " << fDirName << endl
00105 << " TorMin = " << fTorMin << endl
00106 << " TorMax = " << fTorMax << endl;
00107 }
00108 }
|
|
|
Reimplemented from Anp::AlgSnarl. Definition at line 136 of file PlotSnarl.cxx. References fBlock, fDir, and DataBlock::SetInput(). 00137 {
00138 //
00139 // Write total toroid information
00140 //
00141
00142 fBlock.SetInput(block);
00143
00144 if(fDir)
00145 {
00146 fDir -> WriteTObject(&fBlock, "block", "Overwrite");
00147 }
00148 }
|
|
||||||||||||
|
Definition at line 177 of file PlotSnarl.cxx. References fDir, and Anp::SetDir(). 00178 {
00179 TH1 *h = HistMan::Instance().CreateTH1(key, "snarl");
00180 if(h)
00181 {
00182 Anp::SetDir(h, fDir, name);
00183 }
00184 else
00185 {
00186 ++fNMiss;
00187 }
00188
00189 return h;
00190 }
|
|
||||||||||||
|
Definition at line 151 of file PlotSnarl.cxx. References fDir, fHist, and Anp::SetDir(). 00152 {
00153 //
00154 // Find key and fill histogram with data
00155 //
00156 if(!fDir) return;
00157
00158 map<int, TH1 *>::iterator hit = fHist.find(key);
00159 if(hit == fHist.end())
00160 {
00161 TH1 *h = HistMan::Instance().CreateTH1(key, "snarl");
00162 if(h)
00163 {
00164 Anp::SetDir(h, fDir);
00165 }
00166
00167 hit = fHist.insert(map<int, TH1 *>::value_type(key, h)).first;
00168 }
00169
00170 if(hit -> second)
00171 {
00172 hit -> second -> Fill(data);
00173 }
00174 }
|
|
|
Implements Anp::AlgSnarl. Definition at line 44 of file PlotSnarl.cxx. References DataBlock::Add(), Anp::Data, Anp::Record::DataBeg(), Anp::Record::DataEnd(), Anp::DataIter, Anp::Record::EventBeg(), Anp::Record::EventEnd(), Anp::EventIter, fBlock, fDir, fTimeEvent, fTimeStrip, fTorMin, Anp::Record::GetHeader(), Anp::Corr::Key, MinTime, Anp::Header::NSec(), Anp::Record::StripBeg(), Anp::Record::StripEnd(), Anp::StripIter, Anp::Header::Tor101(), and Anp::Header::TorTgt(). 00045 {
00046 //
00047 // Plot snarl data
00048 //
00049 if(!fDir || !fPlot) return true;
00050
00051 if(fTorMin > 0.0)
00052 {
00053 if (record.GetHeader().TorTgt() < fTorMin) return true;
00054 else if(record.GetHeader().TorTgt() > fTorMax) return true;
00055 }
00056
00057 fBlock.Add(record);
00058
00059 for(DataIter idata = record.DataBeg(); idata != record.DataEnd(); ++idata)
00060 {
00061 PlotSnarl::Plot(idata -> Key(), idata -> Data());
00062 }
00063
00064 //
00065 // Plot toroid reading
00066 //
00067 PlotSnarl::Plot(10, record.GetHeader().Tor101());
00068 PlotSnarl::Plot(11, record.GetHeader().TorTgt());
00069
00070 const double start_time = record.GetHeader().NSec();
00071
00072 for(EventIter ievent = record.EventBeg(); ievent != record.EventEnd(); ++ievent)
00073 {
00074 fTimeEvent -> Fill(1.0e9*ievent -> GetBasic().MinTime() - start_time);
00075 }
00076
00077 for(StripIter istrip = record.StripBeg(); istrip != record.StripEnd(); ++istrip)
00078 {
00079 fTimeStrip -> Fill(istrip -> Time() - start_time);
00080 }
00081
00082 return true;
00083 }
|
|
|
Reimplemented from Anp::AlgSnarl. Definition at line 111 of file PlotSnarl.cxx. References fDir, fDirName, fNMiss, fPlot, fTimeEvent, fTimeStrip, and Anp::GetDir(). 00112 {
00113 //
00114 // Get pointer to TDirectory where histograms will be saved
00115 //
00116 fPlot = false;
00117
00118 if(!dir) return;
00119
00120 fDir = Anp::GetDir(fDirName.c_str(), dir);
00121
00122 fTimeEvent = PlotSnarl::GetTH1("time_event");
00123 fTimeStrip = PlotSnarl::GetTH1("time_strip");
00124
00125 if(fNMiss == 0)
00126 {
00127 fPlot = true;
00128 }
00129 else
00130 {
00131 cerr << "PlotSnarl::Set - missed " << fNMiss << " histograms" << endl;
00132 }
00133 }
|
|
|
Definition at line 54 of file PlotSnarl.h. |
|
|
Definition at line 45 of file PlotSnarl.h. |
|
|
Definition at line 47 of file PlotSnarl.h. |
|
|
Definition at line 49 of file PlotSnarl.h. Referenced by Plot(). |
|
|
Definition at line 57 of file PlotSnarl.h. Referenced by Set(). |
|
|
Definition at line 56 of file PlotSnarl.h. Referenced by Set(). |
|
|
Definition at line 59 of file PlotSnarl.h. |
|
|
Definition at line 60 of file PlotSnarl.h. |
|
|
Definition at line 52 of file PlotSnarl.h. Referenced by Config(). |
|
|
Definition at line 51 of file PlotSnarl.h. |
1.3.9.1