#include "hrich700eventdisplay.h"
#include "hades.h"
#include "hruntimedb.h"
#include "hcategory.h"
#include "hevent.h"
#include "hgeantrich.h"
#include "hlinearcatiter.h"
#include "hmatrixcatiter.h"
#include "hparset.h"
#include "hruntimedb.h"
#include "hspectrometer.h"
#include "richdef.h"
#include "hrich700drawhist.h"
#include "hrich700utils.h"
#include "hrich700digipar.h"
#include "hrichcalsim.h"
#include "hrichhitsim.h"
#include "hgeantkine.h"
#include "TCanvas.h"
#include "TH2D.h"
#include "TPad.h"
#include "TEllipse.h"
#include "TLatex.h"
#include "TBox.h"
#include <iostream>
#include <sstream>
#include <utility>
using namespace std;
ClassImp(HRich700EventDisplay)
HRich700EventDisplay::HRich700EventDisplay():
fEventNum(0),
fDrawRichPhotons(kTRUE),
fDrawRichDirects(kTRUE),
fDrawRichCals(kTRUE),
fDrawRichHits(kTRUE),
fNofEventsToDraw(10),
fNofDrawnEvents(0)
{
}
HRich700EventDisplay::~HRich700EventDisplay()
{
}
Bool_t HRich700EventDisplay::init()
{
fCatRichPhoton = gHades->getCurrentEvent()->getCategory(catRichGeantRaw);
fCatRichDirect = gHades->getCurrentEvent()->getCategory(catRichGeantRaw + 1);
fCatRichCal = gHades->getCurrentEvent()->getCategory(catRichCal);
fCatRichHit = gHades->getCurrentEvent()->getCategory(catRichHit);
fCatKine = gHades->getCurrentEvent()->getCategory(catGeantKine);
fDigiPar = (HRich700DigiPar*) gHades->getRuntimeDb()->getContainer("Rich700DigiPar");
if(!fDigiPar) {
Error("init", "Can not retrieve HRich700DigiPar");
return kFALSE;
}
fHM = new HRich700HistManager();
return kTRUE;
}
Bool_t HRich700EventDisplay::reinit()
{
return kTRUE;
}
Int_t HRich700EventDisplay::execute()
{
HRichDrawHist::SetDefaultDrawStyle();
fEventNum++;
Bool_t isDrawCurrentEvent = kFALSE;
if (fCatRichHit->getEntries() > 0 ) {
isDrawCurrentEvent = kTRUE;
fNofDrawnEvents++;
}
if (fNofDrawnEvents > fNofEventsToDraw) return 0;
if (isDrawCurrentEvent) {
drawOneEvent();
drawOneRing();
}
return 0;
}
void HRich700EventDisplay::drawOneEvent()
{
stringstream ss;
ss << "hrich_event_display_event_"<< fNofDrawnEvents;
TCanvas *c = fHM->CreateCanvas(ss.str().c_str(), ss.str().c_str(), 800, 900);
c->cd();
TH2D* pad = new TH2D("padU", ";x [mm];y [mm]", 1, -700., 700., 1, -700., 700);
HRichDrawHist::DrawH2(pad);
pad->GetYaxis()->SetTitleOffset(0.75);
gPad->SetLeftMargin(0.1);
gPad->SetRightMargin(0.05);
drawPmts(0., 0., false);
if (fDrawRichHits && fCatRichHit != NULL) {
Int_t nofRichHits = fCatRichHit->getEntries();
for (Int_t i = 0; i < nofRichHits; i++) {
HRichHit* richHit = static_cast<HRichHit*>(fCatRichHit->getObject(i));
TEllipse* circle = new TEllipse(richHit->fRich700CircleCenterX, richHit->fRich700CircleCenterY, richHit->fRich700CircleRadius);
circle->SetFillStyle(0);
circle->SetLineWidth(3);
circle->Draw();
TEllipse* cCircle = new TEllipse(richHit->fRich700CircleCenterX, richHit->fRich700CircleCenterY, 5.);
cCircle->SetFillColor(kBlack);
cCircle->Draw();
}
}
if (fDrawRichCals && fCatRichCal != NULL){
Int_t nofRichCals = fCatRichCal->getEntries();
for (Int_t i = 0; i < nofRichCals; i++) {
HRichCal* richCal = static_cast<HRichCal*>(fCatRichCal->getObject(i));
Int_t loc[3];
loc[0] = richCal->getSector();
loc[1] = richCal->getCol();
loc[2] = richCal->getRow();
pair<Double_t, Double_t> xy = fDigiPar->getXY(loc);
TEllipse* hitDr = new TEllipse(xy.first, xy.second, 5.0);
hitDr->SetFillColor(kRed);
hitDr->SetLineColor(kRed);
hitDr->Draw();
}
}
if (fDrawRichPhotons && fCatRichPhoton != NULL){
Int_t nofRichPhotons = fCatRichPhoton->getEntries();
for (Int_t i = 0; i < nofRichPhotons; i++) {
HGeantRichPhoton* richPhoton = static_cast<HGeantRichPhoton*>(fCatRichPhoton->getObject(i));
pair<Double_t, Double_t> pmtXY = fDigiPar->getPmtCenter(richPhoton->getPmtId());
Double_t photonX = richPhoton->getY();
Double_t photonY = richPhoton->getX();
TEllipse* hitDr = new TEllipse(pmtXY.first + photonX, pmtXY.second + photonY, 1.5);
hitDr->SetFillColor(kBlue);
hitDr->SetLineColor(kBlue);
hitDr->Draw();
}
}
if (fDrawRichDirects && fCatRichDirect != NULL){
Int_t nofRichDirect = fCatRichDirect->getEntries();
for (Int_t i = 0; i < nofRichDirect; i++) {
HGeantRichDirect* richDirect = static_cast<HGeantRichDirect*>(fCatRichDirect->getObject(i));
pair<Double_t, Double_t> pmtXY = fDigiPar->getPmtCenter(richDirect->getPmtId());
Double_t directX = richDirect->getY();
Double_t directY = richDirect->getX();
TEllipse* hitDr = new TEllipse(pmtXY.first + directX, pmtXY.second + directY, 3.0);
hitDr->SetFillColor(kGreen);
hitDr->SetLineColor(kGreen);
hitDr->Draw();
}
}
}
void HRich700EventDisplay::drawOneRing()
{
if (fCatRichHit == NULL) return;
stringstream ss;
ss << "hrich_event_display_ring_"<< fNofDrawnEvents;
TCanvas *c = fHM->CreateCanvas(ss.str().c_str(), ss.str().c_str(), 800, 900);
c->cd();
TH2D* pad = new TH2D("padU", ";x [mm];y [mm]", 1, -50., 50., 1, -50., 50);
HRichDrawHist::DrawH2(pad);
pad->GetYaxis()->SetTitleOffset(0.75);
gPad->SetLeftMargin(0.1);
gPad->SetRightMargin(0.05);
HRichHit* ring = static_cast<HRichHit*>(fCatRichHit->getObject(0));
if (ring == NULL) return;
Double_t xc = ring->fRich700CircleCenterX;
Double_t yc = ring->fRich700CircleCenterY;
drawPmts(xc, yc, true);
if (fDrawRichCals && fCatRichCal != NULL){
Int_t nofRichCals = fCatRichCal->getEntries();
Double_t pixelHalfSize = fDigiPar->getPmtSensSize() /fDigiPar->getNPixelInRow() / 2.;
for (Int_t i = 0; i < nofRichCals; i++) {
HRichCal* richCal = static_cast<HRichCal*>(fCatRichCal->getObject(i));
Int_t loc[3];
loc[0] = richCal->getSector();
loc[1] = richCal->getCol();
loc[2] = richCal->getRow();
pair<Double_t, Double_t> xy = fDigiPar->getXY(loc);
TBox* box = new TBox(xy.first - xc - pixelHalfSize, xy.second - yc - pixelHalfSize,
xy.first - xc + pixelHalfSize, xy.second - yc + pixelHalfSize);
box->SetFillColor(kRed);
box->SetFillColorAlpha(kRed, 0.35);
box->SetLineWidth(2);
box->Draw();
TBox* box2 = new TBox(xy.first - xc - pixelHalfSize, xy.second - yc - pixelHalfSize,
xy.first - xc + pixelHalfSize, xy.second - yc + pixelHalfSize);
box2->SetLineColor(kRed + 3);
box2->SetFillStyle(0);
box2->SetLineWidth(2);
box2->Draw();
}
}
TEllipse* circle = new TEllipse(ring->fRich700CircleCenterX - xc, ring->fRich700CircleCenterY - yc, ring->fRich700CircleRadius);
circle->SetFillStyle(0);
circle->SetLineWidth(3);
circle->Draw();
TEllipse* cCircle = new TEllipse(ring->fRich700CircleCenterX - xc, ring->fRich700CircleCenterY - yc, 1.);
cCircle->SetFillColor(kBlack);
cCircle->Draw();
Bool_t drawAllRings = kTRUE;
if (drawAllRings) {
Int_t nofRings = fCatRichHit->getEntries();
for (Int_t i = 1; i < nofRings; i++) {
HRichHit* ring1 = static_cast<HRichHit*>(fCatRichHit->getObject(i));
if (ring == NULL) return;
TEllipse* circle = new TEllipse(ring1->fRich700CircleCenterX - xc, ring1->fRich700CircleCenterY - yc, ring1->fRich700CircleRadius);
circle->SetFillStyle(0);
circle->SetLineWidth(3);
circle->Draw();
TEllipse* cCircle = new TEllipse(ring1->fRich700CircleCenterX - xc, ring1->fRich700CircleCenterY - yc, 1.);
cCircle->SetFillColor(kBlack);
cCircle->Draw();
}
}
if (fDrawRichPhotons && fCatRichPhoton != NULL){
Int_t nofRichPhotons = fCatRichPhoton->getEntries();
for (Int_t i = 0; i < nofRichPhotons; i++) {
HGeantRichPhoton* richPhoton = static_cast<HGeantRichPhoton*>(fCatRichPhoton->getObject(i));
pair<Double_t, Double_t> pmtXY = fDigiPar->getPmtCenter(richPhoton->getPmtId());
Double_t photonX = richPhoton->getY();
Double_t photonY = richPhoton->getX();
TEllipse* hitDr = new TEllipse( pmtXY.first + photonX - xc, pmtXY.second + photonY - yc, .6);
hitDr->SetFillColor(kBlue);
hitDr->SetLineColor(kBlue);
hitDr->Draw();
}
}
if (fDrawRichDirects && fCatRichDirect != NULL){
Int_t nofRichDirect = fCatRichDirect->getEntries();
for (Int_t i = 0; i < nofRichDirect; i++) {
HGeantRichDirect* richDirect = static_cast<HGeantRichDirect*>(fCatRichDirect->getObject(i));
pair<Double_t, Double_t> pmtXY = fDigiPar->getPmtCenter(richDirect->getPmtId());
Double_t directX = richDirect->getY();
Double_t directY = richDirect->getX();
TEllipse* hitDr = new TEllipse( pmtXY.first + directX - xc, pmtXY.second + directY - yc, .8);
hitDr->SetFillColor(kGreen);
hitDr->SetLineColor(kGreen);
hitDr->Draw();
}
}
TString ssCircleParam;
ssCircleParam.Form("(x, y, R, n)=(%.1f, %.1f, %.2f, %i)", ring->fRich700CircleCenterX, ring->fRich700CircleCenterY,
ring->fRich700CircleRadius, ring->fRich700NofRichCals);
TLatex* latexCircle = new TLatex(-49, 40., ssCircleParam.Data());
latexCircle->SetTextSize(0.05);
latexCircle->Draw();
}
void HRich700EventDisplay::drawPmts(Double_t offsetX, Double_t offsetY, Bool_t drawSens)
{
Double_t pmtHalfSize = fDigiPar->getPmtSize() / 2.;
Double_t pmtHalfSensSize = fDigiPar->getPmtSensSize() / 2.;
map<Int_t,HRich700PmtData> pmtDataMap = fDigiPar->getPmtDataMapPmtId();
const Int_t colors[] = { kBlue, kGreen + 1, kMagenta, kYellow+3, kRed, kCyan+2, kGray, kPink - 7};
vector<Int_t> colorVec = RichUtils::MakeVector(colors);
map<Int_t, Int_t> colorMap;
for(map<Int_t,HRich700PmtData>::iterator it = pmtDataMap.begin(); it != pmtDataMap.end(); it++) {
if (colorMap.find(it->second.fPmtType) == colorMap.end()) {
Int_t colorInd = (colorMap.size() >= colorVec.size() )? colorVec.size() - 1: colorMap.size();
colorMap[it->second.fPmtType] = colors[colorInd];
}
}
for(map<Int_t,HRich700PmtData>::iterator it = pmtDataMap.begin(); it != pmtDataMap.end(); it++) {
Double_t pmtX = it->second.fX;
Double_t pmtY = it->second.fY;
TBox* box = new TBox(pmtX - pmtHalfSize - offsetX, pmtY - pmtHalfSize - offsetY, pmtX + pmtHalfSize - offsetX, pmtY + pmtHalfSize - offsetY);
box->SetFillStyle(drawSens?3003:3001);
box->SetFillColor(colorMap[it->second.fPmtType]);
box->Draw();
TBox* box2 = new TBox(pmtX - pmtHalfSize - offsetX, pmtY - pmtHalfSize - offsetY, pmtX + pmtHalfSize - offsetX, pmtY + pmtHalfSize - offsetY);
box2->SetLineColor(kOrange + 1);
box2->SetFillStyle(0);
box2->SetLineWidth(2);
box2->Draw();
if (drawSens) {
TBox* boxSens = new TBox(pmtX - pmtHalfSensSize - offsetX, pmtY - pmtHalfSensSize - offsetY,
pmtX + pmtHalfSensSize - offsetX, pmtY + pmtHalfSensSize - offsetY);
boxSens->SetLineColor(kGreen + 2);
boxSens->SetFillStyle(0);
boxSens->SetLineWidth(2);
boxSens->Draw();
}
}
}
Bool_t HRich700EventDisplay::finalize()
{
fHM->SaveCanvasToImage(string(fOutputDir + "/"), "pdf");
return kTRUE;
}
hrich700eventdisplay.cc:1 hrich700eventdisplay.cc:2 hrich700eventdisplay.cc:3 hrich700eventdisplay.cc:4 hrich700eventdisplay.cc:5 hrich700eventdisplay.cc:6 hrich700eventdisplay.cc:7 hrich700eventdisplay.cc:8 hrich700eventdisplay.cc:9 hrich700eventdisplay.cc:10 hrich700eventdisplay.cc:11 hrich700eventdisplay.cc:12 hrich700eventdisplay.cc:13 hrich700eventdisplay.cc:14 hrich700eventdisplay.cc:15 hrich700eventdisplay.cc:16 hrich700eventdisplay.cc:17 hrich700eventdisplay.cc:18 hrich700eventdisplay.cc:19 hrich700eventdisplay.cc:20 hrich700eventdisplay.cc:21 hrich700eventdisplay.cc:22 hrich700eventdisplay.cc:23 hrich700eventdisplay.cc:24 hrich700eventdisplay.cc:25 hrich700eventdisplay.cc:26 hrich700eventdisplay.cc:27 hrich700eventdisplay.cc:28 hrich700eventdisplay.cc:29 hrich700eventdisplay.cc:30 hrich700eventdisplay.cc:31 hrich700eventdisplay.cc:32 hrich700eventdisplay.cc:33 hrich700eventdisplay.cc:34 hrich700eventdisplay.cc:35 hrich700eventdisplay.cc:36 hrich700eventdisplay.cc:37 hrich700eventdisplay.cc:38 hrich700eventdisplay.cc:39 hrich700eventdisplay.cc:40 hrich700eventdisplay.cc:41 hrich700eventdisplay.cc:42 hrich700eventdisplay.cc:43 hrich700eventdisplay.cc:44 hrich700eventdisplay.cc:45 hrich700eventdisplay.cc:46 hrich700eventdisplay.cc:47 hrich700eventdisplay.cc:48 hrich700eventdisplay.cc:49 hrich700eventdisplay.cc:50 hrich700eventdisplay.cc:51 hrich700eventdisplay.cc:52 hrich700eventdisplay.cc:53 hrich700eventdisplay.cc:54 hrich700eventdisplay.cc:55 hrich700eventdisplay.cc:56 hrich700eventdisplay.cc:57 hrich700eventdisplay.cc:58 hrich700eventdisplay.cc:59 hrich700eventdisplay.cc:60 hrich700eventdisplay.cc:61 hrich700eventdisplay.cc:62 hrich700eventdisplay.cc:63 hrich700eventdisplay.cc:64 hrich700eventdisplay.cc:65 hrich700eventdisplay.cc:66 hrich700eventdisplay.cc:67 hrich700eventdisplay.cc:68 hrich700eventdisplay.cc:69 hrich700eventdisplay.cc:70 hrich700eventdisplay.cc:71 hrich700eventdisplay.cc:72 hrich700eventdisplay.cc:73 hrich700eventdisplay.cc:74 hrich700eventdisplay.cc:75 hrich700eventdisplay.cc:76 hrich700eventdisplay.cc:77 hrich700eventdisplay.cc:78 hrich700eventdisplay.cc:79 hrich700eventdisplay.cc:80 hrich700eventdisplay.cc:81 hrich700eventdisplay.cc:82 hrich700eventdisplay.cc:83 hrich700eventdisplay.cc:84 hrich700eventdisplay.cc:85 hrich700eventdisplay.cc:86 hrich700eventdisplay.cc:87 hrich700eventdisplay.cc:88 hrich700eventdisplay.cc:89 hrich700eventdisplay.cc:90 hrich700eventdisplay.cc:91 hrich700eventdisplay.cc:92 hrich700eventdisplay.cc:93 hrich700eventdisplay.cc:94 hrich700eventdisplay.cc:95 hrich700eventdisplay.cc:96 hrich700eventdisplay.cc:97 hrich700eventdisplay.cc:98 hrich700eventdisplay.cc:99 hrich700eventdisplay.cc:100 hrich700eventdisplay.cc:101 hrich700eventdisplay.cc:102 hrich700eventdisplay.cc:103 hrich700eventdisplay.cc:104 hrich700eventdisplay.cc:105 hrich700eventdisplay.cc:106 hrich700eventdisplay.cc:107 hrich700eventdisplay.cc:108 hrich700eventdisplay.cc:109 hrich700eventdisplay.cc:110 hrich700eventdisplay.cc:111 hrich700eventdisplay.cc:112 hrich700eventdisplay.cc:113 hrich700eventdisplay.cc:114 hrich700eventdisplay.cc:115 hrich700eventdisplay.cc:116 hrich700eventdisplay.cc:117 hrich700eventdisplay.cc:118 hrich700eventdisplay.cc:119 hrich700eventdisplay.cc:120 hrich700eventdisplay.cc:121 hrich700eventdisplay.cc:122 hrich700eventdisplay.cc:123 hrich700eventdisplay.cc:124 hrich700eventdisplay.cc:125 hrich700eventdisplay.cc:126 hrich700eventdisplay.cc:127 hrich700eventdisplay.cc:128 hrich700eventdisplay.cc:129 hrich700eventdisplay.cc:130 hrich700eventdisplay.cc:131 hrich700eventdisplay.cc:132 hrich700eventdisplay.cc:133 hrich700eventdisplay.cc:134 hrich700eventdisplay.cc:135 hrich700eventdisplay.cc:136 hrich700eventdisplay.cc:137 hrich700eventdisplay.cc:138 hrich700eventdisplay.cc:139 hrich700eventdisplay.cc:140 hrich700eventdisplay.cc:141 hrich700eventdisplay.cc:142 hrich700eventdisplay.cc:143 hrich700eventdisplay.cc:144 hrich700eventdisplay.cc:145 hrich700eventdisplay.cc:146 hrich700eventdisplay.cc:147 hrich700eventdisplay.cc:148 hrich700eventdisplay.cc:149 hrich700eventdisplay.cc:150 hrich700eventdisplay.cc:151 hrich700eventdisplay.cc:152 hrich700eventdisplay.cc:153 hrich700eventdisplay.cc:154 hrich700eventdisplay.cc:155 hrich700eventdisplay.cc:156 hrich700eventdisplay.cc:157 hrich700eventdisplay.cc:158 hrich700eventdisplay.cc:159 hrich700eventdisplay.cc:160 hrich700eventdisplay.cc:161 hrich700eventdisplay.cc:162 hrich700eventdisplay.cc:163 hrich700eventdisplay.cc:164 hrich700eventdisplay.cc:165 hrich700eventdisplay.cc:166 hrich700eventdisplay.cc:167 hrich700eventdisplay.cc:168 hrich700eventdisplay.cc:169 hrich700eventdisplay.cc:170 hrich700eventdisplay.cc:171 hrich700eventdisplay.cc:172 hrich700eventdisplay.cc:173 hrich700eventdisplay.cc:174 hrich700eventdisplay.cc:175 hrich700eventdisplay.cc:176 hrich700eventdisplay.cc:177 hrich700eventdisplay.cc:178 hrich700eventdisplay.cc:179 hrich700eventdisplay.cc:180 hrich700eventdisplay.cc:181 hrich700eventdisplay.cc:182 hrich700eventdisplay.cc:183 hrich700eventdisplay.cc:184 hrich700eventdisplay.cc:185 hrich700eventdisplay.cc:186 hrich700eventdisplay.cc:187 hrich700eventdisplay.cc:188 hrich700eventdisplay.cc:189 hrich700eventdisplay.cc:190 hrich700eventdisplay.cc:191 hrich700eventdisplay.cc:192 hrich700eventdisplay.cc:193 hrich700eventdisplay.cc:194 hrich700eventdisplay.cc:195 hrich700eventdisplay.cc:196 hrich700eventdisplay.cc:197 hrich700eventdisplay.cc:198 hrich700eventdisplay.cc:199 hrich700eventdisplay.cc:200 hrich700eventdisplay.cc:201 hrich700eventdisplay.cc:202 hrich700eventdisplay.cc:203 hrich700eventdisplay.cc:204 hrich700eventdisplay.cc:205 hrich700eventdisplay.cc:206 hrich700eventdisplay.cc:207 hrich700eventdisplay.cc:208 hrich700eventdisplay.cc:209 hrich700eventdisplay.cc:210 hrich700eventdisplay.cc:211 hrich700eventdisplay.cc:212 hrich700eventdisplay.cc:213 hrich700eventdisplay.cc:214 hrich700eventdisplay.cc:215 hrich700eventdisplay.cc:216 hrich700eventdisplay.cc:217 hrich700eventdisplay.cc:218 hrich700eventdisplay.cc:219 hrich700eventdisplay.cc:220 hrich700eventdisplay.cc:221 hrich700eventdisplay.cc:222 hrich700eventdisplay.cc:223 hrich700eventdisplay.cc:224 hrich700eventdisplay.cc:225 hrich700eventdisplay.cc:226 hrich700eventdisplay.cc:227 hrich700eventdisplay.cc:228 hrich700eventdisplay.cc:229 hrich700eventdisplay.cc:230 hrich700eventdisplay.cc:231 hrich700eventdisplay.cc:232 hrich700eventdisplay.cc:233 hrich700eventdisplay.cc:234 hrich700eventdisplay.cc:235 hrich700eventdisplay.cc:236 hrich700eventdisplay.cc:237 hrich700eventdisplay.cc:238 hrich700eventdisplay.cc:239 hrich700eventdisplay.cc:240 hrich700eventdisplay.cc:241 hrich700eventdisplay.cc:242 hrich700eventdisplay.cc:243 hrich700eventdisplay.cc:244 hrich700eventdisplay.cc:245 hrich700eventdisplay.cc:246 hrich700eventdisplay.cc:247 hrich700eventdisplay.cc:248 hrich700eventdisplay.cc:249 hrich700eventdisplay.cc:250 hrich700eventdisplay.cc:251 hrich700eventdisplay.cc:252 hrich700eventdisplay.cc:253 hrich700eventdisplay.cc:254 hrich700eventdisplay.cc:255 hrich700eventdisplay.cc:256 hrich700eventdisplay.cc:257 hrich700eventdisplay.cc:258 hrich700eventdisplay.cc:259 hrich700eventdisplay.cc:260 hrich700eventdisplay.cc:261 hrich700eventdisplay.cc:262 hrich700eventdisplay.cc:263 hrich700eventdisplay.cc:264 hrich700eventdisplay.cc:265 hrich700eventdisplay.cc:266 hrich700eventdisplay.cc:267 hrich700eventdisplay.cc:268 hrich700eventdisplay.cc:269 hrich700eventdisplay.cc:270 hrich700eventdisplay.cc:271 hrich700eventdisplay.cc:272 hrich700eventdisplay.cc:273 hrich700eventdisplay.cc:274 hrich700eventdisplay.cc:275 hrich700eventdisplay.cc:276 hrich700eventdisplay.cc:277 hrich700eventdisplay.cc:278 hrich700eventdisplay.cc:279 hrich700eventdisplay.cc:280 hrich700eventdisplay.cc:281 hrich700eventdisplay.cc:282 hrich700eventdisplay.cc:283 hrich700eventdisplay.cc:284 hrich700eventdisplay.cc:285 hrich700eventdisplay.cc:286 hrich700eventdisplay.cc:287 hrich700eventdisplay.cc:288 hrich700eventdisplay.cc:289 hrich700eventdisplay.cc:290 hrich700eventdisplay.cc:291 hrich700eventdisplay.cc:292 hrich700eventdisplay.cc:293 hrich700eventdisplay.cc:294 hrich700eventdisplay.cc:295 hrich700eventdisplay.cc:296 hrich700eventdisplay.cc:297 hrich700eventdisplay.cc:298 hrich700eventdisplay.cc:299 hrich700eventdisplay.cc:300 hrich700eventdisplay.cc:301 hrich700eventdisplay.cc:302 hrich700eventdisplay.cc:303 hrich700eventdisplay.cc:304 hrich700eventdisplay.cc:305 hrich700eventdisplay.cc:306 hrich700eventdisplay.cc:307 hrich700eventdisplay.cc:308 hrich700eventdisplay.cc:309 hrich700eventdisplay.cc:310 hrich700eventdisplay.cc:311 hrich700eventdisplay.cc:312 hrich700eventdisplay.cc:313 hrich700eventdisplay.cc:314 hrich700eventdisplay.cc:315 hrich700eventdisplay.cc:316 hrich700eventdisplay.cc:317 hrich700eventdisplay.cc:318 hrich700eventdisplay.cc:319 hrich700eventdisplay.cc:320 hrich700eventdisplay.cc:321 hrich700eventdisplay.cc:322 hrich700eventdisplay.cc:323 hrich700eventdisplay.cc:324 hrich700eventdisplay.cc:325 hrich700eventdisplay.cc:326 hrich700eventdisplay.cc:327 hrich700eventdisplay.cc:328 hrich700eventdisplay.cc:329 hrich700eventdisplay.cc:330 hrich700eventdisplay.cc:331 hrich700eventdisplay.cc:332 hrich700eventdisplay.cc:333 hrich700eventdisplay.cc:334 hrich700eventdisplay.cc:335 hrich700eventdisplay.cc:336 hrich700eventdisplay.cc:337 hrich700eventdisplay.cc:338 hrich700eventdisplay.cc:339 hrich700eventdisplay.cc:340 hrich700eventdisplay.cc:341 hrich700eventdisplay.cc:342 hrich700eventdisplay.cc:343 hrich700eventdisplay.cc:344 hrich700eventdisplay.cc:345 hrich700eventdisplay.cc:346 hrich700eventdisplay.cc:347 hrich700eventdisplay.cc:348 hrich700eventdisplay.cc:349 hrich700eventdisplay.cc:350 hrich700eventdisplay.cc:351 hrich700eventdisplay.cc:352 hrich700eventdisplay.cc:353 hrich700eventdisplay.cc:354 hrich700eventdisplay.cc:355 hrich700eventdisplay.cc:356 hrich700eventdisplay.cc:357 hrich700eventdisplay.cc:358 hrich700eventdisplay.cc:359 hrich700eventdisplay.cc:360 hrich700eventdisplay.cc:361 hrich700eventdisplay.cc:362 hrich700eventdisplay.cc:363 hrich700eventdisplay.cc:364 hrich700eventdisplay.cc:365 hrich700eventdisplay.cc:366 hrich700eventdisplay.cc:367 hrich700eventdisplay.cc:368 hrich700eventdisplay.cc:369 hrich700eventdisplay.cc:370 hrich700eventdisplay.cc:371 hrich700eventdisplay.cc:372 hrich700eventdisplay.cc:373 hrich700eventdisplay.cc:374 hrich700eventdisplay.cc:375 hrich700eventdisplay.cc:376 hrich700eventdisplay.cc:377 hrich700eventdisplay.cc:378 hrich700eventdisplay.cc:379 hrich700eventdisplay.cc:380 hrich700eventdisplay.cc:381 hrich700eventdisplay.cc:382 hrich700eventdisplay.cc:383 hrich700eventdisplay.cc:384 hrich700eventdisplay.cc:385 hrich700eventdisplay.cc:386 hrich700eventdisplay.cc:387 hrich700eventdisplay.cc:388 hrich700eventdisplay.cc:389 hrich700eventdisplay.cc:390 hrich700eventdisplay.cc:391 hrich700eventdisplay.cc:392 hrich700eventdisplay.cc:393 hrich700eventdisplay.cc:394 hrich700eventdisplay.cc:395 hrich700eventdisplay.cc:396 hrich700eventdisplay.cc:397 hrich700eventdisplay.cc:398 hrich700eventdisplay.cc:399 hrich700eventdisplay.cc:400 hrich700eventdisplay.cc:401