Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DigitText.cxx

Go to the documentation of this file.
00001 #include "DigitText.h"
00002 
00003 #include <Midad/Gui/GuiTextView.h>
00004 #include <CandDigit/CandDigitHandle.h>
00005 #include <CandDigit/CandDigitListHandle.h>
00006 #include <Validity/VldContext.h>
00007 #include <Plex/PlexSEIdAltL.h>
00008 #include <Plex/PlexStripEndId.h>
00009 #include <Conventions/Munits.h>
00010 
00011 #include <iostream>
00012 using namespace std;
00013 
00014 DigitText::DigitText(GuiTextView* gtv)
00015     : fText(gtv)
00016 {
00017     const_cast<TGWindow*>(fText->GetParent())->Resize(460,180);
00018 }
00019 
00020 DigitText::~DigitText()
00021 {
00022     delete fText;
00023 }
00024 
00025 
00026 void DigitText::Clear()
00027 {
00028     fText->Clear();
00029 }
00030 
00031 void DigitText::AddLine( const char* line )
00032 {
00033     if (!line) return;
00034     fText->AddLine(line);
00035 }
00036 
00037 void DigitText::AddText( const char* text )
00038 {
00039     if (!text) return;
00040 
00041     // Break up text into lines.
00042     const char* linestart = text;
00043     const char* ptr = text;
00044     while ((*ptr) != '\0') {
00045         if (*ptr == '\n') {
00046             int length = ptr-linestart;
00047             char* line = new char[length+1];
00048             strncpy(line,linestart,length-1); // Omit the return char.
00049             fText->AddLine(line);
00050         }
00051         ++ptr;
00052     }
00053 }
00054 
00055 
00056 void DigitText::AddCandDigitText(const CandDigitHandle& cdh)
00057 {
00058     const PlexSEIdAltL& altl = cdh.GetPlexSEIdAltL();
00059 
00060     const VldContext* vld = cdh.GetVldContext();
00061     const CandDigitListHandle* cdlh;
00062 
00063     
00064     fText->AddLine(Form("Context:          %s",vld->AsString()));
00065     cdlh = dynamic_cast<const CandDigitListHandle*>(cdh.GetMother());
00066     if (cdlh)
00067         fText->AddLine(Form("AbsTime:          %12.9f",cdlh->GetAbsTime()));
00068     fText->AddLine(Form("Plane:            %d",altl.GetPlane()));
00069     fText->AddLine(Form("Charge:           %.1f",cdh.GetCharge()));
00070     fText->AddLine(Form("Charge (no cal):  %.1f",cdh.GetCharge(CalDigitType::kNone)));
00071     fText->AddLine(Form("Channel:          %s",cdh.GetChannelId().AsString("e")));
00072 }
00073 
00074 void DigitText::AddPlexSEIdAltLItemText (const PlexSEIdAltLItem& item)
00075 {
00076     AddStripIdText(item.GetSEId());
00077     AddPixelSpotIdText(item.GetPixelSpotId());
00078     fText->AddLine(Form("Weight:           %f",item.GetWeight()));
00079     fText->AddLine(Form("Charge (PE):      %.1f pe",item.GetPE()));  
00080     fText->AddLine(Form("Time (ns):        %.1f ns",item.GetTime()/Munits::ns)); 
00081 }
00082 
00083 void DigitText::AddStripIdText(const PlexStripEndId&  strip)
00084 {
00085     fText->AddLine(Form("Strip ID:         %s",strip.AsString()));
00086     fText->AddLine(Form("Plane:            %d",strip.GetPlane()));
00087     fText->AddLine(Form("Strip:            %d",strip.GetStrip()));
00088     fText->AddLine(Form("Strip end:        %s",StripEnd::AsString(strip.GetEnd())));
00089     fText->AddLine(Form("View:             %s",PlaneView::AsString(strip.GetPlaneView())));
00090 }
00091 
00092 void DigitText::AddPixelSpotIdText(const PlexPixelSpotId& spot)
00093 {
00094     fText->AddLine(Form("Pixel Spot:       %s",spot.AsString("e")));
00095 }

Generated on Fri Mar 28 15:31:09 2008 for loon by  doxygen 1.3.9.1