CamEvd Class Reference

#include <CamEvd.h>

Inheritance diagram for CamEvd:
CamAna

List of all members.

Public Member Functions

 CamEvd ()
 ~CamEvd ()
bool FillEvent (const AtmosEvent *event)
void MakeHistos ()
void MakeCanvases ()
void Reset ()
void MakePS (bool Q)
bool MakePS ()
void MakeEPS (bool Q)
bool MakeEPS ()
void MakeGIF (bool Q)
bool MakeGIF ()
void MakeROOT (bool Q)
bool MakeROOT ()
void AutoPrint (bool Q)
bool AutoPrint ()
void DoPrint ()
void DoShieldPlot (bool Q)
bool DoShieldPlot ()
void FakeShieldData (bool Q)
bool FakeShieldData ()
void DoShowerPlot (bool Q)
bool DoShowerPlot ()
void MCTimeWin (double D)
double MCTimeWin ()
void DoTimeCorr1 (bool B)
bool DoTimeCorr1 ()
void DoTimeCorr2 (bool B)
bool DoTimeCorr2 ()
void WlsFibreN (double D)
double WlsFibreN ()
void ClearFibreN (double D)
double ClearFibreN ()
void CloseWindow ()
void DoTab (int itab)
void TabUp (bool up)
void SetNumericOptions ()
void SetPlaneRangeUser (int MinPlane=0, int MaxPlane=0)
void PlaneSlider ()
void SetUStripRangeUser (int MinStrip=-1, int MaxStrip=-1)
void UStripSlider ()
void SetVStripRangeUser (int MinStrip=-1, int MaxStrip=-1)
void VStripSlider ()
void SetTimeRangeUser (double MinT=-1.0, double MaxT=-1.0)
void UnZoom ()
void AddFakeShieldData (const char *File)

Private Member Functions

void SetStyle ()
void MakeXYHits (const AtmosEvent *event)
void MakeUVHits (const AtmosEvent *event)
void MakeChargePlot (const AtmosEvent *event)
void MakeTimingPlot (const AtmosEvent *event)
void MakeMCPlot (const AtmosEvent *event)
void MakeShieldPlot (const AtmosEvent *event)
void MakeShowerPlot (const AtmosEvent *event)

Private Attributes

int fRun
int fSubRun
int fSnarl
bool fIsMC
bool fMakePS
bool fMakeEPS
bool fMakeGIF
bool fMakeROOT
bool fAutoPrint
bool fDoShieldPlot
bool fDoShowerPlot
TGTab * cgTab
std::vector< TCanvas * > AllCanvases
TCanvas * fActiveCanvas
TCanvas * cMainView
TCanvas * cSideView
TCanvas * cShieldView
TCanvas * cShowerView
TCanvas * cLIView
TCanvas * cTimingView
TCanvas * cMCMainView
TCanvas * cMCSideView
bool fMakeMCTrkIdView
TCanvas * cMCTrkIdView
TGNumberEntry * cgMCTimeWin
double fMCTimeWin
TGNumberEntry * cgWlsFibreN
TGNumberEntry * cgClearFibreN
double fWlsFibreN
double fClearFibreN
bool fDoTimeCorr1
bool fDoTimeCorr2
double fMeanDEHitDT
double fRMSDEHitDT
TH2F * hUZStpPlnAxis
TH2F * hUZLinearAxis
TH2F * hVZStpPlnAxis
TH2F * hVZLinearAxis
TH2F * hXYAxis
TH2F * hMCTZAxis
TH2F * hTZAxis
TH1F * hRawPlaneCharge
TH1F * hCorrPlaneCharge
TH1F * hMCPlaneDE
TH2F * hPulserLedCharge
TH2F * hUZStpPlnShw
TH2F * hVZStpPlnShw
TH1 * hShwPlnProfile
TH1 * hShwPlnCosZProfile
TH1F * hTrkVeto [4]
TH1F * hShwVeto [4]
TChain * FakeShieldDataChain
AtmosEventFakeAtmosEvent
bool fFakeShieldData
TH1F * hTiming
TGDoubleHSlider * cgPlaneRange
TGDoubleVSlider * cgUStripRange
TGDoubleVSlider * cgVStripRange
int fMinPlane
int fMinUStrip
int fMinVStrip
int fMaxPlane
int fMaxUStrip
int fMaxVStrip
double fMinZ
double fMinU
double fMinV
double fMaxZ
double fMaxU
double fMaxV
double fMinT
double fMaxT
std::vector< TMarker > fUZStpPlnHits
std::vector< TMarker > fUZLinearHitsT
std::vector< TMarker > fUZLinearHitsL
std::vector< TLine > fUZStpPlnLines
std::vector< TLine > fUZLinearLinesT
std::vector< TLine > fUZLinearLinesL
std::vector< TMarker > fVZStpPlnHits
std::vector< TMarker > fVZLinearHitsT
std::vector< TMarker > fVZLinearHitsL
std::vector< TLine > fVZStpPlnLines
std::vector< TLine > fVZLinearLinesT
std::vector< TLine > fVZLinearLinesL
std::vector< TMarker > fTZHits
std::vector< TMarker > fXYHits
std::vector< TLine > fXYLines
std::vector< TMarker > fKeySpots
std::vector< TMarker > fColorScale

Detailed Description

Definition at line 31 of file CamEvd.h.


Constructor & Destructor Documentation

CamEvd::CamEvd (  ) 

Definition at line 148 of file CamEvd.cxx.

References FakeAtmosEvent, FakeShieldDataChain, fAutoPrint, fClearFibreN, fDoShieldPlot, fDoShowerPlot, fDoTimeCorr1, fDoTimeCorr2, fFakeShieldData, fMakeEPS, fMakeGIF, fMakeMCTrkIdView, fMakePS, fMakeROOT, fMaxPlane, fMaxUStrip, fMaxVStrip, fMCTimeWin, fMeanDEHitDT, fMinPlane, fMinUStrip, fMinVStrip, fRMSDEHitDT, fRun, fSnarl, fSubRun, and fWlsFibreN.

00148                {
00149   fRun = fSubRun = fSnarl = 0;
00150   
00151   fMakePS = fMakeEPS = fMakeGIF = fMakeROOT = fAutoPrint = false;
00152 
00153   //Set Configurable
00154   fMCTimeWin = 1.5;
00155   fWlsFibreN = 1.77;
00156   fClearFibreN = 1.77;
00157   fDoTimeCorr1 = true;
00158   fDoTimeCorr2 = true;
00159 
00160   fMeanDEHitDT = 0.0;
00161   fRMSDEHitDT = 0.0;
00162 
00163   fMinPlane = 1;
00164   fMaxPlane = 486;
00165 
00166   fMinUStrip = fMinVStrip = 0;
00167 
00168   fMaxUStrip = fMaxVStrip = 191;
00169 
00170   //this->SetStyle();
00171   gStyle->SetOptStat(0);
00172 
00173   fDoShieldPlot = true;
00174   fFakeShieldData = false;
00175   fDoShowerPlot = true;
00176 
00177   fMakeMCTrkIdView = false;
00178 
00179   FakeShieldDataChain = new TChain("ntp");
00180   FakeAtmosEvent = 0;
00181   FakeShieldDataChain->SetBranchAddress("evt", &FakeAtmosEvent);
00182 }

CamEvd::~CamEvd (  ) 

Definition at line 184 of file CamEvd.cxx.

References Msg::kSynopsis, and MSG.

00184                 {
00185   MSG("FarDetEvent",Msg::kSynopsis) << "CamEvd::~CamEvd" << endl;
00186 }


Member Function Documentation

void CamEvd::AddFakeShieldData ( const char *  File  ) 

Definition at line 2342 of file CamEvd.cxx.

02343 {
02344   return;
02345 }

bool CamEvd::AutoPrint (  )  [inline]

Definition at line 207 of file CamEvd.h.

References fAutoPrint.

00207 {return fAutoPrint;}

void CamEvd::AutoPrint ( bool  Q  )  [inline]

Definition at line 206 of file CamEvd.h.

References fAutoPrint.

00206 {fAutoPrint = Q;}

double CamEvd::ClearFibreN (  )  [inline]

Definition at line 214 of file CamEvd.h.

References fClearFibreN.

Referenced by SetNumericOptions().

00214 {return fClearFibreN;}

void CamEvd::ClearFibreN ( double  D  )  [inline]

Definition at line 213 of file CamEvd.h.

References fClearFibreN.

00213 {fClearFibreN = D;}

void CamEvd::CloseWindow (  ) 

Definition at line 2127 of file CamEvd.cxx.

References Msg::kSynopsis, and MSG.

02127                          {
02128   MSG("FarDetEvent",Msg::kSynopsis) << "Closing Window" << endl;
02129   delete this;
02130   MSG("FarDetEvent",Msg::kSynopsis) << "Shutting Down" << endl;
02131   if(gApplication) gApplication->Terminate();
02132 }

void CamEvd::DoPrint (  ) 

Definition at line 2144 of file CamEvd.cxx.

References AllCanvases, fMakeEPS, fMakeGIF, fMakePS, fMakeROOT, Form(), fRun, fSnarl, fSubRun, Nav::GetName(), Msg::kSynopsis, MSG, UtilCanvas::PadFilled(), Lit::Print(), and HistMan::WriteOut().

Referenced by FillEvent().

02144                      {
02145   Emit("DoPrint()");
02146 
02147   const char *EvId = Form("%d_%d_%d", fRun, fSubRun, fSnarl);
02148 
02149   if (fMakePS) {
02150     MSG("FarDetEvent",Msg::kSynopsis) << "Making postscript file" << endl;
02151     AllCanvases[0]->Print(Form("Views_%s.ps[", EvId));
02152     for(unsigned int i=0; i < AllCanvases.size(); i++)
02153       if(UtilCanvas::PadFilled(AllCanvases[i]))
02154         AllCanvases[i]->Print(Form("Views_%s.ps", EvId));
02155     AllCanvases[0]->Print(Form("Views_%s.ps]", EvId));
02156   }
02157 
02158   if (fMakeEPS) {
02159     MSG("FarDetEvent",Msg::kSynopsis) << "Making encapsulated postscript files" << endl;
02160     for(unsigned int i=0; i < AllCanvases.size(); i++)
02161       if(UtilCanvas::PadFilled(AllCanvases[i]))
02162         AllCanvases[i]->Print(Form("%s_%s.eps",
02163          AllCanvases[i]->GetName(), EvId));
02164   }
02165 
02166   if (fMakeGIF) {
02167     MSG("FarDetEvent",Msg::kSynopsis) << "Making gif image files" << endl;
02168     for(unsigned int i=0; i < AllCanvases.size(); i++)
02169       if(UtilCanvas::PadFilled(AllCanvases[i]))
02170         AllCanvases[i]->Print(Form("%s_%s.gif",
02171          AllCanvases[i]->GetName(), EvId));
02172   }
02173 
02174   if (fMakeROOT) {
02175     MSG("FarDetEvent",Msg::kSynopsis) << "Making root file" << endl;
02176     HistMan hm(this->GetName());
02177     hm.WriteOut(Form("Views_%s.root",EvId));
02178   }
02179 }

bool CamEvd::DoShieldPlot (  )  [inline]

Definition at line 52 of file CamEvd.h.

References fDoShieldPlot.

00052 {return fDoShieldPlot;}

void CamEvd::DoShieldPlot ( bool  Q  )  [inline]

Definition at line 51 of file CamEvd.h.

References fDoShieldPlot.

00051 {fDoShieldPlot=Q;}

bool CamEvd::DoShowerPlot (  )  [inline]

Definition at line 56 of file CamEvd.h.

References fDoShowerPlot.

00056 {return fDoShowerPlot;}

void CamEvd::DoShowerPlot ( bool  Q  )  [inline]

Definition at line 55 of file CamEvd.h.

References fDoShowerPlot.

00055 {fDoShowerPlot=Q;}

void CamEvd::DoTab ( int  itab  ) 

Definition at line 2134 of file CamEvd.cxx.

References AllCanvases, fActiveCanvas, and UtilCanvas::UpdatePad().

02134                            {
02135   fActiveCanvas = AllCanvases[itab];
02136   UtilCanvas::UpdatePad(fActiveCanvas);
02137 }

bool CamEvd::DoTimeCorr1 (  )  [inline]

Definition at line 217 of file CamEvd.h.

References fDoTimeCorr1.

00217 {return fDoTimeCorr1;}

void CamEvd::DoTimeCorr1 ( bool  B  )  [inline]

Definition at line 216 of file CamEvd.h.

References fDoTimeCorr1.

00216 {fDoTimeCorr1 = B;}

bool CamEvd::DoTimeCorr2 (  )  [inline]

Definition at line 219 of file CamEvd.h.

References fDoTimeCorr2.

00219 {return fDoTimeCorr2;}

void CamEvd::DoTimeCorr2 ( bool  B  )  [inline]

Definition at line 218 of file CamEvd.h.

References fDoTimeCorr2.

00218 {fDoTimeCorr2 = B;}

bool CamEvd::FakeShieldData (  )  [inline]

Definition at line 54 of file CamEvd.h.

References fFakeShieldData.

00054 {return fFakeShieldData;}

void CamEvd::FakeShieldData ( bool  Q  )  [inline]

Definition at line 53 of file CamEvd.h.

References fFakeShieldData.

00053 {fFakeShieldData=Q;}

bool CamEvd::FillEvent ( const AtmosEvent event  )  [virtual]

Reimplemented from CamAna.

Definition at line 564 of file CamEvd.cxx.

References ChargeToColor(), cLIView, cMainView, AtmosDeadChip::Crate, cSideView, DataStpPlnFromTZ, DataStripFromT, DoPrint(), FarLayout::Draw(), Draw(), AtmosTrack::EndPlane, AtmosTrack::EndU, AtmosTrack::EndV, AtmosTrack::EndX, AtmosTrack::EndY, AtmosTrack::EndZ, AtmosShower::Energy, AtmosFilter::EventId, fAutoPrint, AtmosFilter::FidCharge, AtmosEvent::FilterInfo, fIsMC, UtilCanvas::FixPad(), fKeySpots, fMaxPlane, fMaxZ, fMinPlane, fMinZ, Form(), fRun, fSnarl, fSubRun, fTZHits, fUZLinearHitsL, fUZLinearHitsT, fUZLinearLinesL, fUZLinearLinesT, fUZStpPlnHits, fUZStpPlnLines, fVZLinearHitsL, fVZLinearHitsT, fVZLinearLinesL, fVZLinearLinesT, fVZStpPlnHits, fVZStpPlnLines, fXYHits, fXYLines, hCorrPlaneCharge, hPulserLedCharge, hRawPlaneCharge, hTZAxis, hUZLinearAxis, hUZStpPlnAxis, hVZLinearAxis, hVZStpPlnAxis, hXYAxis, Msg::kDebug, Msg::kSynopsis, Msg::kVerbose, MakeChargePlot(), MakeMCPlot(), MakeShieldPlot(), MakeShowerPlot(), MakeTimingPlot(), MakeUVHits(), MakeXYHits(), AtmosShower::MaxPlaneNumber, AtmosTrack::MaxPlaneNumber, MCStpPlnFromTZ, MCStripFromT, AtmosShower::MinPlaneNumber, AtmosTrack::MinPlaneNumber, AtmosTrack::Momentum, MSG, AtmosEvent::NDeadChips, AtmosShower::Nplanes, AtmosTrack::Nplanes, AtmosEvent::NShieldPlanks, AtmosEvent::NShowers, AtmosEvent::NStrips, AtmosTrack::Nstrips, AtmosShower::Nstrips, AtmosEvent::NTracks, P2Z, AtmosDeadChip::Plane, Reset(), AtmosEvent::Run, AtmosEvent::Snarl, AtmosDeadChip::Status, StpPlnFromTZ, StripFromT, AtmosEvent::SubRun, AtmosFilter::TotalCharge, AtmosEvent::TrackList, UnZoom(), AtmosDeadChip::VaAdc, AtmosDeadChip::VaChip, AtmosDeadChip::Varc, AtmosDeadChip::Vmm, AtmosTrack::VtxDirCosU, AtmosShower::VtxDirCosU, AtmosTrack::VtxDirCosV, AtmosShower::VtxDirCosV, AtmosTrack::VtxDirCosX, AtmosShower::VtxDirCosX, AtmosShower::VtxDirCosY, AtmosTrack::VtxDirCosY, AtmosShower::VtxDirCosZ, AtmosTrack::VtxDirCosZ, AtmosShower::VtxPlane, AtmosTrack::VtxPlane, AtmosShower::VtxU, AtmosTrack::VtxU, AtmosShower::VtxV, AtmosTrack::VtxV, AtmosShower::VtxX, AtmosTrack::VtxX, AtmosShower::VtxY, AtmosTrack::VtxY, AtmosShower::VtxZ, and AtmosTrack::VtxZ.

00564                                               {
00565   MSG("FarDetEvent",Msg::kVerbose) << "CamEvd::FillEvent" << endl;
00566 
00567   fRun = event->Run;
00568   fSubRun = event->SubRun;
00569   fSnarl = event->Snarl;
00570   fIsMC = (event->NScintHits > 0);
00571 
00572   this->Reset();
00573 
00574   MakeUVHits(event);
00575   MakeXYHits(event);
00576   MakeChargePlot(event);
00577   MakeTimingPlot(event);
00578 
00579   //Correction to the slope for Strip v Plane plots
00580   for (int i=0; i<(int)event->TrackList->GetEntries(); i++) {
00581     const AtmosTrack* track =
00582       dynamic_cast<const AtmosTrack*>(event->TrackList->At(i));
00583     assert(track);
00584 
00585     double VtxUStrip, VtxVStrip;
00586     VtxUStrip = StripFromT(fIsMC,track->VtxU);
00587     VtxVStrip = StripFromT(fIsMC,track->VtxV);
00588 
00589     TMarker MarkVtx(track->VtxPlane, VtxUStrip, 29);
00590     MarkVtx.SetMarkerColor(kRed);//Red for track vertex marker
00591     MarkVtx.SetMarkerSize(1.2);
00592     fUZStpPlnHits.push_back(MarkVtx);
00593     MarkVtx.SetY(VtxVStrip);
00594     fVZStpPlnHits.push_back(MarkVtx);
00595     MarkVtx.SetX(track->VtxX); MarkVtx.SetY(track->VtxY);
00596     fXYHits.push_back(MarkVtx);
00597     MSG("FarDetEvent",Msg::kDebug) << "Vertex Plane/U/V= " << track->VtxPlane << " - "
00598            << track->VtxU << ":" << VtxUStrip << " - "
00599            << track->VtxV << ":" << VtxVStrip << endl;
00600 
00601     double EndUStrip, EndVStrip;
00602     if (fIsMC) {
00603       EndUStrip = MCStripFromT(track->EndU);
00604       EndVStrip = MCStripFromT(track->EndV);
00605     }
00606     else {
00607       EndUStrip = DataStripFromT(track->EndU);
00608       EndVStrip = DataStripFromT(track->EndV);
00609     }
00610     TMarker MarkEnd(track->EndPlane, EndUStrip, 30);
00611     MarkEnd.SetMarkerColor(kRed);//Red for track vertex marker
00612     MarkEnd.SetMarkerSize(1.2);
00613     fUZStpPlnHits.push_back(MarkEnd);
00614     MarkEnd.SetY(EndVStrip);
00615     fVZStpPlnHits.push_back(MarkEnd);
00616     MarkEnd.SetX(track->EndX); MarkEnd.SetY(track->EndY);
00617     fXYHits.push_back(MarkEnd);
00618 
00619     //Save the divide by zero
00620     if(track->VtxDirCosU==1. || track->VtxDirCosV==1.) continue;
00621 
00622     //WTF kinda case
00623     if(track->VtxPlane==track->EndPlane) continue;
00624 
00625     //Call it forward if the VtxPlane is before the EndPlane
00626     bool IsForward = (track->VtxPlane < track->EndPlane);
00627 
00628     double VtxSlopeLUZ = track->VtxDirCosU / track->VtxDirCosZ;
00629 //unused double VtxSlopeLVZ = track->VtxDirCosV / track->VtxDirCosZ;
00630 //unused double VtxSlopeSPUZ = StpPlnFromTZ(fIsMC, VtxSlopeLUZ);
00631 //unused double VtxSlopeSPVZ = StpPlnFromTZ(fIsMC, VtxSlopeLVZ);
00632 
00633 //unused double EndSlopeLUZ = track->EndDirCosU / track->EndDirCosZ;
00634 //unused double EndSlopeLVZ = track->EndDirCosV / track->EndDirCosZ;
00635 //unused double EndSlopeSPUZ = StpPlnFromTZ(fIsMC, EndSlopeLUZ);
00636 //unused double EndSlopeSPVZ = StpPlnFromTZ(fIsMC, EndSlopeLVZ);
00637 
00638     double DPlane = (track->MaxPlaneNumber-track->MinPlaneNumber);
00639     DPlane = (DPlane > 6) ? DPlane * 0.3 : 3;
00640 
00641     double DZ = DPlane * P2Z;
00642 
00643     TArrow VtxArrow;
00644     VtxArrow.SetArrowSize(0.05);
00645     VtxArrow.SetLineColor(kRed);
00646     if (IsForward) {
00647       VtxArrow.SetX1(track->VtxPlane);
00648       VtxArrow.SetY1(StripFromT(fIsMC,track->VtxU));
00649       VtxArrow.SetX2(track->VtxPlane + DPlane);
00650       VtxArrow.SetY2(StripFromT(fIsMC, track->VtxU+VtxSlopeLUZ*DZ));
00651       fUZStpPlnLines.push_back((TLine)VtxArrow);
00652     }
00653 
00654     MSG("FarDetEvent",Msg::kDebug) << "Min/Max Plane = " << track->MinPlaneNumber << " - "
00655            << track->MaxPlaneNumber << endl;
00656     /*
00657     line.SetLineColor(kRed);
00658 
00659     double slope, Y1, Y2;
00660 
00661     slope = SlopeCorr * (NtpCosU2D / TMath::Sqrt(1.-(NtpCosU2D*NtpCosU2D)));
00662     Y1 = VtxUStrip-(slope*(double)(track->VtxPlane-track->MinPlaneNumber));
00663     Y2 = VtxUStrip+(slope*(double)(track->MaxPlaneNumber-track->VtxPlane));
00664     line.SetY1(Y1); line.SetY2(Y2);
00665     fUZStpPlnLines.push_back(line);
00666     MSG("FarDetEvent",Msg::kDebug) << "U Slope Y1/Y2 = " << slope << " - "
00667            << Y1 << ":" << Y2 << endl;
00668 
00669     slope = SlopeCorr * (NtpCosV2D / TMath::Sqrt(1.-(NtpCosV2D*NtpCosV2D)));
00670     Y1 = VtxVStrip-(slope*(double)(track->VtxPlane-track->MinPlaneNumber));
00671     Y2 = VtxVStrip+(slope*(double)(track->MaxPlaneNumber-track->VtxPlane));
00672     line.SetY1(Y1); line.SetY2(Y2);
00673     fVZStpPlnLines.push_back(line);
00674     MSG("FarDetEvent",Msg::kDebug) << "V Slope Y1/Y2 = " << slope << " - "
00675            << Y1 << ":" << Y2 << endl;
00676     */
00677 
00678     if(track->VtxPlane>fMaxPlane) fMaxPlane = track->VtxPlane;
00679     if(track->EndPlane>fMaxPlane) fMaxPlane = track->EndPlane;
00680     if(track->VtxPlane<fMinPlane) fMinPlane = track->VtxPlane;
00681     if(track->EndPlane<fMinPlane) fMinPlane = track->EndPlane;
00682     if(track->MaxPlaneNumber>fMaxPlane) fMaxPlane = track->MaxPlaneNumber;
00683     if(track->MinPlaneNumber<fMinPlane) fMinPlane = track->MinPlaneNumber;
00684 
00685     if(track->VtxZ>fMaxZ) fMaxZ = track->VtxZ;
00686     if(track->EndZ>fMaxZ) fMaxZ = track->EndZ;
00687     if(track->VtxZ<fMinZ) fMinZ = track->VtxZ;
00688     if(track->EndZ<fMinZ) fMinZ = track->EndZ;
00689   }
00690 
00691   for (int i=0; i<event->ShowerList->GetEntries(); i++) {
00692     const AtmosShower* shower =
00693       dynamic_cast<const AtmosShower*>(event->ShowerList->At(i));
00694     assert(shower);
00695     double ustrip, vstrip;
00696     if (fIsMC) {
00697       ustrip = MCStripFromT(shower->VtxU);
00698       vstrip = MCStripFromT(shower->VtxV);
00699     }
00700     else {
00701       ustrip = DataStripFromT(shower->VtxU);
00702       vstrip = DataStripFromT(shower->VtxV);
00703     }
00704     if(ustrip<0.0) ustrip = 0.0;
00705     if(vstrip<0.0) vstrip = 0.0;
00706     if(ustrip>192.0) ustrip = 192.0;
00707     if(vstrip>192.0) vstrip = 192.0;
00708 
00709     //Shower Vertex marker
00710     TMarker tmp(shower->VtxPlane, ustrip, 29);
00711     tmp.SetMarkerColor(kGreen);//Green for shower vertex markers
00712     tmp.SetMarkerSize(1.2);
00713     fUZStpPlnHits.push_back(tmp);
00714     tmp.SetY(vstrip);
00715     fVZStpPlnHits.push_back(tmp);
00716     tmp.SetX(shower->VtxX); tmp.SetY(shower->VtxY);
00717     fXYHits.push_back(tmp);
00718 
00719     //double NtpCosX = shower->VtxDirCosX;
00720     //double NtpCosY = shower->VtxDirCosY;
00721     double NtpCosZ = shower->VtxDirCosZ;
00722 
00723     double NtpCosU = shower->VtxDirCosU;
00724     double NtpCosV = shower->VtxDirCosV;
00725     MSG("FarDetEvent",Msg::kDebug) << "CosU/V = " << NtpCosU << ":" << NtpCosV << endl;
00726 
00727     double NtpCosU2D = NtpCosU / TMath::Sqrt(1. - NtpCosV*NtpCosV);
00728     double NtpCosV2D = NtpCosV / TMath::Sqrt(1. - NtpCosU*NtpCosU);
00729     NtpCosU2D = (NtpCosZ>0)?NtpCosU2D:-NtpCosU2D;
00730     NtpCosV2D = (NtpCosZ>0)?NtpCosV2D:-NtpCosV2D;
00731 
00732     TLine line(shower->MinPlaneNumber,0.,shower->MaxPlaneNumber,0.);
00733     line.SetLineColor(kGreen);
00734 
00735     double slope, Y1, Y2;
00736 
00737     //Draw the U shower direction line
00738     slope = StpPlnFromTZ(fIsMC, NtpCosU/NtpCosZ);
00739 
00740     Y1 = ustrip-(slope*(double)(shower->VtxPlane-shower->MinPlaneNumber));
00741     Y2 = ustrip+(slope*(double)(shower->MaxPlaneNumber-shower->VtxPlane));
00742     line.SetY1(Y1); line.SetY2(Y2);
00743     fUZStpPlnLines.push_back(line);
00744 
00745     //Draw the V shower direction line
00746     if(fIsMC) slope = MCStpPlnFromTZ(NtpCosV/NtpCosZ);
00747     else slope = DataStpPlnFromTZ(NtpCosV/NtpCosZ);
00748     Y1 = vstrip-(slope*(double)(shower->VtxPlane-shower->MinPlaneNumber));
00749     Y2 = vstrip+(slope*(double)(shower->MaxPlaneNumber-shower->VtxPlane));
00750     line.SetY1(Y1); line.SetY2(Y2);
00751     fVZStpPlnLines.push_back(line);
00752 
00753     if(shower->VtxPlane>fMaxPlane) fMaxPlane = shower->VtxPlane;
00754     if(shower->VtxPlane<fMinPlane) fMinPlane = shower->VtxPlane;
00755     if(shower->MaxPlaneNumber>fMaxPlane) fMaxPlane = shower->MaxPlaneNumber;
00756     if(shower->MinPlaneNumber<fMinPlane) fMinPlane = shower->MinPlaneNumber;
00757 
00758     if(shower->VtxZ>fMaxZ) fMaxZ = shower->VtxZ;
00759     if(shower->VtxZ<fMinZ) fMinZ = shower->VtxZ;
00760   }
00761 
00762   //Make the rest of the plots
00763   MakeMCPlot(event);
00764   MakeShieldPlot(event);
00765   MakeShowerPlot(event);
00766 
00767   cMainView->cd(1);
00768   hUZStpPlnAxis->Draw();
00769   for(UInt_t i=0;i<fUZStpPlnHits.size();i++) fUZStpPlnHits[i].Draw();
00770   for(UInt_t i=0;i<fUZStpPlnLines.size();i++) fUZStpPlnLines[i].Draw();
00771   cMainView->cd(2);
00772   hVZStpPlnAxis->Draw();
00773   for(UInt_t i=0;i<fVZStpPlnHits.size();i++) fVZStpPlnHits[i].Draw();
00774   for(UInt_t i=0;i<fVZStpPlnLines.size();i++) fVZStpPlnLines[i].Draw();
00775   cMainView->cd(3);
00776   hXYAxis->Draw();
00777   FarLayout *farlayout = new FarLayout();
00778   farlayout->Draw();
00779 
00780   for(UInt_t i=0; i<fXYHits.size(); ++i) fXYHits[i].Draw();
00781   for(UInt_t i=0; i<fXYLines.size(); ++i) fXYLines[i].Draw();
00782   cMainView->cd(4);
00783   hCorrPlaneCharge->Draw("hist");
00784   hRawPlaneCharge->Draw("same");
00785   UtilCanvas::FixPad(dynamic_cast<TPad*>(cMainView->cd(4)));
00786 
00787   cMainView->cd(5);
00788   float bound1(2.0), bound2(4.0), bound3(6.0), bound4(8.0), bound5(10.0);
00789   fKeySpots.clear();
00790   char temp[256];
00791   double height(0.96);
00792   static TLatex* latex = new TLatex();
00793   latex->SetTextFont(132);
00794   latex->SetTextSize(0.04);
00795   latex->SetLineWidth(2);
00796   sprintf(temp,"Key");
00797   latex->DrawLatex(0.1,height,temp);
00798   TMarker marker = TMarker(0.2,height+0.025,8);
00799   marker.SetMarkerColor(ChargeToColor(bound1-1.0));
00800   marker.SetMarkerStyle(20);
00801   marker.SetMarkerSize(1.1);
00802   fKeySpots.push_back(marker);
00803   sprintf(temp,"Summed NPEs < %.1f",bound1);
00804   latex->DrawLatex(0.3,height,temp);
00805   height -=0.035;
00806   marker = TMarker(0.2,height+0.025,8);
00807   marker.SetMarkerColor(ChargeToColor(0.5*(bound1+bound2)));
00808   marker.SetMarkerStyle(8);
00809   marker.SetMarkerSize(1.1);
00810   fKeySpots.push_back(marker);
00811   sprintf(temp,"%.1f < Summed NPEs < %.1f",bound1,bound2);
00812   latex->DrawLatex(0.3,height,temp);
00813   height -=0.035;
00814   marker = TMarker(0.2,height+0.025,8);
00815   marker.SetMarkerColor(ChargeToColor(0.5*(bound2+bound3)));
00816   marker.SetMarkerStyle(8);
00817   marker.SetMarkerSize(1.1);
00818   fKeySpots.push_back(marker);
00819   sprintf(temp,"%.1f < Summed NPEs < %.1f",bound2,bound3);
00820   latex->DrawLatex(0.3,height,temp);
00821   height -=0.035;
00822   marker = TMarker(0.2,height+0.025,8);
00823   marker.SetMarkerColor(ChargeToColor(0.5*(bound3+bound4)));
00824   marker.SetMarkerStyle(8);
00825   marker.SetMarkerSize(1.1);
00826   fKeySpots.push_back(marker);
00827   sprintf(temp,"%.1f < Summed NPEs < %.1f",bound3,bound4);
00828   latex->DrawLatex(0.3,height,temp);
00829   height -=0.035;
00830   marker = TMarker(0.2,height+0.025,8);
00831   marker.SetMarkerColor(ChargeToColor(0.5*(bound4+bound5)));
00832   marker.SetMarkerStyle(8);
00833   marker.SetMarkerSize(1.1);
00834   fKeySpots.push_back(marker);
00835   sprintf(temp,"%.1f < Summed NPEs < %.1f",bound4,bound5);
00836   latex->DrawLatex(0.3,height,temp);
00837   height -=0.035;
00838   marker = TMarker(0.2,height+0.025,8);
00839   marker.SetMarkerColor(ChargeToColor(bound5+0.5));
00840   marker.SetMarkerStyle(8);
00841   marker.SetMarkerSize(1.1);
00842   fKeySpots.push_back(marker);
00843   sprintf(temp,"Summed NPEs >= %.1f",bound5);
00844   latex->DrawLatex(0.3,height,temp);
00845   height -=0.035;
00846   marker = TMarker(0.2,height+0.025,28);
00847   marker.SetMarkerColor(1);
00848   marker.SetMarkerSize(1.1);
00849   fKeySpots.push_back(marker);
00850   latex->DrawLatex(0.3,height,"Single-Ended Hit");
00851   height -=0.035;
00852   marker = TMarker(0.2,height+0.025,24);
00853   marker.SetMarkerColor(2);
00854   marker.SetMarkerSize(1.1);
00855   fKeySpots.push_back(marker);
00856   latex->DrawLatex(0.3,height,"Reconstructed Track Hit");
00857   height -=0.035;
00858   marker = TMarker(0.2,height+0.025,25);
00859   marker.SetMarkerColor(4);
00860   marker.SetMarkerSize(1.1);
00861   fKeySpots.push_back(marker);
00862   latex->DrawLatex(0.3,height,"Reconstructed Shower Hit");
00863   height -=0.035;
00864   marker = TMarker(0.2,height+0.025,29);
00865   marker.SetMarkerColor(kRed);
00866   marker.SetMarkerSize(1.1);
00867   fKeySpots.push_back(marker);
00868   latex->DrawLatex(0.3,height,"Reconstructed Track Vertex");
00869   height -=0.035;
00870   marker = TMarker(0.2,height+0.025,29);
00871   marker.SetMarkerColor(kGreen);
00872   marker.SetMarkerSize(1.1);
00873   fKeySpots.push_back(marker);
00874   latex->DrawLatex(0.3,height,"Reconstructed Shower Vertex");
00875   height -=0.05;
00876   for(unsigned int i=0; i<fKeySpots.size(); ++i) fKeySpots[i].Draw();
00877 
00878   static char tmp_line[1024];
00879   static TLatex* latex2 = new TLatex();
00880   snprintf(tmp_line, 1024, "Run : %d-%d   Snarl: %d  Trk: %d Shw: %d",
00881     event->Run, event->SubRun, event->Snarl,
00882     event->NTracks, event->NShowers);
00883   latex2->SetTextSize(0.04);
00884   latex2->DrawLatex(0.1, height, tmp_line);
00885   height-=0.05;
00886   latex2->SetTextSize(0.03);
00887 
00888   double currenty = height;//0.850;
00889 
00890   //Report the tracks
00891   for (int i = 0; i<event->TrackList->GetEntries(); i++) {
00892     const AtmosTrack* track =
00893       dynamic_cast<const AtmosTrack*>(event->TrackList->At(i));
00894     latex2->DrawLatex(0.01, currenty, Form(
00895       "Trk%s NS:%d NP:%d R:%2.1f Dir:{%0.3f,%0.3f,%0.3f} Vtx:{%0.2f,%0.2f,%0.2f}",
00896       "Pri",
00897       track->Nstrips, track->Nplanes, track->Momentum,
00898       track->VtxDirCosX, track->VtxDirCosY, track->VtxDirCosZ,
00899       track->VtxX, track->VtxY, track->VtxZ));
00900     currenty-=0.025;
00901   }
00902   /*
00903   if (event->NTracks==1) {
00904     const AtmosTrack* track = dynamic_cast<const AtmosTrack*>(event->TrackList->At(0));
00905     snprintf(tmp_line, 1024, "P: %2.2f  Sqp: %2.2f",  track->Momentum, track->AtNuQPmean / track->AtNuQPerr);
00906     latex2->DrawLatex(0.1, height, tmp_line);
00907     height-=0.025;
00908     snprintf(tmp_line, 1024, "ChiVtx: %2.2f ChiEnd: %2.2f DChi: %2.2f",  track->AtNuVtxDirTimeFitChisq, track->AtNuEndDirTimeFitChisq,track->AtNuVtxDirTimeFitChisq-track->AtNuEndDirTimeFitChisq);
00909     latex2->DrawLatex(0.1, height, tmp_line);
00910     height-=0.025;
00911     snprintf(tmp_line, 1024, "Dcos:  %2.2f   %2.2f   %2.2f", track->VtxDirCosX,track->VtxDirCosY,track->VtxDirCosZ);
00912     latex2->DrawLatex(0.1, height, tmp_line);
00913     height-=0.025;
00914   }
00915   */
00916     currenty-=0.025;
00917 
00918   //Report the showers
00919   for (int i=0; i<event->ShowerList->GetEntries(); i++) {
00920     const AtmosShower* shower =
00921       dynamic_cast<const AtmosShower*>(event->ShowerList->At(i));
00922     latex2->DrawLatex(0.01, currenty, Form(
00923       "Shw%s NS:%d NP:%d E:%2.1f Dir:{%0.3f,%0.3f,%0.3f} Vtx:{%0.2f,%0.2f,%0.2f}",
00924       "Pri",
00925       shower->Nstrips, shower->Nplanes, shower->Energy,
00926       shower->VtxDirCosX, shower->VtxDirCosY, shower->VtxDirCosZ,
00927       shower->VtxX, shower->VtxY, shower->VtxZ));
00928     currenty-=0.025;
00929   }
00930 
00931   /*
00932   currenty-=0.025;
00933   for (int i=0;i<3;i++) {
00934     sprintf(tmp_line,"EV:%0.3f:(%0.3f,%0.3f,%0.3f)",
00935       SSMap.AllEVal[1][i],    SSMap.AllEVec[1][i][0],
00936       SSMap.AllEVec[1][i][1], SSMap.AllEVec[1][i][2]);
00937     latex2->DrawLatex(0.01, currenty, tmp_line);
00938     currenty-=0.025;
00939   }
00940   */
00941 
00942   currenty-=0.025;
00943   /*
00944   if (event->NShieldPlanks>0) {
00945     VetoShower vshw(event);
00946     VetoTrack vtrk(event);
00947     latex2->DrawLatex(0.01, currenty, 
00948       Form("NPlanks:%d, Trk(SS,SM):%2.0f,%2.0f Shw(SS,SM):%2.0f,%2.0f",
00949        event->NShieldPlanks, vtrk.VetoQCorrSS,
00950        vtrk.SectionQInTime[0] + vtrk.SectionQInTime[1] +
00951        vtrk.SectionQInTime[2] + vtrk.SectionQInTime[3],
00952        vshw.VetoQCorrSS,
00953        vtrk.SectionQInTime[0] + vtrk.SectionQInTime[1] +
00954        vtrk.SectionQInTime[2] + vtrk.SectionQInTime[3]));
00955     currenty-=0.027;
00956 
00957     MSG("FarDetEvent",Msg::kSynopsis) << "VetoQPlank50cm[] =";
00958     for (int i=0; i<5; i++) {
00959       MSG("FarDetEvent",Msg::kSynopsis) << " " << vshw.VetoQPlank50cmZ[i];
00960     }
00961     MSG("FarDetEvent",Msg::kSynopsis) << endl;
00962   }
00963   */
00964 
00965   latex2->DrawLatex(0.01, currenty, 
00966     Form("Nstrips:%d Nplanks:%d Ndeadchips:%d",event->NStrips,event->NShieldPlanks,event->NDeadChips) );
00967   currenty-=0.027;
00968 
00969   currenty-=0.025;
00970 
00971   if (event->FilterInfo.EventId == 0) {
00972     latex2->DrawLatex(0.01, currenty, "Digit Containment: FC");
00973     currenty-=0.027;
00974   }
00975   else if(event->FilterInfo.EventId == 1) {
00976     latex2->DrawLatex(0.01, currenty,
00977        Form("Digit Containment: PC (NonFidPE=%2.2f TotPE=%2.2f)",
00978          event->FilterInfo.TotalCharge - event->FilterInfo.FidCharge,
00979          event->FilterInfo.TotalCharge));
00980     currenty-=0.027;
00981   }
00982   else if(event->FilterInfo.EventId == 2) {
00983     latex2->DrawLatex(0.01, currenty,
00984        Form("Digit Containment: Through-Going (NonFidPE=%2.2f TotPE=%2.2f)",
00985          event->FilterInfo.TotalCharge - event->FilterInfo.FidCharge,
00986          event->FilterInfo.TotalCharge));
00987     currenty-=0.027;
00988   }
00989   else {
00990     latex2->DrawLatex(0.01, currenty, 
00991        Form("Digit Containment: doesn't enter fiducial volume" ) );
00992     currenty-=0.027;
00993   }
00994 
00995   /*
00996   for (int i=0; i<event->NShieldPlanks; ++i) {
00997     const AtmosShieldPlank* plank = dynamic_cast<const AtmosShieldPlank*>(event->ShieldPlankList->At(i));
00998     sprintf(tmp_line, "Q:%2.2f %2.2f TR: %2.2e %2.2e T:%2.2e %2.2e S:%d P:%2.2f %2.2f",
00999             plank->QPE[0], plank->QPE[1],
01000             plank->Tcorr[0]-event->NanoSec, plank->Tcorr[1]-event->NanoSec,
01001             //plank->Tcorr[0]-event->Shield.AbsTime, plank->Tcorr[1]-event->Shield.AbsTime,
01002             999.0, 999.0,
01003             //plank->DTime[0], plank->DTime[1],
01004             plank->Section,  plank->X,  plank->Y);
01005 
01006     latex2->DrawLatex(0.01, currenty, tmp_line);
01007     currenty-=0.027;
01008   }
01009   */
01010   currenty-=0.025;
01011 
01012   MSG("FarDetEvent",Msg::kSynopsis) << "Number of DeadChips = " << event->NDeadChips << endl;
01013   for (int i=0; i<event->NDeadChips; i++) {
01014     const AtmosDeadChip* chip = dynamic_cast<const AtmosDeadChip*>
01015                                 (event->DeadChipList->At(i));
01016 
01017     int BusyDead = -1;
01018     if( ((chip->Status)&(0x08))==(0x08) ) BusyDead = 1;
01019     else if( ((chip->Status)&(0x02))==(0x02) ) BusyDead = 0;
01020 
01021     if( BusyDead==0 || BusyDead==1 ){
01022       sprintf(tmp_line, "%d/%d/%d/%d/%d Plns:%d,%d Status:%c%c%c%c",
01023         chip->Crate, chip->Varc, chip->Vmm,
01024         chip->VaAdc, chip->VaChip, chip->Plane[0], chip->Plane[1],
01025         (BusyDead)?'B':'D',(BusyDead)?'u':'e',(BusyDead)?'s':'a',(BusyDead)?'y':'d');
01026       if ((i%2)==0) {
01027         latex2->DrawLatex(0.01, currenty, tmp_line);
01028       }
01029       else {
01030         latex2->DrawLatex(0.5, currenty, tmp_line);
01031         currenty-=0.025;
01032       }
01033     }
01034 
01035   }
01036 
01037   cMainView->cd(6);
01038 
01039   hTZAxis->Draw();
01040   for(unsigned int i=0; i<fTZHits.size(); i++)  fTZHits[i].Draw();
01041 
01042   TText tt;
01043   tt.SetTextAlign(31);
01044   //tt.SetTextSize(0.06);
01045   tt.SetNDC();
01046   tt.SetTextColor(kRed);
01047   cSideView->cd(1);
01048   hUZLinearAxis->Draw();
01049   tt.DrawText(0.9,0.95, Form("U Transverse Position (%lu strips)",
01050                         fUZLinearHitsT.size()));
01051   for(UInt_t i=0;i<fUZLinearHitsT.size();i++) fUZLinearHitsT[i].Draw();
01052   for(UInt_t i=0;i<fUZLinearLinesT.size();i++) fUZLinearLinesT[i].Draw();
01053   cSideView->cd(2);
01054   hVZLinearAxis->Draw();
01055   tt.DrawText(0.9,0.95, Form("V Transverse Position (%lu strips)",
01056                         fVZLinearHitsT.size()));
01057   for(UInt_t i=0;i<fVZLinearHitsT.size();i++) fVZLinearHitsT[i].Draw();
01058   for(UInt_t i=0;i<fVZLinearLinesT.size();i++) fVZLinearLinesT[i].Draw();
01059   cSideView->cd(3);
01060   hUZLinearAxis->Draw();
01061   tt.DrawText(0.9,0.95, Form("V Longitudinal Position (%lu strips)",
01062                         fVZLinearHitsL.size()));
01063   for(UInt_t i=0;i<fVZLinearHitsL.size();i++) fVZLinearHitsL[i].Draw();
01064   for(UInt_t i=0;i<fUZLinearLinesL.size();i++) fUZLinearLinesL[i].Draw();
01065   cSideView->cd(4);
01066   hVZLinearAxis->Draw();
01067   tt.DrawText(0.9,0.95, Form("U Longitudinal Position (%lu strips)",
01068                         fUZLinearHitsL.size()));
01069   for(UInt_t i=0;i<fUZLinearHitsL.size();i++) fUZLinearHitsL[i].Draw();
01070   for(UInt_t i=0;i<fVZLinearLinesL.size();i++) fVZLinearLinesL[i].Draw();
01071 
01072   cLIView->cd();
01073   cLIView->SetTheta(45);
01074   cLIView->SetPhi(225);
01075   hPulserLedCharge->Draw("lego2");
01076 
01077   UnZoom();
01078 
01079   if(fAutoPrint) DoPrint();
01080 
01081   return(true);
01082 }

void CamEvd::MakeCanvases (  )  [virtual]

Reimplemented from CamAna.

Definition at line 188 of file CamEvd.cxx.

References HistMan::Adopt(), AllCanvases, cgClearFibreN, cgMCTimeWin, cgPlaneRange, cgTab, cgUStripRange, cgVStripRange, cgWlsFibreN, cLIView, cMainView, cMCMainView, cMCSideView, cMCTrkIdView, cShieldView, cShowerView, cSideView, fActiveCanvas, fAutoPrint, fClearFibreN, fDoShieldPlot, fDoShowerPlot, fDoTimeCorr1, fDoTimeCorr2, fFakeShieldData, fMakeEPS, fMakeGIF, fMakeMCTrkIdView, fMakePS, fMakeROOT, fMCTimeWin, fWlsFibreN, Nav::GetName(), Msg::kVerbose, and MSG.

00188                           {
00189   MSG("FarDetEvent",Msg::kVerbose) << this->GetName() << "::MakeCanvases()" << endl;
00190   HistMan hm(this->GetName());
00191 
00192   //For later use in defining appropriate widget background color
00193   Pixel_t BgClr = gClient->GetResourcePool()->GetFrameBgndColor();
00194 
00195   //Predefine a series of horizontal and vertical frames
00196   TGHorizontalFrame *cgH1, *cgH2;
00197   TGVerticalFrame *cgV1, *cgV2;
00198   TGLabel *cgLabel;
00199 
00200   //A handful of predefined layouts to save space later.
00201   TGLayoutHints *optlay1 = new TGLayoutHints(kLHintsBottom | kLHintsLeft);
00202   TGLayoutHints *optlay2 = new TGLayoutHints(kLHintsTop | kLHintsCenterX);
00203 
00204   /*
00205    * Start the head frame
00206    */
00207   TGTransientFrame *cgHeadFrame = new TGTransientFrame();
00208   cgHeadFrame->Connect("CloseWindow()","CamEvd",this,"CloseWindow()");
00209 
00210   /*
00211    * Start printing horizontal frame
00212    */
00213   //Printing options and switch
00214   cgH1 = new TGHorizontalFrame(cgHeadFrame);
00215 
00216   TGCheckButton *cgButton = new TGCheckButton(cgH1, "ShieldPlot", 2);
00217   if(fDoShieldPlot) cgButton->SetState(kButtonDown);
00218   cgButton->Connect("Pressed()", "CamEvd", this, "DoShieldPlot(=true)");
00219   cgButton->Connect("Released()", "CamEvd", this, "DoShieldPlot(=false)");
00220   cgH1->AddFrame(cgButton, new TGLayoutHints(kLHintsRight));
00221 
00222   cgButton = new TGCheckButton(cgH1, "FakeShieldData", 2);
00223   if(fFakeShieldData) cgButton->SetState(kButtonDown);
00224   cgButton->Connect("Pressed()", "CamEvd", this, "FakeShieldData(=true)");
00225   cgButton->Connect("Released()", "CamEvd", this, "FakeShieldData(=false)");
00226   cgH1->AddFrame(cgButton, new TGLayoutHints(kLHintsRight));
00227 
00228   cgButton = new TGCheckButton(cgH1, "ShowerPlot", 2);
00229   if(fDoShowerPlot) cgButton->SetState(kButtonDown);
00230   cgButton->Connect("Pressed()", "CamEvd", this, "DoShowerPlot(=true)");
00231   cgButton->Connect("Released()", "CamEvd", this, "DoShowerPlot(=false)");
00232   cgH1->AddFrame(cgButton, new TGLayoutHints(kLHintsRight));
00233 
00234   TGCheckButton *cgMakePS = new TGCheckButton(cgH1, "PS", 2);
00235   if(fMakePS) cgMakePS->SetState(kButtonDown);
00236   cgMakePS->Connect("Pressed()", "CamEvd", this, "MakePS(=true)");
00237   cgMakePS->Connect("Released()", "CamEvd", this, "MakePS(=false)");
00238   cgH1->AddFrame(cgMakePS, new TGLayoutHints(kLHintsLeft));
00239 
00240   TGCheckButton *cgMakeEPS = new TGCheckButton(cgH1, "EPS", 2);
00241   if(fMakeEPS) cgMakeEPS->SetState(kButtonDown);
00242   cgMakeEPS->Connect("Pressed()", "CamEvd", this, "MakeEPS(=true)");
00243   cgMakeEPS->Connect("Released()", "CamEvd", this, "MakeEPS(=false)");
00244   cgH1->AddFrame(cgMakeEPS, new TGLayoutHints(kLHintsLeft));
00245 
00246   TGCheckButton *cgMakeGIF = new TGCheckButton(cgH1, "GIF", 2);
00247   if(fMakeGIF) cgMakeGIF->SetState(kButtonDown);
00248   cgMakeGIF->Connect("Pressed()", "CamEvd", this, "MakeGIF(=true)");
00249   cgMakeGIF->Connect("Released()", "CamEvd", this, "MakeGIF(=false)");
00250   cgH1->AddFrame(cgMakeGIF, new TGLayoutHints(kLHintsLeft));
00251 
00252   TGCheckButton *cgMakeROOT = new TGCheckButton(cgH1, "ROOT", 2);
00253   if(fMakeROOT) cgMakeROOT->SetState(kButtonDown);
00254   cgMakeROOT->Connect("Pressed()", "CamEvd", this, "MakeROOT(=true)");
00255   cgMakeROOT->Connect("Released()", "CamEvd", this, "MakeROOT(=false)");
00256   cgH1->AddFrame(cgMakeROOT, new TGLayoutHints(kLHintsLeft));
00257 
00258   TGCheckButton *cgAutoPrint = new TGCheckButton(cgH1, "Auto", 2);
00259   if(fAutoPrint) cgAutoPrint->SetState(kButtonDown);
00260   cgAutoPrint->Connect("Pressed()", "CamEvd", this, "AutoPrint(=true)");
00261   cgAutoPrint->Connect("Released()", "CamEvd", this, "AutoPrint(=false)");
00262   cgH1->AddFrame(cgAutoPrint, new TGLayoutHints(kLHintsLeft));
00263 
00264   TGTextButton *cgDoPrint = new TGTextButton(cgH1, "Print", 2);
00265   cgDoPrint->Connect("Clicked()", "CamEvd", this, "DoPrint()");
00266   cgH1->AddFrame(cgDoPrint, new TGLayoutHints(kLHintsLeft));
00267 
00268   cgHeadFrame->AddFrame(cgH1, new TGLayoutHints(kLHintsTop | kLHintsExpandX));
00269   /*
00270    * End printing horizontal frame
00271    */
00272 
00273   /*
00274    * Start options frame
00275    */
00276   cgH1 = new TGHorizontalFrame(cgHeadFrame);
00277 
00278   cgV1 = new TGVerticalFrame(cgH1);
00279   cgMCTimeWin = new TGNumberEntry(cgV1, fMCTimeWin, 5, 1);
00280   cgMCTimeWin->Connect("ValueSet(Long_t)", "CamEvd", this, "SetNumericOptions()");
00281   cgV1->AddFrame(cgMCTimeWin,optlay1);
00282   cgLabel = new TGLabel(cgV1, "MCTimeWin");
00283   cgV1->AddFrame(cgLabel,optlay2);
00284   cgH1->AddFrame(cgV1, new TGLayoutHints(kLHintsBottom | kLHintsLeft, 1,1,0,0));
00285 
00286   cgV1 = new TGVerticalFrame(cgH1);
00287   cgWlsFibreN = new TGNumberEntry(cgV1, fWlsFibreN, 5, 1);
00288   cgWlsFibreN->Connect("ValueSet(Long_t)", "CamEvd", this, "SetNumericOptions()");
00289   cgV1->AddFrame(cgWlsFibreN,optlay1);
00290   cgLabel = new TGLabel(cgV1, "WlsFibreN");
00291   cgV1->AddFrame(cgLabel,optlay2);
00292   cgH1->AddFrame(cgV1, new TGLayoutHints(kLHintsBottom | kLHintsLeft, 1,1,0,0));
00293 
00294   cgV1 = new TGVerticalFrame(cgH1);
00295   cgClearFibreN = new TGNumberEntry(cgV1, fClearFibreN, 5, 1);
00296   cgClearFibreN->Connect("ValueSet(Long_t)", "CamEvd", this, "SetNumericOptions()");
00297   cgV1->AddFrame(cgClearFibreN,optlay1);
00298   cgLabel = new TGLabel(cgV1, "ClearFibreN");
00299   cgV1->AddFrame(cgLabel,optlay2);
00300   cgH1->AddFrame(cgV1,optlay1);
00301 
00302   cgV1 = new TGVerticalFrame(cgH1);
00303   cgH2 = new TGHorizontalFrame(cgV1);
00304   TGCheckButton *cgDoTimeCorr1 = new TGCheckButton(cgH2, "1", 6);
00305   if(fDoTimeCorr1) cgDoTimeCorr1->SetState(kButtonDown);
00306   cgDoTimeCorr1->Connect("Pressed()", "CamEvd", this, "DoTimeCorr1(=true)");
00307   cgDoTimeCorr1->Connect("Released()", "CamEvd", this, "DoTimeCorr1(=false)");
00308   cgH2->AddFrame(cgDoTimeCorr1, optlay1);
00309   TGCheckButton *cgDoTimeCorr2 = new TGCheckButton(cgH2, "2", 7);
00310   if(fDoTimeCorr2) cgDoTimeCorr2->SetState(kButtonDown);
00311   cgDoTimeCorr2->Connect("Pressed()", "CamEvd", this, "DoTimeCorr2(=true)");
00312   cgDoTimeCorr2->Connect("Released()", "CamEvd", this, "DoTimeCorr2(=false)");
00313   cgH2->AddFrame(cgDoTimeCorr2, optlay1);
00314   cgV1->AddFrame(cgH2, optlay1);
00315   cgLabel = new TGLabel(cgV1, "TimeCorr");
00316   cgV1->AddFrame(cgLabel,optlay2);
00317   cgH1->AddFrame(cgV1,optlay1);
00318 
00319   cgHeadFrame->AddFrame(cgH1, new TGLayoutHints(kLHintsBottom));
00320   /*
00321    * End horizontal frame for options
00322    */
00323 
00324   /*
00325    * Start central horizontal frame for canvases and sliders
00326    */
00327   cgH1 = new TGHorizontalFrame(cgHeadFrame);
00328 
00329   /*
00330    * Start vertical frame for canvases and plane slider
00331    */
00332   cgV1 = new TGVerticalFrame(cgH1);
00333 
00334   cgTab = new TGTab(cgV1, 100, 100);
00335   cgTab->Connect("Selected(Int_t)", "CamEvd", this, "DoTab(Int_t)");
00336 
00337   int XCanv = 1000;
00338   int YCanv = 772;
00339   TRootEmbeddedCanvas *trEmbed = 0;
00340   TGCompositeFrame *cgCFrame = 0;
00341 
00342   cgCFrame = cgTab->AddTab("Main View");
00343   trEmbed = new TRootEmbeddedCanvas("MainView",cgCFrame,XCanv,YCanv);
00344   cMainView = trEmbed->GetCanvas();
00345   cMainView->Divide(3,2);
00346   trEmbed->AdoptCanvas(cMainView);
00347   cgCFrame->AddFrame(trEmbed);
00348   AllCanvases.push_back(cMainView);
00349   fActiveCanvas = cMainView;
00350 
00351   cgCFrame = cgTab->AddTab("Side View");
00352   trEmbed = new TRootEmbeddedCanvas("SideView",cgCFrame, XCanv, YCanv);
00353   cSideView = trEmbed->GetCanvas();
00354   cSideView->Divide(2,2);
00355   cgCFrame->AddFrame(trEmbed);
00356   AllCanvases.push_back(cSideView);
00357 
00358   cgCFrame = cgTab->AddTab("Shield View");
00359   trEmbed = new TRootEmbeddedCanvas("ShieldView",cgCFrame, XCanv, YCanv);
00360   cShieldView = trEmbed->GetCanvas();
00361   cShieldView->Divide(3,2);
00362   cgCFrame->AddFrame(trEmbed);
00363   AllCanvases.push_back(cShieldView);
00364 
00365   cgCFrame = cgTab->AddTab("Shower View");
00366   trEmbed = new TRootEmbeddedCanvas("ShowerView",cgCFrame, XCanv, YCanv);
00367   cShowerView = trEmbed->GetCanvas();
00368   cShowerView->Divide(2,2);
00369   cgCFrame->AddFrame(trEmbed);
00370   AllCanvases.push_back(cShowerView);
00371 
00372   cgCFrame = cgTab->AddTab("LI View");
00373   trEmbed = new TRootEmbeddedCanvas("LIView",cgCFrame, XCanv, YCanv);
00374   cLIView = trEmbed->GetCanvas();
00375   cgCFrame->AddFrame(trEmbed);
00376   AllCanvases.push_back(cLIView);
00377 
00378   cgCFrame = cgTab->AddTab("MC Main View");
00379   trEmbed = new TRootEmbeddedCanvas("MCMainView",cgCFrame, XCanv, YCanv);
00380   cMCMainView = trEmbed->GetCanvas();
00381   cMCMainView->Divide(3,2);
00382   cgCFrame->AddFrame(trEmbed);
00383   AllCanvases.push_back(cMCMainView);
00384 
00385   cgCFrame = cgTab->AddTab("MC Side View");
00386   trEmbed = new TRootEmbeddedCanvas("MCSideView",cgCFrame, XCanv, YCanv);
00387   cMCSideView = trEmbed->GetCanvas();
00388   cMCSideView->Divide(2,2);
00389   cgCFrame->AddFrame(trEmbed);
00390   AllCanvases.push_back(cMCSideView);
00391 
00392   if (fMakeMCTrkIdView) {
00393     cgCFrame = cgTab->AddTab("MC TrkId View");
00394     trEmbed = new TRootEmbeddedCanvas("MCTrkIdView",cgCFrame, XCanv, YCanv);
00395     cMCTrkIdView = trEmbed->GetCanvas();
00396     cMCTrkIdView->Divide(2,1);
00397     cgCFrame->AddFrame(trEmbed);
00398     AllCanvases.push_back(cMCTrkIdView);
00399   }
00400 
00401   cgV1->AddFrame(cgTab);
00402 
00403   cgH2 = new TGHorizontalFrame(cgV1);
00404 
00405   cgLabel = new TGLabel(cgH2, "Plane");
00406   cgH2->AddFrame(cgLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
00407 
00408   cgPlaneRange = new TGDoubleHSlider(cgH2 , 1, kDoubleScaleNo,
00409     -1, kHorizontalFrame, BgClr, false, true);
00410   cgPlaneRange->SetRange(1, 485);
00411   cgPlaneRange->SetPosition(1, 485);
00412   cgPlaneRange->Connect("Released()","CamEvd",this,"PlaneSlider()");
00413   cgH2->AddFrame(cgPlaneRange, new TGLayoutHints(kLHintsExpandX | kLHintsCenterY));
00414 
00415   cgV1->AddFrame(cgH2, new TGLayoutHints(kLHintsBottom | kLHintsExpandX));
00416 
00417   cgH1->AddFrame(cgV1);
00418   /*
00419    * End vertical frame cgV1 for canvases and plane slider
00420    */
00421 
00422   cgV1 = new TGVerticalFrame(cgH1);
00423 
00424   cgH2 = new TGHorizontalFrame(cgV1);
00425 
00426   cgV2 = new TGVerticalFrame(cgH2);
00427   cgLabel = new TGLabel(cgV2, "U");
00428   cgV2->AddFrame(cgLabel,new TGLayoutHints(kLHintsTop | kLHintsCenterX));
00429   cgUStripRange = new TGDoubleVSlider(cgV2 , 1, kDoubleScaleNo,
00430     -1, kVerticalFrame, BgClr, true, true);
00431   cgUStripRange->SetRange(0, 191);
00432   cgUStripRange->SetPosition(0, 191);
00433   cgUStripRange->Connect("Released()","CamEvd",this,"UStripSlider()");
00434   cgV2->AddFrame(cgUStripRange, new TGLayoutHints(kLHintsExpandY));
00435   cgH2->AddFrame(cgV2, new TGLayoutHints(kLHintsExpandY));
00436 
00437   cgV2 = new TGVerticalFrame(cgH2);
00438   cgLabel = new TGLabel(cgV2, "V");
00439   cgV2->AddFrame(cgLabel,new TGLayoutHints(kLHintsTop | kLHintsCenterX));
00440   cgVStripRange = new TGDoubleVSlider(cgV2 , 1, kDoubleScaleNo,
00441     -1, kVerticalFrame, BgClr, true, true);
00442   cgVStripRange->SetRange(0, 191);
00443   cgVStripRange->SetPosition(0, 191);
00444   cgVStripRange->Connect("Released()","CamEvd",this,"VStripSlider()");
00445   cgV2->AddFrame(cgVStripRange, new TGLayoutHints(kLHintsExpandY));
00446   cgH2->AddFrame(cgV2, new TGLayoutHints(kLHintsExpandY));
00447 
00448   cgV1->AddFrame(cgH2, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
00449 
00450   TGTextButton *cgUnZoom = new TGTextButton(cgV1, "UnZoom", 2);
00451   cgUnZoom->Connect("Clicked()", "CamEvd", this, "UnZoom()");
00452   cgV1->AddFrame(cgUnZoom, new TGLayoutHints(kLHintsBottom));
00453 
00454   cgH1->AddFrame(cgV1, new TGLayoutHints(kLHintsExpandY));
00455 
00456   cgHeadFrame->AddFrame(cgH1, new TGLayoutHints(kLHintsCenterY));
00457 
00458   cgHeadFrame->MapSubwindows();
00459   cgHeadFrame->Resize();
00460   cgHeadFrame->SetWindowName("Head Frame");
00461   cgHeadFrame->MapWindow();
00462 
00463   for(unsigned int i=0; i<AllCanvases.size(); i++)
00464     hm.Adopt("Canvases", AllCanvases[i]);
00465 }

void CamEvd::MakeChargePlot ( const AtmosEvent event  )  [private]

Definition at line 1350 of file CamEvd.cxx.

References hCorrPlaneCharge, hPulserLedCharge, hRawPlaneCharge, AtmosStrip::Plane, PlaneBlock, AtmosStrip::QPE, AtmosStrip::QPEcorr, AtmosStrip::Strip, StripBlock, and AtmosEvent::StripList.

Referenced by FillEvent().

01350                                                    {
01351   hRawPlaneCharge->Reset();
01352   hCorrPlaneCharge->Reset();
01353   hPulserLedCharge->Reset();
01354   for (int i=0; i<(int)event->StripList->GetEntries(); i++) {
01355     const AtmosStrip* strip =
01356       dynamic_cast<const AtmosStrip*>(event->StripList->At(i));
01357     assert(strip);
01358     hRawPlaneCharge->Fill(strip->Plane,
01359       (strip->QPE[1]+strip->QPE[0]));
01360     hCorrPlaneCharge->Fill(strip->Plane,
01361       (strip->QPEcorr[1]+strip->QPEcorr[0]));
01362     hPulserLedCharge->Fill(2*PlaneBlock(strip->Plane),
01363       StripBlock(strip->Strip), strip->QPEcorr[0]);
01364     hPulserLedCharge->Fill(1 + (2*PlaneBlock(strip->Plane)),
01365       StripBlock(strip->Strip), strip->QPEcorr[1]);
01366   }
01367 
01368   return;
01369 }

bool CamEvd::MakeEPS (  )  [inline]

Definition at line 201 of file CamEvd.h.

References fMakeEPS.

00201 {return fMakeEPS;}

void CamEvd::MakeEPS ( bool  Q  )  [inline]

Definition at line 200 of file CamEvd.h.

References fMakeEPS.

00200 {fMakeEPS = Q;}

bool CamEvd::MakeGIF (  )  [inline]

Definition at line 203 of file CamEvd.h.

References fMakeGIF.

00203 {return fMakeGIF;}

void CamEvd::MakeGIF ( bool  Q  )  [inline]

Definition at line 202 of file CamEvd.h.

References fMakeGIF.

00202 {fMakeGIF = Q;}

void CamEvd::MakeHistos (  )  [virtual]

Reimplemented from CamAna.

Definition at line 467 of file CamEvd.cxx.

References HistMan::Book(), Form(), Nav::GetName(), hCorrPlaneCharge, hMCPlaneDE, hMCTZAxis, hPulserLedCharge, hRawPlaneCharge, hShwPlnCosZProfile, hShwPlnProfile, hShwVeto, hTiming, hTrkVeto, hTZAxis, hUZLinearAxis, hUZStpPlnAxis, hUZStpPlnShw, hVZLinearAxis, hVZStpPlnAxis, hVZStpPlnShw, hXYAxis, Msg::kSynopsis, and MSG.

00467                         {
00468   MSG("FarDetEvent",Msg::kSynopsis) << this->GetName() << "::MakeHistos()" << endl;
00469   HistMan hm(this->GetName());
00470   hUZStpPlnAxis = hm.Book<TH2F>("UZStpPlnAxis", "",
00471     485,1,486, 192,0,192);
00472   hUZStpPlnAxis->GetXaxis()->SetTitle("Plane");
00473   hUZStpPlnAxis->GetYaxis()->SetTitle("U Strip");
00474 
00475   hUZLinearAxis = hm.Book<TH2F>("UZLinearAxis", "",
00476     100,0.,30.0, 100,-4.0,4.0);
00477   hUZLinearAxis->GetXaxis()->SetTitle("Z (m)");
00478   hUZLinearAxis->GetYaxis()->SetTitle("U (m)");
00479 
00480   hVZStpPlnAxis = hm.Book<TH2F>("VZStpPlnAxis", "",
00481     485,1,486, 192,0,192);
00482   hVZStpPlnAxis->GetXaxis()->SetTitle("Plane");
00483   hVZStpPlnAxis->GetYaxis()->SetTitle("V Strip");
00484 
00485   hVZLinearAxis = hm.Book<TH2F>("VZLinearAxis", "",
00486     100,0.,30.0, 100,-4.0,4.0);
00487   hVZLinearAxis->GetXaxis()->SetTitle("Z (m)");
00488   hVZLinearAxis->GetYaxis()->SetTitle("V (m)");
00489 
00490   hXYAxis = hm.Book<TH2F>("XYAxis", "", 100,-7.0,7.0, 100,-8.0,8.0);
00491   hXYAxis->GetXaxis()->SetTitle("X (m)");
00492   hXYAxis->GetYaxis()->SetTitle("Y (m)");
00493 
00494   hUZStpPlnShw = hm.Book<TH2F>("UZStpPlnShw", "U Strip vs Plane",
00495     485,1,486, 192,0,192);
00496   hUZStpPlnShw->GetXaxis()->SetTitle("Plane");
00497   hUZStpPlnShw->GetYaxis()->SetTitle("U Strip");
00498 
00499   hVZStpPlnShw = hm.Book<TH2F>("VZStpPlnShw", "V Strip vs Plane",
00500     485,1,486, 192,0,192);
00501   hVZStpPlnShw->GetXaxis()->SetTitle("Plane");
00502   hVZStpPlnShw->GetYaxis()->SetTitle("V Strip");
00503 
00504   hShwPlnProfile = hm.Book<TH1F>("ShwPlnProfile",
00505     "Shower Energy Profile", 485,1,486);
00506   hShwPlnProfile->GetXaxis()->SetTitle("Plane");
00507   hShwPlnProfile->GetYaxis()->SetTitle("PE");
00508 
00509   hShwPlnCosZProfile = hm.Book<TH1F>("ShwPlnCosZProfile",
00510     "Shower Energy Profile", 485,1,486);
00511   hShwPlnCosZProfile->GetXaxis()->SetTitle("Plane");
00512   hShwPlnCosZProfile->GetYaxis()->SetTitle("PE");
00513 
00514   hTZAxis = hm.Book<TH2F>("TZAxis", "",485, 1, 486, 1000, 0., 1000);
00515   hTZAxis->GetXaxis()->SetTitle("Plane");
00516   hTZAxis->GetYaxis()->SetTitle("T (ns)");
00517 
00518   hMCPlaneDE = hm.Book<TH1F>("MCPlaneDE", "Plane DE", 485, 1, 486);
00519   hMCPlaneDE->GetXaxis()->SetTitle("Plane");
00520   hMCPlaneDE->GetYaxis()->SetTitle("DE(MeV)");
00521   hMCPlaneDE->SetFillColor(5);
00522   hMCPlaneDE->SetLineWidth(2);
00523 
00524   hPulserLedCharge = hm.Book<TH2F>("PulserLEDCharge", "",
00525     17, 0, 17, 21, 0, 21);
00526   hPulserLedCharge->GetXaxis()->SetTitle("PulserBox");
00527   hPulserLedCharge->GetYaxis()->SetTitle("LED");
00528   hPulserLedCharge->GetZaxis()->SetTitle("Summed PE");
00529 
00530   hMCTZAxis = hm.Book<TH2F>("MCTZAxis", "",
00531     485, 1, 486, 1000, 0., 1000);
00532   hMCTZAxis->GetXaxis()->SetTitle("Plane");
00533   hMCTZAxis->GetYaxis()->SetTitle("T (ns)");
00534 
00535   hRawPlaneCharge = hm.Book<TH1F>("RawPlaneCharge", "", 485, 1, 486);
00536   hRawPlaneCharge->GetXaxis()->SetTitle("Plane");
00537   hRawPlaneCharge->GetYaxis()->SetTitle("PE");
00538   hRawPlaneCharge->SetLineStyle(2);
00539 
00540   hCorrPlaneCharge = hm.Book<TH1F>("CorrPlaneCharge", "", 485, 1, 486);
00541   hCorrPlaneCharge->GetXaxis()->SetTitle("Plane");
00542   hCorrPlaneCharge->GetYaxis()->SetTitle("PE");
00543   hCorrPlaneCharge->SetFillColor(kYellow);
00544   hCorrPlaneCharge->SetLineWidth(2);
00545 
00546   for(int i=0; i<4; i++) {
00547     hTrkVeto[i] = hm.Book<TH1F>(Form("TrkVetoSection%d",i+1),
00548       Form("Section %d",i+1), 100, -500, 500);
00549     hTrkVeto[i]->GetXaxis()->SetTitle("T_{shield} - T_{vertex}(ns)");
00550     hTrkVeto[i]->GetYaxis()->SetTitle("Shield PE");
00551     hTrkVeto[i]->SetLineColor(kRed);
00552 
00553     hShwVeto[i] = hm.Book<TH1F>(Form("ShwVetoSection%d",i+1),
00554       Form("Section %d",i+1), 100, -500, 500);
00555     hShwVeto[i]->GetXaxis()->SetTitle("T_{shield} - T_{vertex}(ns)");
00556     hShwVeto[i]->GetYaxis()->SetTitle("Shield PE");
00557     hShwVeto[i]->SetLineColor(kGreen);
00558   }
00559 
00560   hTiming = new TH1F();
00561   hTiming->SetName("Timing");
00562 }

void CamEvd::MakeMCPlot ( const AtmosEvent event  )  [private]

Definition at line 1707 of file CamEvd.cxx.

References C45, cMCMainView, cMCSideView, cMCTrkIdView, AtmosScintHit::DE, TruthHelp::DeMuxFailures, Draw(), FarLayout::DrawFiducial(), FarLayout::DrawSteel(), AtmosScintHit::DS, AtmosMC::Eel, AtmosMC::Ehad, AtmosMC::EMfrac, AtmosMC::Emu, AtmosMC::Enu, fMakeMCTrkIdView, fMaxPlane, fMaxT, fMaxU, fMaxUStrip, fMaxV, fMaxVStrip, fMCTimeWin, fMinPlane, fMinT, fMinU, fMinUStrip, fMinV, fMinVStrip, Form(), TruthHelp::HadronHits, hMCPlaneDE, hMCTZAxis, hUZLinearAxis, hUZStpPlnAxis, hVZLinearAxis, hVZStpPlnAxis, hXYAxis, AtmosScintHit::Id, AtmosMC::IDact, IDactToText(), AtmosMC::IDnu, IDnuToText(), AtmosMC::IDres, IDresToText(), Msg::kError, Msg::kSynopsis, TruthHelp::LeptonHits, AtmosEvent::MCInfo, MCPlaneFromZ, MCStpPlnFromTZ, MCStripFromT, MSG, TruthHelp::NoiseHits, AtmosEvent::NScintHits, AtmosMC::PelZ, AtmosMC::PhadZ, AtmosStrip::Plane, AtmosScintHit::Plane, AtmosMC::PmuZ, AtmosMC::PnuZ, ScintHitIdToColor(), ScintHitIdToStyle(), AtmosStrip::Strip, AtmosScintHit::Strip, AtmosScintHit::T, T0, AtmosScintHit::TrkId, AtmosScintHit::U, AtmosScintHit::V, AtmosScintHit::View, AtmosMC::VtxU, AtmosMC::VtxV, AtmosMC::VtxZ, AtmosScintHit::X, and AtmosScintHit::Y.

Referenced by FillEvent().

01707                                                {
01708   if(event->NScintHits == 0) return;
01709   hMCPlaneDE->Reset();
01710 
01711   //Individual objects
01712   //AtmosMC mcinfo = event->MCInfo;
01713 
01714   static vector<TMarker> UZMCHits; UZMCHits.clear();
01715   static vector<TText> UZTrkId; UZTrkId.clear();
01716 
01717   static vector<TMarker> VZMCHits; VZMCHits.clear();
01718   static vector<TText> VZTrkId; VZTrkId.clear();
01719 
01720   static vector<TMarker> XYMCHits; XYMCHits.clear();
01721 
01722   static vector<TMarker> TZMCHits; TZMCHits.clear();
01723 
01724   double MaxT = 0.0;
01725 
01726   for (int i=0; i<event->ScintHitList->GetEntries(); i++) {
01727     const AtmosScintHit* hit =
01728       dynamic_cast<const AtmosScintHit*>
01729       (event->ScintHitList->At(i));
01730     assert(hit);
01731 
01732     if(hit->DS == 0.0 || hit->DE == 0.0) continue;
01733 
01734     double TNS = 1e9 * hit->T[0];
01735     double TimeWindow = fMCTimeWin * (fMaxT - fMinT);
01736     if(TNS > TimeWindow) continue;
01737 
01738     if(TNS > MaxT) MaxT = TNS;
01739 
01740     if(hit->Plane>fMaxPlane) fMaxPlane = hit->Plane;
01741     if(hit->Plane<fMinPlane) fMinPlane = hit->Plane;
01742 
01743     hMCPlaneDE->Fill(hit->Plane,hit->DE*1000);
01744 
01745 
01746     TZMCHits.push_back(TMarker(hit->Plane, TNS, kFullCircle));
01747 
01748     if (hit->View==0) {
01749       if(hit->Strip < fMinUStrip) fMinUStrip = hit->Strip;
01750       if(hit->Strip > fMaxUStrip) fMaxUStrip = hit->Strip;
01751     }
01752     else {
01753       if(hit->Strip < fMinVStrip) fMinVStrip = hit->Strip;
01754       if(hit->Strip > fMaxVStrip) fMaxVStrip = hit->Strip;
01755     }
01756 
01757     if(hit->U[0] < fMinU) fMinU = hit->U[0];
01758     if(hit->U[0] > fMaxU) fMaxU = hit->U[0];
01759     if(hit->V[0] < fMinV) fMinV = hit->V[0];
01760     if(hit->V[0] > fMaxV) fMaxV = hit->V[0];
01761 
01762     TMarker tm(hit->X[0], hit->Y[0], 20);
01763     tm.SetMarkerSize(1);
01764     tm.SetMarkerColor(ScintHitIdToColor(hit->Id));
01765     tm.SetMarkerStyle(ScintHitIdToStyle(hit->Id));
01766     XYMCHits.push_back(tm);
01767 
01768     tm.SetX(hit->Plane);
01769     tm.SetY(hit->Strip);
01770     if(hit->View == 0) UZMCHits.push_back(tm);
01771     else VZMCHits.push_back(tm);
01772 
01773     TText tt(hit->Plane, hit->Strip, Form("%d",TMath::Abs(hit->TrkId)));
01774     tt.SetTextAlign(22);
01775     tt.SetTextSize(0.05);
01776 
01777     if (hit->TrkId>0) {
01778       tt.SetTextColor(kRed);
01779       tt.SetTextSize(0.07);
01780       //MSG("FarDetEvent",Msg::kSynopsis) << "Adding Primary Hit TrkId = " << hit->TrkId << endl;
01781       //hit->Dump();
01782       //cout << endl;
01783     }
01784 
01785     if(hit->View == 0) UZTrkId.push_back(tt);
01786     else VZTrkId.push_back(tt);
01787   }
01788 
01789   if(MaxT > fMaxT) fMaxT = MaxT;
01790 
01791   //static vector<TLatex> UZStripsMC; UZStripsMC.clear();
01792   //static vector<TLatex> VZStripsMC; VZStripsMC.clear();
01793 
01794   static vector<TMarker> UZTransMC; UZTransMC.clear();
01795   static vector<TMarker> VZTransMC; VZTransMC.clear();
01796 
01797   TruthHelp thelp(event);
01798   set<SetStrip>::iterator sitr;
01799   MSG("FarDetEvent",Msg::kSynopsis) << "Adding " << thelp.LeptonHits.size() << " Lepton Hits" << endl;
01800   for (sitr  = thelp.LeptonHits.begin();
01801        sitr != thelp.LeptonHits.end(); sitr++) {
01802     const AtmosStrip* strip =
01803       dynamic_cast<const AtmosStrip*>
01804       (event->StripList->At(sitr->TCIndex));
01805     assert(strip);
01806 
01807     TLatex tl(strip->Plane,strip->Strip,"#otimes");
01808     tl.SetTextAlign(22);
01809     if(thelp.DeMuxFailures.find(*sitr) !=
01810        thelp.DeMuxFailures.end()) tl.SetTextColor(kRed);
01811     //if(strip->View==0) UZStripsMC.push_back(tl);
01812     //else VZStripsMC.push_back(tl);
01813   }
01814 
01815   MSG("FarDetEvent",Msg::kSynopsis) << "Adding " << thelp.HadronHits.size() << " Hadron Hits" << endl;
01816   for (sitr  = thelp.HadronHits.begin();
01817        sitr != thelp.HadronHits.end(); sitr++) {
01818     const AtmosStrip* strip =
01819       dynamic_cast<const AtmosStrip*>
01820       (event->StripList->At(sitr->TCIndex));
01821     assert(strip);
01822 
01823     TLatex tl(strip->Plane,strip->Strip,"#oplus");
01824     tl.SetTextAlign(22);
01825     if(thelp.DeMuxFailures.find(*sitr) !=
01826        thelp.DeMuxFailures.end()) tl.SetTextColor(kRed);
01827     //if(strip->View==0) UZStripsMC.push_back(tl);
01828     //else VZStripsMC.push_back(tl);
01829   }
01830 
01831   MSG("FarDetEvent",Msg::kSynopsis) << "Adding " << thelp.NoiseHits.size() << " Noise Hits" << endl;
01832   for (sitr  = thelp.NoiseHits.begin();
01833        sitr != thelp.NoiseHits.end(); sitr++) {
01834     const AtmosStrip* strip =
01835       dynamic_cast<const AtmosStrip*>
01836       (event->StripList->At(sitr->TCIndex));
01837     assert(strip);
01838 
01839     TLatex tl(strip->Plane, strip->Strip, "#oslash");
01840     tl.SetTextAlign(22);
01841     /*
01842     if(thelp.DeMuxFailures.find(*sitr) !=
01843        thelp.DeMuxFailures.end()) tl.SetTextColor(kRed);
01844     */
01845     //if(strip->View==0) UZStripsMC.push_back(tl);
01846     //else VZStripsMC.push_back(tl);
01847   }
01848 
01849   //Latex line to be used later
01850   TLatex tl;
01851   tl.SetNDC(true);
01852   tl.SetTextAlign(31);
01853   tl.SetTextSize(0.04);
01854 
01855   TLatex TLatex_Nat;
01856   TLatex_Nat.SetTextAlign(22);
01857   TLatex_Nat.SetTextSize(0.06);
01858 
01859   TArrow PartArrows;
01860   PartArrows.SetFillColor(kRed);
01861   PartArrows.SetArrowSize(0.01);
01862 
01863   std::string VtxStr;
01864   if (event->MCInfo.IDnu == 0) {//Cosmic Ray
01865     if(event->MCInfo.Emu==0) VtxStr = "WTF";
01866     else if(event->MCInfo.Emu>0) VtxStr = "#mu^{+}";
01867     else if(event->MCInfo.Emu<0) VtxStr = "#mu^{-}";
01868     else MSG("FarDetEvent",Msg::kError) << "WTF" << endl;
01869   }
01870   else {//Neutrino
01871     VtxStr = IDnuToText(event->MCInfo.IDnu);
01872   }
01873 
01874   double PnuU = C45 * (event->MCInfo.PnuY + event->MCInfo.PnuX);
01875   double PnuV = C45 * (event->MCInfo.PnuY - event->MCInfo.PnuX);
01876   double PmuU = C45 * (event->MCInfo.PmuY + event->MCInfo.PmuX);
01877   double PmuV = C45 * (event->MCInfo.PmuY - event->MCInfo.PmuX);
01878   double PelU = C45 * (event->MCInfo.PelY + event->MCInfo.PelX);
01879   double PelV = C45 * (event->MCInfo.PelY - event->MCInfo.PelX);
01880   double PhadU = C45 * (event->MCInfo.PhadY + event->MCInfo.PhadX);
01881   double PhadV = C45 * (event->MCInfo.PhadY - event->MCInfo.PhadX);
01882   double Z0, Z1, T0, T1;
01883   char Opt[5];
01884 
01885   //Draw up U View
01886   cMCMainView->cd(1);
01887   hUZStpPlnAxis->Draw();
01888   for(unsigned int i=0; i<UZMCHits.size(); ++i) UZMCHits[i].Draw();
01889   tl.SetTextAlign(11);
01890   if (event->MCInfo.IDnu != 0) {
01891     tl.DrawLatex(0.1, 0.95, Form("%s - %s - %s(%.3f, %.3f, %.3f, %.3f)",
01892       IDnuToText(event->MCInfo.IDnu),
01893       IDactToText(event->MCInfo.IDact),
01894       IDresToText(event->MCInfo.IDres),
01895       event->MCInfo.Enu, PnuU, PnuV, event->MCInfo.PnuZ));
01896   }
01897 
01898   TLatex_Nat.DrawLatex(MCPlaneFromZ(event->MCInfo.VtxZ),
01899                        MCStripFromT(event->MCInfo.VtxU),
01900                        VtxStr.c_str());
01901 
01902   if (event->MCInfo.IDnu != 0) {
01903     if (event->MCInfo.PnuZ > 0.0) {
01904       Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 4;
01905       Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
01906       T1 = MCStripFromT(event->MCInfo.VtxU);
01907       T0 = T1 - (MCStpPlnFromTZ(PnuU/event->MCInfo.PnuZ)*(Z1-Z0));
01908       sprintf(Opt, "|>");
01909     } else {
01910       Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
01911       Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 4;
01912       T0 = MCStripFromT(event->MCInfo.VtxU);
01913       T1 = T0 + (MCStpPlnFromTZ(PnuU/event->MCInfo.PnuZ)*(Z1-Z0));
01914       sprintf(Opt, "<|");
01915     }
01916     PartArrows.SetLineStyle(2);
01917     PartArrows.SetFillColor(kGreen);
01918     PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
01919 
01920     if (TMath::Abs(event->MCInfo.Emu) > 0.0) {
01921       if (event->MCInfo.PmuZ > 0.0) {
01922         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
01923         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 6;
01924         T0 = MCStripFromT(event->MCInfo.VtxU);
01925         T1 = T0 + (MCStpPlnFromTZ(PmuU/event->MCInfo.PmuZ)*(Z1-Z0));
01926         sprintf(Opt, "|>");
01927       } else {
01928         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 6;
01929         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
01930         T1 = MCStripFromT(event->MCInfo.VtxU);
01931         T0 = T1 - (MCStpPlnFromTZ(PmuU/event->MCInfo.PmuZ)*(Z1-Z0));
01932         sprintf(Opt, "<|");
01933       }
01934 
01935       PartArrows.SetLineColor(kRed);
01936       PartArrows.SetLineStyle(1);
01937       PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
01938     }
01939 
01940     if (TMath::Abs(event->MCInfo.Eel) > 0.0) {
01941       if (event->MCInfo.PelZ > 0.0) {
01942         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
01943         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 6;
01944         T0 = MCStripFromT(event->MCInfo.VtxU);
01945         T1 = T0 + (MCStpPlnFromTZ(PelU/event->MCInfo.PelZ)*(Z1-Z0));
01946         sprintf(Opt, "|>");
01947       } else {
01948         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 6;
01949         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
01950         T1 = MCStripFromT(event->MCInfo.VtxU);
01951         T0 = T1 - (MCStpPlnFromTZ(PelU/event->MCInfo.PelZ)*(Z1-Z0));
01952         sprintf(Opt, "<|");
01953       }
01954 
01955       PartArrows.SetLineColor(kGreen);
01956       PartArrows.SetLineStyle(1);
01957       PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
01958     }
01959   }
01960 
01961   //Draw up V View
01962   cMCMainView->cd(2);
01963   hVZStpPlnAxis->Draw();
01964   for(unsigned int i=0; i<VZMCHits.size(); ++i) VZMCHits[i].Draw();
01965 
01966   tl.SetTextAlign(21);
01967   string ThisLine;
01968   if(event->MCInfo.Emu > 0.0)
01969     ThisLine +=  Form("#mu^{+}(%.2f, %.2f, %.2f, %.2f)",
01970       event->MCInfo.Emu, PmuU, PmuV, event->MCInfo.PmuZ);
01971   if(event->MCInfo.Emu < 0.0)
01972     ThisLine +=  Form("#mu^{-}(%.2f, %.2f, %.2f, %.2f)",
01973       event->MCInfo.Emu, PmuU, PmuV, event->MCInfo.PmuZ);
01974   if(event->MCInfo.Eel > 0.0)
01975     ThisLine +=  Form("e^{+}(%.2f, %.2f, %.2f, %.2f)",
01976       event->MCInfo.Eel, PelU, PelV, event->MCInfo.PelZ);
01977   if(event->MCInfo.Eel < 0.0)
01978     ThisLine +=  Form("e^{-}(%.2f, %.2f, %.2f, %.2f)",
01979       event->MCInfo.Eel, PelU, PelV, event->MCInfo.PelZ);
01980   /*
01981   ThisLine += Form(" | Vtx(%.2f, %.2f, %.1f)",
01982     event->MCInfo.VtxX, event->MCInfo.VtxU, event->MCInfo.VtxU);
01983   */
01984   tl.DrawLatex(0.5, 0.95, ThisLine.c_str());
01985 
01986   TLatex_Nat.DrawLatex(MCPlaneFromZ(event->MCInfo.VtxZ),
01987                        MCStripFromT(event->MCInfo.VtxV),
01988                        VtxStr.c_str());
01989 
01990   if (event->MCInfo.IDnu != 0) {
01991     if (event->MCInfo.PnuZ > 0.0) {
01992       Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 4;
01993       Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
01994       T1 = MCStripFromT(event->MCInfo.VtxV);
01995       T0 = T1 - (MCStpPlnFromTZ(PnuV/event->MCInfo.PnuZ)*(Z1-Z0));
01996       sprintf(Opt, "|>");
01997     } else {
01998       Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
01999       Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 4;
02000       T0 = MCStripFromT(event->MCInfo.VtxV);
02001       T1 = T0 + (MCStpPlnFromTZ(PnuV/event->MCInfo.PnuZ)*(Z1-Z0));
02002       sprintf(Opt, "<|");
02003     }
02004     PartArrows.SetLineStyle(2);
02005     PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
02006 
02007     if (TMath::Abs(event->MCInfo.Emu) > 0.0) {
02008       if (event->MCInfo.PmuZ > 0.0) {
02009         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
02010         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 6;
02011         T0 = MCStripFromT(event->MCInfo.VtxV);
02012         T1 = T0 + (MCStpPlnFromTZ(PmuV/event->MCInfo.PmuZ)*(Z1-Z0));
02013         sprintf(Opt, "|>");
02014       } else {
02015         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 6;
02016         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
02017         T1 = MCStripFromT(event->MCInfo.VtxV);
02018         T0 = T1 - (MCStpPlnFromTZ(PmuV/event->MCInfo.PmuZ)*(Z1-Z0));
02019         sprintf(Opt, "<|");
02020       }
02021 
02022       PartArrows.SetLineColor(kRed);
02023       PartArrows.SetLineStyle(1);
02024       PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
02025     }
02026 
02027     if (TMath::Abs(event->MCInfo.Eel) > 0.0) {
02028       if (event->MCInfo.PelZ > 0.0) {
02029         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ);
02030         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ) + 6;
02031         T0 = MCStripFromT(event->MCInfo.VtxV);
02032         T1 = T0 + (MCStpPlnFromTZ(PelV/event->MCInfo.PelZ)*(Z1-Z0));
02033         sprintf(Opt, "|>");
02034       } else {
02035         Z0 = MCPlaneFromZ(event->MCInfo.VtxZ) - 6;
02036         Z1 = MCPlaneFromZ(event->MCInfo.VtxZ);
02037         T1 = MCStripFromT(event->MCInfo.VtxV);
02038         T0 = T1 - (MCStpPlnFromTZ(PelV/event->MCInfo.PelZ)*(Z1-Z0));
02039         sprintf(Opt, "<|");
02040       }
02041 
02042       PartArrows.SetLineColor(kGreen);
02043       PartArrows.SetLineStyle(1);
02044       PartArrows.DrawArrow(Z0, T0, Z1, T1, 0, Opt);
02045     }
02046   }
02047 
02048   //Draw up XY View
02049   cMCMainView->cd(3);
02050   hXYAxis->Draw();
02051   FarLayout *layout = new FarLayout();
02052   layout->DrawSteel();
02053   layout->DrawFiducial();
02054   for(unsigned int i=0; i<XYMCHits.size(); i++) XYMCHits[i].Draw();
02055   tl.SetTextAlign(31);
02056   ThisLine = "";
02057   if(event->MCInfo.Ehad > 0.0)
02058     ThisLine +=  Form("Had(%.2f, %.2f, %.2f, %.2f)",
02059       event->MCInfo.Ehad, PhadU, PhadV, event->MCInfo.PhadZ);
02060   if(event->MCInfo.EMfrac > 0.0)
02061     ThisLine +=  Form(" | EMFrac = %.3f", event->MCInfo.EMfrac);
02062   tl.DrawLatex(0.9, 0.95, ThisLine.c_str());
02063 
02064   cMCMainView->cd(4);
02065   hMCPlaneDE->Draw("hist");
02066 
02067   cMCMainView->cd(6);
02068   hMCTZAxis->Draw();
02069   for(unsigned int i=0; i<TZMCHits.size(); i++) TZMCHits[i].Draw();
02070 
02071   cMCSideView->cd(1);
02072   hUZStpPlnAxis->Draw();
02073   //for(unsigned int i=0; i<UZStripsMC.size(); ++i) UZStripsMC[i].Draw();
02074   tl.DrawLatex(0.9,0.95, "#otimes = Lepton, #oplus = Hadron");
02075 
02076   cMCSideView->cd(2);
02077   hVZStpPlnAxis->Draw();
02078   //for(unsigned int i=0; i<VZStripsMC.size(); ++i) VZStripsMC[i].Draw();
02079   tl.DrawLatex(0.9,0.95, "#color[2]{O} = DeMuxFailure, #oslash = Noise");
02080 
02081   cMCSideView->cd(3);
02082   hVZLinearAxis->Draw();
02083   for(unsigned int i=0; i<VZTransMC.size(); ++i) VZTransMC[i].Draw();
02084 
02085   cMCSideView->cd(4);
02086   hUZLinearAxis->Draw();
02087   for(unsigned int i=0; i<UZTransMC.size(); ++i) UZTransMC[i].Draw();
02088 
02089   if (fMakeMCTrkIdView) {
02090     cMCTrkIdView->cd(1);
02091     hUZStpPlnAxis->Draw();
02092     for(unsigned int i=0; i<UZTrkId.size(); ++i) UZTrkId[i].Draw();
02093 
02094     cMCTrkIdView->cd(2);
02095     hVZStpPlnAxis->Draw();
02096     for(unsigned int i=0; i<VZTrkId.size(); ++i) VZTrkId[i].Draw();
02097   }
02098 }

bool CamEvd::MakePS (  )  [inline]

Definition at line 199 of file CamEvd.h.

References fMakePS.

00199 {return fMakePS;}

void CamEvd::MakePS ( bool  Q  )  [inline]

Definition at line 198 of file CamEvd.h.

References fMakePS.

00198 {fMakePS = Q;}

bool CamEvd::MakeROOT (  )  [inline]

Definition at line 205 of file CamEvd.h.

References fMakeROOT.

00205 {return fMakeROOT;}

void CamEvd::MakeROOT ( bool  Q  )  [inline]

Definition at line 204 of file CamEvd.h.

References fMakeROOT.

00204 {fMakeROOT = Q;}

void CamEvd::MakeShieldPlot ( const AtmosEvent event  )  [private]

Definition at line 1439 of file CamEvd.cxx.

References AtmosShieldPlank::ClearFibre, cShieldView, FarLayout::Draw(), Draw(), MuELoss::e, AtmosTrack::EndDirCosX, AtmosTrack::EndDirCosY, AtmosTrack::EndDirCosZ, AtmosTrack::EndPlane, AtmosTrack::EndTime, AtmosTrack::EndX, AtmosTrack::EndY, AtmosTrack::EndZ, fClearFibreN, fDoShieldPlot, UtilCanvas::FixPad(), fWlsFibreN, hShwVeto, hTrkVeto, hXYAxis, AtmosEvent::NScintHits, AtmosShieldPlank::Plank, AtmosShieldPlank::QPE, AtmosShieldPlank::Section, SoL, AtmosShieldPlank::Tcal, AtmosTrack::VtxDirCosX, AtmosTrack::VtxDirCosY, AtmosTrack::VtxDirCosZ, AtmosShower::VtxPlane, AtmosTrack::VtxPlane, AtmosShower::VtxTime, AtmosTrack::VtxTime, AtmosShower::VtxX, AtmosTrack::VtxX, AtmosShower::VtxY, AtmosTrack::VtxY, AtmosShower::VtxZ, AtmosTrack::VtxZ, AtmosShieldPlank::WlsPigtail, AtmosShieldPlank::X, AtmosShieldPlank::Y, MinosMaterial::Z(), and AtmosShieldPlank::Z.

Referenced by FillEvent().

01439                                                    {
01440   cShieldView->Clear("D");
01441   if(!fDoShieldPlot) return;
01442   if(event->NScintHits != 0) return;//Only look at data
01443 
01444   for(int i=0; i<4; i++) {
01445     hTrkVeto[i]->Reset("ICE");
01446     hShwVeto[i]->Reset("ICE");
01447   }
01448 
01449   for(int i=0; i<4; ++i) {
01450     hTrkVeto[i]->SetLineColor(1);
01451   }
01452 
01453   static vector<TMarker> ShieldHits; ShieldHits.clear();
01454   
01455   cShieldView->cd(5);
01456   double currenty = 0.96;
01457   static TLatex* latex = new TLatex(); 
01458   latex->SetTextColor(1);
01459   latex->SetTextSize(0.04);
01460   latex->SetLineWidth(2);
01461   char temp[256];
01462   sprintf(temp,"SHIELD HITS");
01463   latex->DrawLatex(0.1,currenty,temp);
01464   latex->SetTextSize(0.03);
01465   static char temp_line[1024];
01466   
01467   int topplane(-999);
01468   float toptime(0.0);
01469   float topX(0.0),topY(0.0),topZ(-999.9),topZ2(-999.9);
01470   double dircosX(0),dircosY(0),dircosZ(0);
01471 
01472   double dTcorr[2];
01473 
01474   const AtmosTrack* track =
01475     dynamic_cast<const AtmosTrack*>(event->TrackList->At(0));
01476 
01477   const AtmosShower* shower =
01478     dynamic_cast<const AtmosShower*>(event->ShowerList->At(0));
01479 
01480   if ( track ) {
01481     if( track->VtxY<track->EndY ) { 
01482       toptime = track->EndTime;
01483       topplane = track->EndPlane;
01484       topX = track->EndX; 
01485       topY = track->EndY; 
01486       topZ = track->EndZ;; 
01487       dircosX = -track->EndDirCosX; 
01488       dircosY = -track->EndDirCosY; 
01489       dircosZ = -track->EndDirCosZ;
01490     }
01491     else { 
01492       toptime = track->VtxTime; 
01493       topplane = track->VtxPlane;
01494       topX = track->VtxX; 
01495       topY = track->VtxY; 
01496       topZ = track->VtxZ; 
01497       dircosX = track->VtxDirCosX; 
01498       dircosY = track->VtxDirCosY; 
01499       dircosZ = track->VtxDirCosZ;
01500     }
01501   }
01502   else if( shower ) {
01503     toptime = shower->VtxTime; 
01504     topplane = shower->VtxPlane;
01505     topX = shower->VtxX; 
01506     topY = shower->VtxY; 
01507     topZ = shower->VtxZ; 
01508   }
01509 
01510   currenty-=0.025;
01511   
01512   bool PlankInTime,PlankInTime0;
01513   bool HighestEndBelowShieldSection;
01514   double TravelTimeShield2Vertex;
01515 
01516   for (int i=0; i<event->ShieldPlankList->GetEntries(); i++) {
01517     const AtmosShieldPlank* plank = dynamic_cast<const AtmosShieldPlank*>(event->ShieldPlankList->At(i));
01518     assert(plank);
01519 
01520     PlankInTime0 = 0;
01521     PlankInTime = 0;
01522     HighestEndBelowShieldSection = 0;
01523 
01524     dTcorr[0] = plank->Tcal[0];
01525     dTcorr[1] = plank->Tcal[1];
01526 
01527     if( track || shower ){
01528 
01529       if( topZ<plank->Z[0]+0.5 && topZ>plank->Z[1]-0.5 ){
01530         HighestEndBelowShieldSection = 1;
01531       }
01532 
01533       if( !HighestEndBelowShieldSection && plank->Y>topY-0.1 ){
01534         if( ( topplane>228 && topplane<249 
01535            && topZ<plank->Z[0]+0.5 && topZ>plank->Z[1]-2.5 ) 
01536          || ( topplane>249 && topplane<270 
01537            && topZ<plank->Z[0]+2.5 && topZ>plank->Z[1]-0.5 ) ){
01538           HighestEndBelowShieldSection = 1;
01539         }
01540       }
01541   
01542       if( !HighestEndBelowShieldSection && plank->Y>topY-0.1 && track ){
01543         if( ( topplane>228 && topplane<249 && dircosZ<0.0 ) 
01544          || ( topplane>249 && topplane<270 && dircosZ>0.0 ) ){
01545           if( dircosY!=0 ){
01546             topZ2 = topZ + (dircosZ/dircosY)*(plank->Y-topY);
01547             if( topZ2<plank->Z[0]+0.5 && topZ2>plank->Z[1]-0.5 ){
01548               HighestEndBelowShieldSection = 1;
01549             }
01550           }
01551         }
01552       }
01553 
01554       TravelTimeShield2Vertex = (1.0/SoL)*pow( (plank->X - topX)*(plank->X - topX) + (plank->Y - topY)*(plank->Y - topY), 0.5);
01555 
01556       dTcorr[0] = plank->Tcal[0] - ( fWlsFibreN/SoL )*( plank->WlsPigtail[0] + (plank->Z[0] - topZ) ) - ( fClearFibreN/SoL )*( plank->ClearFibre[0] ) + 26.e-9 + TravelTimeShield2Vertex - toptime;
01557 
01558       dTcorr[1] = plank->Tcal[1] - ( fWlsFibreN/SoL )*( plank->WlsPigtail[1] - (plank->Z[1] - topZ) ) - ( fClearFibreN/SoL )*( plank->ClearFibre[1] ) + 26.e-9 + TravelTimeShield2Vertex - toptime;
01559 
01560     }
01561 
01562     if( ( fabs(dTcorr[0])<10000e-9 && plank->QPE[0]>0.0 ) 
01563      || ( fabs(dTcorr[1])<10000e-9 && plank->QPE[1]>0.0 ) ) PlankInTime0 = 1;
01564 
01565     if( ( fabs(dTcorr[0])<100e-9 && plank->QPE[0]>0.0 ) 
01566      || ( fabs(dTcorr[1])<100e-9 && plank->QPE[1]>0.0 ) ) PlankInTime = 1;
01567    
01568     if( PlankInTime0 ) {
01569 
01570       if( HighestEndBelowShieldSection ) { 
01571         latex->SetTextColor(2); 
01572         hTrkVeto[plank->Section-1]->SetLineColor(2); 
01573       }
01574       else{
01575         latex->SetTextColor(1);
01576       }
01577 
01578       if(plank->QPE[0]<0.01)
01579         {
01580           sprintf(temp_line, "Sec:%2d Plk:%02d  XY:% 2.2f % 2.2f Q:          % 5.2f TRel: %+8.1f",
01581                   plank->Section, plank->Plank, plank->X, plank->Y, plank->QPE[1],
01582                   (dTcorr[1])*1.0e9);
01583         }
01584       else if(plank->QPE[1]<0.01)
01585         {
01586           sprintf(temp_line, "Sec:%2d Plk:%02d  XY:% 2.2f % 2.2f Q:% 5.2f           TRel: %+8.1f",
01587                   plank->Section, plank->Plank, plank->X, plank->Y, plank->QPE[0],
01588                   (dTcorr[0])*1.0e9);
01589         }
01590       else
01591         {
01592           sprintf(temp_line, "Sec:%2d Plk:%02d  XY:% 2.2f % 2.2f Q:% 5.2f % 5.2f  TRel: %+8.1f %+8.1f",
01593                   plank->Section, plank->Plank, plank->X, plank->Y, plank->QPE[0], plank->QPE[1],
01594                   (dTcorr[0])*1.0e9, (dTcorr[1])*1.0e9);
01595         }
01596     
01597       latex->DrawLatex(0.01, currenty, temp_line); 
01598    
01599       currenty-=0.027;
01600     
01601       for (int iend=0; iend<2; iend++) {
01602         if(plank->QPE[iend] == 0) continue;
01603         hTrkVeto[plank->Section-1]->Fill(dTcorr[iend]*1e9, plank->QPE[iend]);
01604       }
01605 
01606       TMarker tm(plank->X, plank->Y, 24);
01607       if( PlankInTime ) tm.SetMarkerStyle(20);
01608 
01609       if( HighestEndBelowShieldSection==1 ) tm.SetMarkerColor(2);
01610       else tm.SetMarkerColor(1);
01611       //tmp.SetMarkerSize(0.7);
01612       tm.SetMarkerSize(1);
01613       // tm.SetMarkerColor(kRed);
01614       // if(StripInTime) tm.SetMarkerStyle(29);
01615       ShieldHits.push_back(tm);
01616     }
01617 
01618   }
01619   
01620   const int ViewI[4] = {1, 3, 4, 6};
01621   for (int i=0; i<4; i++) 
01622     {
01623       cShieldView->cd(ViewI[i]);
01624       //hShwVeto[i]->Draw();
01625       hTrkVeto[i]->Draw();
01626     }
01627   UtilCanvas::FixPad(cShieldView);
01628 
01629   cShieldView->cd(2);
01630   hXYAxis->Draw();
01631   FarLayout *layout = new FarLayout();
01632   layout->Draw();
01633   for(unsigned int i=0; i<ShieldHits.size(); i++) ShieldHits[i].Draw();
01634 
01635   TMarker tm(0,0, 29);
01636   tm.SetMarkerSize(1.2);
01637 
01638   if( shower ){
01639     tm.SetMarkerColor(kGreen);
01640     tm.DrawMarker(shower->VtxX, shower->VtxY);
01641   }
01642 
01643   if( track ){
01644     tm.SetMarkerColor(kRed);
01645     tm.DrawMarker(track->VtxX, track->VtxY);
01646     tm.SetMarkerStyle(30);
01647     tm.DrawMarker(track->EndX, track->EndY);
01648   }
01649 
01650   double factor(0), factorX(0.0), factorY(0.0);
01651   TArrow trkArrows;
01652 
01653   if( track ){
01654     if( dircosX*dircosX+dircosY*dircosY>0.0 ){
01655 
01656       factor = 16.0/(dircosX*dircosX+dircosY*dircosY);
01657       factor = pow(factor,0.5);
01658       factorX = topX-dircosX*factor;
01659       factorY = topY-dircosY*factor;
01660 
01661       trkArrows.SetLineStyle(2);
01662       trkArrows.SetArrowSize(0.01);
01663       trkArrows.SetFillColor(kGreen);
01664       trkArrows.DrawArrow(factorX, factorY, topX, topY);//, Opt);
01665     }
01666   }
01667 
01668 }

void CamEvd::MakeShowerPlot ( const AtmosEvent event  )  [private]

Definition at line 1670 of file CamEvd.cxx.

References cShowerView, fDoShowerPlot, hShwPlnCosZProfile, hShwPlnProfile, hUZStpPlnShw, and hVZStpPlnShw.

Referenced by FillEvent().

01670                                                          {
01671   cShowerView->Clear("D");//"D" keeps sub pads from being removed
01672   if(!fDoShowerPlot) return;
01673 
01674   hUZStpPlnShw->Reset();
01675   hVZStpPlnShw->Reset();
01676 
01677   hShwPlnProfile->Reset();
01678   hShwPlnCosZProfile->Reset();
01679 
01680   /*
01681   for (unsigned int i=0; i<gTheShower.Strips.size(); i++) {
01682     const AtmosStrip* strip =
01683       dynamic_cast<const AtmosStrip*>
01684       (event->StripList->At(gTheShower.Strips[i]));
01685     assert(strip);
01686 
01687     double EThis = strip->QPEcorr[0] + strip->QPEcorr[1];
01688 
01689     if(strip->View==0) {
01690       hUZStpPlnShw->Fill(strip->Plane, strip->Strip, EThis);
01691     }
01692     if(strip->View==1) {
01693       hVZStpPlnShw->Fill(strip->Plane, strip->Strip, EThis);
01694     }
01695     hShwPlnProfile->Fill(strip->Plane, EThis);
01696   }
01697   */
01698 
01699   cShowerView->cd(1);
01700   hUZStpPlnShw->Draw("lego2");
01701   cShowerView->cd(2);
01702   hVZStpPlnShw->Draw("lego2");
01703   cShowerView->cd(3);
01704   hShwPlnProfile->Draw();
01705 }

void CamEvd::MakeTimingPlot ( const AtmosEvent event  )  [private]

Definition at line 1371 of file CamEvd.cxx.

References ChargeToColor(), AtmosStrip::ClearFibre, fClearFibreN, fDoTimeCorr1, fDoTimeCorr2, fMaxT, fMeanDEHitDT, fMinT, fRMSDEHitDT, fTZHits, fWlsFibreN, AtmosStrip::HalfLength, Msg::kSynopsis, AtmosStrip::L, MSG, AtmosStrip::Plane, AtmosStrip::Qadc, AtmosStrip::QPEcorr, SoL, AtmosEvent::StripList, AtmosStrip::Tcal, AtmosStrip::View, and AtmosStrip::WlsPigtail.

Referenced by FillEvent().

01371                                                    {
01372   //loop over all the strips
01373   fMeanDEHitDT = fRMSDEHitDT = 0.0;
01374   int NDEHits = 0;
01375   fMinT = 1000.0;
01376   fMaxT = -1000.0;
01377   for (int i=0; i<(int)event->StripList->GetEntries(); i++) {
01378     const AtmosStrip* strip =
01379       dynamic_cast<const AtmosStrip*>(event->StripList->At(i));
01380     assert(strip);
01381 
01382     int MarkerStyle[2] = {kOpenTriangleUp, kOpenSquare};
01383     double Times[2] = {0.0, 0.0};
01384     int NEnds = 0;
01385     for (int iend=0; iend<2; iend++) {
01386       if (strip->Qadc[iend]>0.0) {
01387         NEnds++;
01388         //double ThisTcorr = strip->Tcorr[iend];
01389         double ThisT = strip->Tcal[iend];
01390         if (fDoTimeCorr1) {
01391           ThisT -= (strip->WlsPigtail[iend]) * fWlsFibreN / SoL;
01392           ThisT -= (strip->ClearFibre[iend]) * fClearFibreN / SoL;
01393         }
01394         if (fDoTimeCorr2) {
01395           ThisT -= strip->HalfLength * fWlsFibreN / SoL;
01396           const double ThisL = strip->L;
01397           if(TMath::Abs(ThisL) < strip->HalfLength)
01398             ThisT -= ((strip->View ^ iend) ? ThisL : -ThisL) * fWlsFibreN / SoL;
01399         }
01400         ThisT = ThisT * 1e9;//Convert to nanoseconds
01401         Times[iend] = ThisT;
01402         if(ThisT<fMinT) fMinT = ThisT;
01403         if(ThisT>fMaxT) fMaxT = ThisT;
01404         TMarker tmpm(strip->Plane, ThisT, MarkerStyle[iend]);
01405         tmpm.SetMarkerSize(1.0);
01406         tmpm.SetMarkerColor(ChargeToColor((strip->QPEcorr[1]+
01407                                             strip->QPEcorr[0])));
01408         fTZHits.push_back(tmpm);
01409       }
01410     }
01411     if (NEnds == 2) {
01412       double DT = TMath::Abs(Times[0] - Times[1]);
01413       fMeanDEHitDT += DT;
01414       fRMSDEHitDT += DT * DT;
01415       NDEHits++;
01416     }
01417   }
01418 
01419   if (NDEHits > 0) {
01420     fMeanDEHitDT /= (double)NDEHits;
01421 
01422     fRMSDEHitDT /= (double)NDEHits;
01423   }
01424 
01425   fRMSDEHitDT -= fMeanDEHitDT * fMeanDEHitDT;
01426   if(fRMSDEHitDT<0.0) fRMSDEHitDT = 0.0;
01427   else fRMSDEHitDT = TMath::Sqrt(fRMSDEHitDT);
01428 
01429   MSG("FarDetEvent",Msg::kSynopsis) << "Mean DE Hit DT = " << fMeanDEHitDT << endl;
01430   MSG("FarDetEvent",Msg::kSynopsis) << "RMS DE Hit DT = " << fRMSDEHitDT << endl;
01431 
01432   fMaxT -= fMinT;
01433   for (unsigned int i=0; i<fTZHits.size(); i++) {
01434     fTZHits[i].SetY(fTZHits[i].GetY() - fMinT);
01435   }
01436   fMinT = 0.0;
01437 }

void CamEvd::MakeUVHits ( const AtmosEvent event  )  [private]

Definition at line 1243 of file CamEvd.cxx.

References ChargeToColor(), fMaxPlane, fMaxU, fMaxUStrip, fMaxV, fMaxVStrip, fMaxZ, fMinPlane, fMinU, fMinUStrip, fMinV, fMinVStrip, fMinZ, fUZLinearHitsL, fUZLinearHitsT, fUZStpPlnHits, fVZLinearHitsL, fVZLinearHitsT, fVZStpPlnHits, AtmosStrip::L, AtmosStrip::Plane, AtmosStrip::Qadc, AtmosStrip::QPEcorr, AtmosStrip::Shw, AtmosStrip::Strip, AtmosStrip::T, AtmosStrip::Trk, AtmosStrip::View, and AtmosStrip::Z.

Referenced by FillEvent().

01243                                                {
01244   for (int i=0; i<event->StripList->GetEntries(); i++) {
01245     const AtmosStrip* strip =
01246       dynamic_cast<const AtmosStrip*>(event->StripList->At(i));
01247     assert(strip);
01248     double stripPEcorr = strip->QPEcorr[0] + strip->QPEcorr[1];
01249     int marker = (strip->Qadc[0]>0.0 && strip->Qadc[1]>0.0)?20:28;
01250 
01251     if(strip->Plane>fMaxPlane) fMaxPlane = strip->Plane;
01252     if(strip->Plane<fMinPlane) fMinPlane = strip->Plane;
01253 
01254     if(strip->Z>fMaxZ) fMaxZ = strip->Z;
01255     if(strip->Z<fMinZ) fMinZ = strip->Z;
01256 
01257     TMarker tMLinearT(strip->Z, strip->T, marker);
01258     TMarker tMLinearL(strip->Z, strip->L, marker);
01259     TMarker tMPlnStp(strip->Plane, strip->Strip, marker);
01260     tMLinearT.SetMarkerColor(ChargeToColor(stripPEcorr));
01261     tMLinearL.SetMarkerColor(ChargeToColor(stripPEcorr));
01262     tMPlnStp.SetMarkerColor(ChargeToColor(stripPEcorr));
01263     if (strip->View==0) {
01264       if(strip->L < fMinV) fMinV = strip->L;
01265       if(strip->L > fMaxV) fMaxV = strip->L;
01266       if(strip->T < fMinU) fMinU = strip->T;
01267       if(strip->T > fMaxU) fMaxU = strip->T;
01268       if(strip->Strip < fMinUStrip) fMinUStrip = strip->Strip;
01269       if(strip->Strip > fMaxUStrip) fMaxUStrip = strip->Strip;
01270       tMPlnStp.SetMarkerSize(0.7);
01271       tMLinearT.SetMarkerSize(0.7);
01272       tMLinearL.SetMarkerSize(0.7);
01273       fUZStpPlnHits.push_back(tMPlnStp);
01274       fUZLinearHitsT.push_back(tMLinearT);
01275       fUZLinearHitsL.push_back(tMLinearL);
01276       if (strip->Trk) {
01277         tMPlnStp.SetMarkerStyle(24);
01278         tMLinearT.SetMarkerStyle(24);
01279         tMLinearL.SetMarkerStyle(24);
01280         tMPlnStp.SetMarkerColor(kRed);
01281         tMLinearT.SetMarkerColor(kRed);
01282         tMLinearL.SetMarkerColor(kRed);
01283         tMPlnStp.SetMarkerSize(1.2);
01284         tMLinearT.SetMarkerSize(1.2);
01285         tMLinearL.SetMarkerSize(1.2);
01286         fUZStpPlnHits.push_back(tMPlnStp);
01287         fUZLinearHitsT.push_back(tMLinearT);
01288         fUZLinearHitsL.push_back(tMLinearL);
01289       }
01290       if (strip->Shw) {
01291         tMPlnStp.SetMarkerStyle(25);
01292         tMLinearT.SetMarkerStyle(25);
01293         tMLinearL.SetMarkerStyle(25);
01294         tMPlnStp.SetMarkerColor(kRed);
01295         tMLinearT.SetMarkerColor(kRed);
01296         tMLinearL.SetMarkerColor(kRed);
01297         tMPlnStp.SetMarkerSize(1.2);
01298         tMLinearT.SetMarkerSize(1.2);
01299         tMLinearL.SetMarkerSize(1.2);
01300         fUZStpPlnHits.push_back(tMPlnStp);
01301         fUZLinearHitsT.push_back(tMLinearT);
01302         fUZLinearHitsL.push_back(tMLinearL);
01303       }
01304     }
01305     if (strip->View==1) {
01306       if(strip->L < fMinU) fMinU = strip->L;
01307       if(strip->L > fMaxU) fMaxU = strip->L;
01308       if(strip->T < fMinV) fMinV = strip->T;
01309       if(strip->T > fMaxV) fMaxV = strip->T;
01310       if(strip->Strip < fMinVStrip) fMinVStrip = strip->Strip;
01311       if(strip->Strip > fMaxVStrip) fMaxVStrip = strip->Strip;
01312       tMPlnStp.SetMarkerSize(0.7);
01313       tMLinearT.SetMarkerSize(0.7);
01314       tMLinearL.SetMarkerSize(0.7);
01315       fVZStpPlnHits.push_back(tMPlnStp);
01316       fVZLinearHitsT.push_back(tMLinearT);
01317       fVZLinearHitsL.push_back(tMLinearL);
01318       if (strip->Trk) {
01319         tMPlnStp.SetMarkerStyle(24);
01320         tMLinearT.SetMarkerStyle(24);
01321         tMLinearL.SetMarkerStyle(24);
01322         tMPlnStp.SetMarkerColor(kRed);
01323         tMLinearT.SetMarkerColor(kRed);
01324         tMLinearL.SetMarkerColor(kRed);
01325         tMPlnStp.SetMarkerSize(1.2);
01326         tMLinearT.SetMarkerSize(1.2);
01327         tMLinearL.SetMarkerSize(1.2);
01328         fVZStpPlnHits.push_back(tMPlnStp);
01329         fVZLinearHitsT.push_back(tMLinearT);
01330         fVZLinearHitsL.push_back(tMLinearL);
01331       }
01332       if (strip->Shw) {
01333         tMPlnStp.SetMarkerStyle(25);
01334         tMLinearT.SetMarkerStyle(25);
01335         tMLinearL.SetMarkerStyle(25);
01336         tMPlnStp.SetMarkerColor(kRed);
01337         tMLinearT.SetMarkerColor(kRed);
01338         tMLinearL.SetMarkerColor(kRed);
01339         tMPlnStp.SetMarkerSize(1.2);
01340         tMLinearT.SetMarkerSize(1.2);
01341         tMLinearL.SetMarkerSize(1.2);
01342         fVZStpPlnHits.push_back(tMPlnStp);
01343         fVZLinearHitsT.push_back(tMLinearT);
01344         fVZLinearHitsL.push_back(tMLinearL);
01345       }
01346     }
01347   }
01348 }

void CamEvd::MakeXYHits ( const AtmosEvent event  )  [private]

Definition at line 1111 of file CamEvd.cxx.

References C45, ChargeToColor(), AtmosShieldPlank::ClearFibre, MuELoss::e, AtmosTrack::EndDirCosX, AtmosTrack::EndDirCosY, AtmosTrack::EndDirCosZ, AtmosTrack::EndPlane, AtmosTrack::EndTime, AtmosTrack::EndX, AtmosTrack::EndY, AtmosTrack::EndZ, fClearFibreN, fWlsFibreN, fXYHits, AtmosStrip::L, AtmosShieldPlank::QPE, AtmosStrip::QPEcorr, SoL, AtmosEvent::StripList, AtmosStrip::T, AtmosShieldPlank::Tcal, AtmosStrip::View, AtmosTrack::VtxDirCosX, AtmosTrack::VtxDirCosY, AtmosTrack::VtxDirCosZ, AtmosShower::VtxPlane, AtmosTrack::VtxPlane, AtmosShower::VtxTime, AtmosTrack::VtxTime, AtmosShower::VtxX, AtmosTrack::VtxX, AtmosShower::VtxY, AtmosTrack::VtxY, AtmosShower::VtxZ, AtmosTrack::VtxZ, AtmosShieldPlank::WlsPigtail, AtmosShieldPlank::X, AtmosShieldPlank::Y, MinosMaterial::Z(), and AtmosShieldPlank::Z.

Referenced by FillEvent().

01111                                                {
01112 
01113   for (int i=0; i<(int)event->StripList->GetEntries(); i++) {
01114     const AtmosStrip* strip =
01115       dynamic_cast<const AtmosStrip*>(event->StripList->At(i));
01116     assert(strip);
01117 
01118     double U = (strip->View == 0) ? strip->T : strip->L;
01119     double V = (strip->View == 1) ? strip->T : strip->L;
01120 
01121     TMarker tmp(C45*(U-V), C45*(U+V), 20);
01122     tmp.SetMarkerSize(0.7);
01123 
01124     tmp.SetMarkerColor(ChargeToColor((strip->QPEcorr[1]+strip->QPEcorr[0])));
01125     fXYHits.push_back(tmp);
01126   }
01127 
01128 
01129   int topplane(-999);
01130   float toptime(0.0);
01131   float topX(0.0),topY(0.0),topZ(-999.9),topZ2(-999.9);
01132   double dircosX(0),dircosY(0),dircosZ(0);
01133 
01134   double dTcorr[2];
01135 
01136   const AtmosTrack* track =
01137     dynamic_cast<const AtmosTrack*>(event->TrackList->At(0));
01138 
01139   const AtmosShower* shower =
01140     dynamic_cast<const AtmosShower*>(event->ShowerList->At(0));
01141 
01142   if ( track ) {
01143     if( track->VtxY<track->EndY ) { 
01144       toptime = track->EndTime;
01145       topplane = track->EndPlane;
01146       topX = track->EndX; 
01147       topY = track->EndY; 
01148       topZ = track->EndZ;; 
01149       dircosX = -track->EndDirCosX; 
01150       dircosY = -track->EndDirCosY; 
01151       dircosZ = -track->EndDirCosZ;
01152     }
01153     else { 
01154       toptime = track->VtxTime; 
01155       topplane = track->VtxPlane;
01156       topX = track->VtxX; 
01157       topY = track->VtxY; 
01158       topZ = track->VtxZ; 
01159       dircosX = track->VtxDirCosX; 
01160       dircosY = track->VtxDirCosY; 
01161       dircosZ = track->VtxDirCosZ;
01162     }
01163   }
01164   else if( shower ) {
01165     toptime = shower->VtxTime; 
01166     topplane = shower->VtxPlane;
01167     topX = shower->VtxX; 
01168     topY = shower->VtxY; 
01169     topZ = shower->VtxZ; 
01170   }
01171 
01172   bool PlankInTime,PlankInTime0;
01173   bool HighestEndBelowShieldSection;
01174   double TravelTimeShield2Vertex;
01175 
01176   for (int i=0; i<event->NShieldPlanks; ++i) {
01177     const AtmosShieldPlank* plank =
01178       dynamic_cast<const AtmosShieldPlank*>(event->ShieldPlankList->At(i));
01179     if(!plank) break;
01180 
01181     PlankInTime0 = 0;
01182     PlankInTime = 0;
01183     HighestEndBelowShieldSection = 0;
01184 
01185     dTcorr[0] = plank->Tcal[0];
01186     dTcorr[1] = plank->Tcal[1];
01187 
01188     if( track || shower ){
01189 
01190       if( topZ<plank->Z[0]+0.5 && topZ>plank->Z[1]-0.5 ){
01191         HighestEndBelowShieldSection = 1;
01192       }
01193 
01194       if( !HighestEndBelowShieldSection && plank->Y>topY-0.1 ){
01195         if( ( topplane>228 && topplane<249 
01196            && topZ<plank->Z[0]+0.5 && topZ>plank->Z[1]-2.5 ) 
01197          || ( topplane>249 && topplane<270 
01198            && topZ<plank->Z[0]+2.5 && topZ>plank->Z[1]-0.5 ) ){
01199           HighestEndBelowShieldSection = 1;
01200         }
01201       }
01202   
01203       if( !HighestEndBelowShieldSection && plank->Y>topY-0.1 && track ){
01204         if( ( topplane>228 && topplane<249 && dircosZ<0.0 ) 
01205          || ( topplane>249 && topplane<270 && dircosZ>0.0 ) ){
01206           if( dircosY!=0 ){
01207             topZ2 = topZ + (dircosZ/dircosY)*(plank->Y-topY);
01208             if( topZ2<plank->Z[0]+0.5 && topZ2>plank->Z[1]-0.5 ){
01209               HighestEndBelowShieldSection = 1;
01210             }
01211           }
01212         }
01213       }
01214 
01215       TravelTimeShield2Vertex = ( 1.0/SoL )*pow( (plank->X - topX)*(plank->X - topX) + (plank->Y - topY)*(plank->Y - topY), 0.5);
01216 
01217       dTcorr[0] = plank->Tcal[0] - ( fWlsFibreN/SoL )*( plank->WlsPigtail[0] + (plank->Z[0] - topZ) ) - ( fClearFibreN/SoL )*( plank->ClearFibre[0] ) + 26.e-9 + TravelTimeShield2Vertex - toptime;
01218 
01219       dTcorr[1] = plank->Tcal[1] - ( fWlsFibreN/SoL )*( plank->WlsPigtail[1] - (plank->Z[1] - topZ) ) - ( fClearFibreN/SoL )*( plank->ClearFibre[1] ) + 26.e-9 + TravelTimeShield2Vertex - toptime;
01220 
01221     }
01222 
01223     if( ( fabs(dTcorr[0])<10000e-9 && plank->QPE[0]>0.0 ) 
01224      || ( fabs(dTcorr[1])<10000e-9 && plank->QPE[1]>0.0 ) ) PlankInTime0 = 1;
01225 
01226     if( ( fabs(dTcorr[0])<100e-9 && plank->QPE[0]>0.0 )
01227      || ( fabs(dTcorr[1])<100e-9 && plank->QPE[1]>0.0 ) ) PlankInTime = 1;
01228     
01229     if( PlankInTime0 ){
01230       TMarker tmp(plank->X, plank->Y, 24);
01231       if( PlankInTime ) tmp.SetMarkerStyle(20);
01232 
01233       if( HighestEndBelowShieldSection ) tmp.SetMarkerColor(2);
01234       else tmp.SetMarkerColor(1);
01235       tmp.SetMarkerSize(0.7);
01236     
01237       fXYHits.push_back(tmp);
01238     }
01239   }
01240 
01241 }

double CamEvd::MCTimeWin (  )  [inline]

Definition at line 210 of file CamEvd.h.

References fMCTimeWin.

Referenced by SetNumericOptions().

00210 {return fMCTimeWin;}

void CamEvd::MCTimeWin ( double  D  )  [inline]

Definition at line 209 of file CamEvd.h.

References fMCTimeWin.

00209 {fMCTimeWin = D;}

void CamEvd::PlaneSlider (  ) 

Definition at line 2316 of file CamEvd.cxx.

References cgPlaneRange, and SetPlaneRangeUser().

02316                          {
02317   int MinPlane = (int)cgPlaneRange->GetMinPosition();
02318   int MaxPlane = (int)cgPlaneRange->GetMaxPosition();
02319   SetPlaneRangeUser(MinPlane, MaxPlane);
02320 }

void CamEvd::Reset (  )  [virtual]

Reimplemented from CamAna.

Definition at line 1084 of file CamEvd.cxx.

References cMainView, fMaxPlane, fMaxT, fMaxU, fMaxUStrip, fMaxV, fMaxVStrip, fMaxZ, fMinPlane, fMinT, fMinU, fMinUStrip, fMinV, fMinVStrip, fMinZ, fTZHits, fUZLinearHitsL, fUZLinearHitsT, fUZStpPlnHits, fUZStpPlnLines, fVZLinearHitsL, fVZLinearHitsT, fVZStpPlnHits, fVZStpPlnLines, fXYHits, and fXYLines.

Referenced by FillEvent().

01084                    {
01085   //Fix the min and max values to opposite ranges
01086   fMinUStrip = 191; fMaxUStrip = 0;
01087   fMinVStrip = 191; fMaxVStrip = 0;
01088   fMinPlane = 485; fMaxPlane = 1;
01089   fMinU = 4.0; fMaxU = -4.0;
01090   fMinV = 4.0; fMaxV = -4.0;
01091   fMinZ = 30.0; fMaxZ = 0.;
01092   fMinT = 99e99; fMaxT = 0.;
01093 
01094   //Clear the hit and line vectors
01095   fTZHits.clear();
01096   fUZStpPlnHits.clear();
01097   fUZLinearHitsT.clear();
01098   fUZLinearHitsL.clear();
01099   fUZStpPlnLines.clear();
01100   fVZStpPlnHits.clear();
01101   fVZLinearHitsT.clear();
01102   fVZLinearHitsL.clear();
01103   fVZStpPlnLines.clear();
01104   fXYHits.clear();
01105   fXYLines.clear();
01106 
01107   cMainView->Clear();
01108   cMainView->Divide(3,2);
01109 }

void CamEvd::SetNumericOptions (  ) 

Definition at line 2181 of file CamEvd.cxx.

References cgClearFibreN, cgMCTimeWin, cgWlsFibreN, ClearFibreN(), MCTimeWin(), and WlsFibreN().

02181                                {
02182   MCTimeWin(cgMCTimeWin->GetNumber());
02183   WlsFibreN(cgWlsFibreN->GetNumber());
02184   ClearFibreN(cgClearFibreN->GetNumber());
02185 }

void CamEvd::SetPlaneRangeUser ( int  MinPlane = 0,
int  MaxPlane = 0 
)

Definition at line 2187 of file CamEvd.cxx.

References cgPlaneRange, DataZFromPlane, fActiveCanvas, fIsMC, fMaxPlane, fMinPlane, hCorrPlaneCharge, hMCPlaneDE, hMCTZAxis, hRawPlaneCharge, hShwPlnCosZProfile, hShwPlnProfile, hTZAxis, hUZLinearAxis, hUZStpPlnAxis, hUZStpPlnShw, hVZLinearAxis, hVZStpPlnAxis, hVZStpPlnShw, Msg::kSynopsis, MCZFromPlane, MSG, UtilMisc::RangeIt(), UtilMisc::Trade(), and UtilCanvas::UpdatePad().

Referenced by PlaneSlider(), and UnZoom().

02187                                                          {
02188   MSG("FarDetEvent",Msg::kSynopsis) << "CamEvd::SetPlaneRangeUser()" << endl;
02189 
02190   if(MinPlane == 0) MinPlane = fMinPlane;
02191   if(MaxPlane == 0) MaxPlane = fMaxPlane;
02192 
02193   //Fix a few potential range troubles
02194   if(MinPlane > MaxPlane) UtilMisc::Trade(&MinPlane, &MaxPlane);
02195   UtilMisc::RangeIt(&MinPlane, 1, 485);
02196   UtilMisc::RangeIt(&MaxPlane, 1, 485);
02197   if (MinPlane == MaxPlane) {
02198     if(MinPlane > 2) MinPlane -= 2;
02199     if(MaxPlane < 484) MaxPlane += 2;
02200   }
02201 
02202   MSG("FarDetEvent",Msg::kSynopsis) << "Plane Range = " << MinPlane << " / " << MaxPlane << endl;
02203 
02204   //Set all of the axis Z and Plane ranges
02205   hUZStpPlnAxis->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02206   hVZStpPlnAxis->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02207   hUZStpPlnShw->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02208   hVZStpPlnShw->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02209   hShwPlnProfile->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02210   hShwPlnCosZProfile->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02211   hTZAxis->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02212   hRawPlaneCharge->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02213   hCorrPlaneCharge->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02214   hMCPlaneDE->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02215   hMCTZAxis->GetXaxis()->SetRangeUser(MinPlane-2, MaxPlane+2);
02216 
02217   cgPlaneRange->SetPosition((float)MinPlane, (float)MaxPlane);
02218 
02219   //Set the fMinZ and fMaxZ based on Plane Range
02220   double MinZ, MaxZ;
02221   if (fIsMC) {
02222     MinZ = MCZFromPlane(MinPlane);
02223     MaxZ = MCZFromPlane(MaxPlane);
02224   }
02225   else {
02226     MinZ = DataZFromPlane(MinPlane);
02227     MaxZ = DataZFromPlane(MaxPlane);
02228   }
02229 
02230   hUZLinearAxis->GetXaxis()->SetRangeUser(MinZ-0.1, MaxZ+0.1);
02231   hVZLinearAxis->GetXaxis()->SetRangeUser(MinZ-0.1, MaxZ+0.1);
02232 
02233   UtilCanvas::UpdatePad(fActiveCanvas);
02234 }

void CamEvd::SetStyle (  )  [private]

Definition at line 2100 of file CamEvd.cxx.

02100                       {
02101   gStyle->SetOptStat(0);
02102   gStyle->SetPalette(1);
02103   gStyle->SetCanvasColor(10);
02104   gStyle->SetPadColor(10);
02105   gStyle->SetStatColor(1);
02106   gStyle->SetTitleColor(1);
02107   gStyle->SetOptFit();
02108   gStyle->SetFillColor(10);
02109   gStyle->SetFrameLineWidth(2);
02110   gStyle->SetHistLineWidth(2);
02111   gStyle->SetLabelFont(12, "X");
02112   gStyle->SetLabelFont(12, "Y");
02113   gStyle->SetTitleFont(12, "X");
02114   gStyle->SetTitleFont(12, "Y");
02115   gStyle->SetTitleFont(12, "H");
02116   gStyle->SetTitleBorderSize(0);
02117   gStyle->SetTitleFillColor(10);
02118   gStyle->SetPadBottomMargin(1.2);
02119   gStyle->SetPadLeftMargin(1.2);
02120 
02121   gStyle->SetStatBorderSize(0);
02122   gStyle->SetStatFont(40);
02123   gStyle->SetStatX(0.88);
02124   gStyle->SetStatY(0.875);
02125 }

void CamEvd::SetTimeRangeUser ( double  MinT = -1.0,
double  MaxT = -1.0 
)

Definition at line 2304 of file CamEvd.cxx.

References fMaxT, fMinT, hMCTZAxis, hTZAxis, Msg::kSynopsis, MSG, and UtilMisc::Trade().

Referenced by UnZoom().

02304                                                       {
02305   if(MinT == -1.0) MinT = fMinT;
02306   if(MaxT == -1.0) MaxT = fMaxT;
02307 
02308   if(fMinT>fMaxT) UtilMisc::Trade(&MinT, &MaxT);
02309 
02310   MSG("FarDetEvent",Msg::kSynopsis) << "T Range = " << MinT << " / " << MaxT << endl;
02311 
02312   hTZAxis->GetYaxis()->SetRangeUser(0, MaxT * 1.05);
02313   hMCTZAxis->GetYaxis()->SetRangeUser(0, MaxT * 1.05);
02314 }

void CamEvd::SetUStripRangeUser ( int  MinStrip = -1,
int  MaxStrip = -1 
)

Definition at line 2236 of file CamEvd.cxx.

References cgUStripRange, DataTFromStrip, fActiveCanvas, fIsMC, fMaxUStrip, fMinUStrip, hUZLinearAxis, hUZStpPlnAxis, hUZStpPlnShw, Msg::kSynopsis, MCTFromStrip, MSG, UtilMisc::RangeIt(), UtilMisc::Trade(), and UtilCanvas::UpdatePad().

Referenced by UnZoom(), and UStripSlider().

02236                                                           {
02237   if(MinStrip == -1 ) MinStrip = fMinUStrip;
02238   if(MaxStrip == -1 ) MaxStrip = fMaxUStrip;
02239 
02240   //Fix a few potential range troubles
02241   if(MinStrip > MaxStrip) UtilMisc::Trade(&MinStrip, &MaxStrip);
02242   UtilMisc::RangeIt(&MinStrip, 0, 191);
02243   UtilMisc::RangeIt(&MaxStrip, 0, 191);
02244   if (MinStrip == MaxStrip) {
02245     if(MinStrip > 1) MinStrip -= 2;
02246     if(MaxStrip < 190) MaxStrip += 2;
02247   }
02248 
02249   MSG("FarDetEvent",Msg::kSynopsis) << "U Range = " << MinStrip << " / " << MaxStrip << endl;
02250 
02251   hUZStpPlnAxis->GetYaxis()->SetRangeUser(MinStrip-2, MaxStrip+2);
02252   hUZStpPlnShw->GetYaxis()->SetRangeUser(MinStrip-2, MaxStrip+2);
02253 
02254   cgUStripRange->SetPosition((float)MinStrip, (float)MaxStrip);
02255 
02256   double MinLin, MaxLin;
02257   if (fIsMC) {
02258     MinLin = MCTFromStrip(MinStrip);
02259     MaxLin = MCTFromStrip(MaxStrip);
02260   }
02261   else {
02262     MinLin = DataTFromStrip(MinStrip);
02263     MaxLin = DataTFromStrip(MaxStrip);
02264   }
02265 
02266   hUZLinearAxis->GetYaxis()->SetRangeUser(MinLin-0.1, MaxLin+0.1);
02267   UtilCanvas::UpdatePad(fActiveCanvas);
02268 }

void CamEvd::SetVStripRangeUser ( int  MinStrip = -1,
int  MaxStrip = -1 
)

Definition at line 2270 of file CamEvd.cxx.

References cgVStripRange, DataTFromStrip, fActiveCanvas, fIsMC, fMaxVStrip, fMinVStrip, hVZLinearAxis, hVZStpPlnAxis, hVZStpPlnShw, Msg::kSynopsis, MCTFromStrip, MSG, UtilMisc::RangeIt(), UtilMisc::Trade(), and UtilCanvas::UpdatePad().

Referenced by UnZoom(), and VStripSlider().

02270                                                           {
02271   if(MinStrip == -1 ) MinStrip = fMinVStrip;
02272   if(MaxStrip == -1 ) MaxStrip = fMaxVStrip;
02273 
02274   //Fix a few potential range troubles
02275   if(MinStrip > MaxStrip) UtilMisc::Trade(&MinStrip, &MaxStrip);
02276   UtilMisc::RangeIt(&MinStrip, 0, 191);
02277   UtilMisc::RangeIt(&MaxStrip, 0, 191);
02278   if (MinStrip == MaxStrip) {
02279     if(MinStrip > 1) MinStrip -= 2;
02280     if(MaxStrip < 190) MaxStrip += 2;
02281   }
02282 
02283   MSG("FarDetEvent",Msg::kSynopsis) << "V Range = " << MinStrip << " / " << MaxStrip << endl;
02284 
02285   hVZStpPlnAxis->GetYaxis()->SetRangeUser(MinStrip-2, MaxStrip+2);
02286   hVZStpPlnShw->GetYaxis()->SetRangeUser(MinStrip-2, MaxStrip+2);
02287 
02288   cgVStripRange->SetPosition((float)MinStrip, (float)MaxStrip);
02289 
02290   double MinLin, MaxLin;
02291   if (fIsMC) {
02292     MinLin = MCTFromStrip(MinStrip);
02293     MaxLin = MCTFromStrip(MaxStrip);
02294   }
02295   else {
02296     MinLin = DataTFromStrip(MinStrip);
02297     MaxLin = DataTFromStrip(MaxStrip);
02298   }
02299 
02300   hVZLinearAxis->GetYaxis()->SetRangeUser(MinLin-0.1, MaxLin+0.1);
02301   UtilCanvas::UpdatePad(fActiveCanvas);
02302 }

void CamEvd::TabUp ( bool  up  ) 

Definition at line 2139 of file CamEvd.cxx.

References cgTab.

02139                           {
02140   if(up) cgTab->SetTab(cgTab->GetCurrent() + 1);
02141   else cgTab->SetTab(cgTab->GetCurrent() - 1);
02142 }

void CamEvd::UnZoom (  ) 

Definition at line 2334 of file CamEvd.cxx.

References Msg::kSynopsis, MSG, SetPlaneRangeUser(), SetTimeRangeUser(), SetUStripRangeUser(), and SetVStripRangeUser().

Referenced by FillEvent().

02334                     {
02335   MSG("FarDetEvent",Msg::kSynopsis) << "CamEvd::UnZoom" << endl;
02336   SetPlaneRangeUser();
02337   SetUStripRangeUser();
02338   SetVStripRangeUser();
02339   SetTimeRangeUser();
02340 }

void CamEvd::UStripSlider (  ) 

Definition at line 2322 of file CamEvd.cxx.

References cgUStripRange, and SetUStripRangeUser().

02322                           {
02323   int MinStrip = (int)cgUStripRange->GetMinPosition();
02324   int MaxStrip = (int)cgUStripRange->GetMaxPosition();
02325   SetUStripRangeUser(MinStrip, MaxStrip);
02326 }

void CamEvd::VStripSlider (  ) 

Definition at line 2328 of file CamEvd.cxx.

References cgVStripRange, and SetVStripRangeUser().

02328                           {
02329   int MinStrip = (int)cgVStripRange->GetMinPosition();
02330   int MaxStrip = (int)cgVStripRange->GetMaxPosition();
02331   SetVStripRangeUser(MinStrip, MaxStrip);
02332 }

double CamEvd::WlsFibreN (  )  [inline]

Definition at line 212 of file CamEvd.h.

References fWlsFibreN.

Referenced by SetNumericOptions().

00212 {return fWlsFibreN;}

void CamEvd::WlsFibreN ( double  D  )  [inline]

Definition at line 211 of file CamEvd.h.

References fWlsFibreN.

00211 {fWlsFibreN = D;}


Member Data Documentation

std::vector<TCanvas*> CamEvd::AllCanvases [private]

Definition at line 106 of file CamEvd.h.

Referenced by DoPrint(), DoTab(), and MakeCanvases().

TGNumberEntry * CamEvd::cgClearFibreN [private]

Definition at line 123 of file CamEvd.h.

Referenced by MakeCanvases(), and SetNumericOptions().

TGNumberEntry* CamEvd::cgMCTimeWin [private]

Definition at line 120 of file CamEvd.h.

Referenced by MakeCanvases(), and SetNumericOptions().

TGDoubleHSlider* CamEvd::cgPlaneRange [private]

Definition at line 166 of file CamEvd.h.

Referenced by MakeCanvases(), PlaneSlider(), and SetPlaneRangeUser().

TGTab* CamEvd::cgTab [private]

Definition at line 105 of file CamEvd.h.

Referenced by MakeCanvases(), and TabUp().

TGDoubleVSlider* CamEvd::cgUStripRange [private]

Definition at line 167 of file CamEvd.h.

Referenced by MakeCanvases(), SetUStripRangeUser(), and UStripSlider().

TGDoubleVSlider * CamEvd::cgVStripRange [private]

Definition at line 167 of file CamEvd.h.

Referenced by MakeCanvases(), SetVStripRangeUser(), and VStripSlider().

TGNumberEntry* CamEvd::cgWlsFibreN [private]

Definition at line 123 of file CamEvd.h.

Referenced by MakeCanvases(), and SetNumericOptions().

TCanvas* CamEvd::cLIView [private]

Definition at line 112 of file CamEvd.h.

Referenced by FillEvent(), and MakeCanvases().

TCanvas* CamEvd::cMainView [private]

Definition at line 108 of file CamEvd.h.

Referenced by FillEvent(), MakeCanvases(), and Reset().

TCanvas* CamEvd::cMCMainView [private]

Definition at line 114 of file CamEvd.h.

Referenced by MakeCanvases(), and MakeMCPlot().

TCanvas* CamEvd::cMCSideView [private]

Definition at line 115 of file CamEvd.h.

Referenced by MakeCanvases(), and MakeMCPlot().

TCanvas* CamEvd::cMCTrkIdView [private]

Definition at line 117 of file CamEvd.h.

Referenced by MakeCanvases(), and MakeMCPlot().

TCanvas* CamEvd::cShieldView [private]

Definition at line 110 of file CamEvd.h.

Referenced by MakeCanvases(), and MakeShieldPlot().

TCanvas* CamEvd::cShowerView [private]

Definition at line 111 of file CamEvd.h.

Referenced by MakeCanvases(), and MakeShowerPlot().

TCanvas* CamEvd::cSideView [private]

Definition at line 109 of file CamEvd.h.

Referenced by FillEvent(), and MakeCanvases().

TCanvas* CamEvd::cTimingView [private]

Definition at line 113 of file CamEvd.h.

TCanvas* CamEvd::fActiveCanvas [private]

Definition at line 159 of file CamEvd.h.

Referenced by CamEvd().

TChain* CamEvd::FakeShieldDataChain [private]

Definition at line 158 of file CamEvd.h.

Referenced by CamEvd().

bool CamEvd::fAutoPrint [private]

Definition at line 88 of file CamEvd.h.

Referenced by AutoPrint(), CamEvd(), FillEvent(), and MakeCanvases().

double CamEvd::fClearFibreN [private]

Definition at line 124 of file CamEvd.h.

Referenced by CamEvd(), ClearFibreN(), MakeCanvases(), MakeShieldPlot(), MakeTimingPlot(), and MakeXYHits().

std::vector<TMarker> CamEvd::fColorScale [private]

Definition at line 193 of file CamEvd.h.

bool CamEvd::fDoShieldPlot [private]

Definition at line 99 of file CamEvd.h.

Referenced by CamEvd(), DoShieldPlot(), MakeCanvases(), and MakeShieldPlot().

bool CamEvd::fDoShowerPlot [private]

Definition at line 101 of file CamEvd.h.

Referenced by CamEvd(), DoShowerPlot(), MakeCanvases(), and MakeShowerPlot().

bool CamEvd::fDoTimeCorr1 [private]

Definition at line 127 of file CamEvd.h.

Referenced by CamEvd(), DoTimeCorr1(), MakeCanvases(), and MakeTimingPlot().

bool CamEvd::fDoTimeCorr2 [private]

Definition at line 127 of file CamEvd.h.

Referenced by CamEvd(), DoTimeCorr2(), MakeCanvases(), and MakeTimingPlot().

bool CamEvd::fFakeShieldData [private]

Definition at line 160 of file CamEvd.h.

Referenced by CamEvd(), FakeShieldData(), and MakeCanvases().

bool CamEvd::fIsMC [private]

Definition at line 81 of file CamEvd.h.

Referenced by FillEvent(), SetPlaneRangeUser(), SetUStripRangeUser(), and SetVStripRangeUser().

std::vector<TMarker> CamEvd::fKeySpots [private]

Definition at line 191 of file CamEvd.h.

Referenced by FillEvent().

bool CamEvd::fMakeEPS [private]

Definition at line 85 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), MakeCanvases(), and MakeEPS().

bool CamEvd::fMakeGIF [private]

Definition at line 86 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), MakeCanvases(), and MakeGIF().

bool CamEvd::fMakeMCTrkIdView [private]

Definition at line 116 of file CamEvd.h.

Referenced by CamEvd(), MakeCanvases(), and MakeMCPlot().

bool CamEvd::fMakePS [private]

Definition at line 84 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), MakeCanvases(), and MakePS().

bool CamEvd::fMakeROOT [private]

Definition at line 87 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), MakeCanvases(), and MakeROOT().

int CamEvd::fMaxPlane [private]

Definition at line 169 of file CamEvd.h.

Referenced by CamEvd(), FillEvent(), MakeMCPlot(), MakeUVHits(), Reset(), and SetPlaneRangeUser().

double CamEvd::fMaxT [private]

Definition at line 172 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeTimingPlot(), Reset(), and SetTimeRangeUser().

double CamEvd::fMaxU [private]

Definition at line 171 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeUVHits(), and Reset().

int CamEvd::fMaxUStrip [private]

Definition at line 169 of file CamEvd.h.

Referenced by CamEvd(), MakeMCPlot(), MakeUVHits(), Reset(), and SetUStripRangeUser().

double CamEvd::fMaxV [private]

Definition at line 171 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeUVHits(), and Reset().

int CamEvd::fMaxVStrip [private]

Definition at line 169 of file CamEvd.h.

Referenced by CamEvd(), MakeMCPlot(), MakeUVHits(), Reset(), and SetVStripRangeUser().

double CamEvd::fMaxZ [private]

Definition at line 171 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

double CamEvd::fMCTimeWin [private]

Definition at line 121 of file CamEvd.h.

Referenced by CamEvd(), MakeCanvases(), MakeMCPlot(), and MCTimeWin().

double CamEvd::fMeanDEHitDT [private]

Definition at line 128 of file CamEvd.h.

Referenced by CamEvd(), and MakeTimingPlot().

int CamEvd::fMinPlane [private]

Definition at line 168 of file CamEvd.h.

Referenced by CamEvd(), FillEvent(), MakeMCPlot(), MakeUVHits(), Reset(), and SetPlaneRangeUser().

double CamEvd::fMinT [private]

Definition at line 172 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeTimingPlot(), Reset(), and SetTimeRangeUser().

double CamEvd::fMinU [private]

Definition at line 170 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeUVHits(), and Reset().

int CamEvd::fMinUStrip [private]

Definition at line 168 of file CamEvd.h.

Referenced by CamEvd(), MakeMCPlot(), MakeUVHits(), Reset(), and SetUStripRangeUser().

double CamEvd::fMinV [private]

Definition at line 170 of file CamEvd.h.

Referenced by MakeMCPlot(), MakeUVHits(), and Reset().

int CamEvd::fMinVStrip [private]

Definition at line 168 of file CamEvd.h.

Referenced by CamEvd(), MakeMCPlot(), MakeUVHits(), Reset(), and SetVStripRangeUser().

double CamEvd::fMinZ [private]

Definition at line 170 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

double CamEvd::fRMSDEHitDT [private]

Definition at line 128 of file CamEvd.h.

Referenced by CamEvd(), and MakeTimingPlot().

int CamEvd::fRun [private]

Definition at line 80 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), and FillEvent().

int CamEvd::fSnarl [private]

Definition at line 80 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), and FillEvent().

int CamEvd::fSubRun [private]

Definition at line 80 of file CamEvd.h.

Referenced by CamEvd(), DoPrint(), and FillEvent().

std::vector<TMarker> CamEvd::fTZHits [private]

Definition at line 187 of file CamEvd.h.

Referenced by FillEvent(), MakeTimingPlot(), and Reset().

std::vector<TMarker> CamEvd::fUZLinearHitsL [private]

Definition at line 177 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TMarker> CamEvd::fUZLinearHitsT [private]

Definition at line 176 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TLine> CamEvd::fUZLinearLinesL [private]

Definition at line 180 of file CamEvd.h.

Referenced by FillEvent().

std::vector<TLine> CamEvd::fUZLinearLinesT [private]

Definition at line 179 of file CamEvd.h.

Referenced by FillEvent().

std::vector<TMarker> CamEvd::fUZStpPlnHits [private]

Definition at line 175 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TLine> CamEvd::fUZStpPlnLines [private]

Definition at line 178 of file CamEvd.h.

Referenced by FillEvent(), and Reset().

std::vector<TMarker> CamEvd::fVZLinearHitsL [private]

Definition at line 183 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TMarker> CamEvd::fVZLinearHitsT [private]

Definition at line 182 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TLine> CamEvd::fVZLinearLinesL [private]

Definition at line 186 of file CamEvd.h.

Referenced by FillEvent().

std::vector<TLine> CamEvd::fVZLinearLinesT [private]

Definition at line 185 of file CamEvd.h.

Referenced by FillEvent().

std::vector<TMarker> CamEvd::fVZStpPlnHits [private]

Definition at line 181 of file CamEvd.h.

Referenced by FillEvent(), MakeUVHits(), and Reset().

std::vector<TLine> CamEvd::fVZStpPlnLines [private]

Definition at line 184 of file CamEvd.h.

Referenced by FillEvent(), and Reset().

double CamEvd::fWlsFibreN [private]

Definition at line 124 of file CamEvd.h.

Referenced by CamEvd(), MakeCanvases(), MakeShieldPlot(), MakeTimingPlot(), MakeXYHits(), and WlsFibreN().

std::vector<TMarker> CamEvd::fXYHits [private]

Definition at line 189 of file CamEvd.h.

Referenced by FillEvent(), MakeXYHits(), and Reset().

std::vector<TLine> CamEvd::fXYLines [private]

Definition at line 190 of file CamEvd.h.

Referenced by FillEvent(), and Reset().

TH1F* CamEvd::hCorrPlaneCharge [private]

Definition at line 141 of file CamEvd.h.

Referenced by FillEvent(), MakeChargePlot(), MakeHistos(), and SetPlaneRangeUser().

TH1F* CamEvd::hMCPlaneDE [private]

Definition at line 142 of file CamEvd.h.

Referenced by MakeHistos(), MakeMCPlot(), and SetPlaneRangeUser().

TH2F* CamEvd::hMCTZAxis [private]

Definition at line 136 of file CamEvd.h.

Referenced by MakeHistos(), MakeMCPlot(), SetPlaneRangeUser(), and SetTimeRangeUser().

TH2F* CamEvd::hPulserLedCharge [private]

Definition at line 143 of file CamEvd.h.

Referenced by FillEvent(), MakeChargePlot(), and MakeHistos().

TH1F* CamEvd::hRawPlaneCharge [private]

Definition at line 140 of file CamEvd.h.

Referenced by FillEvent(), MakeChargePlot(), MakeHistos(), and SetPlaneRangeUser().

Definition at line 151 of file CamEvd.h.

Referenced by MakeHistos(), MakeShowerPlot(), and SetPlaneRangeUser().

TH1* CamEvd::hShwPlnProfile [private]

Definition at line 150 of file CamEvd.h.

Referenced by MakeHistos(), MakeShowerPlot(), and SetPlaneRangeUser().

TH1F* CamEvd::hShwVeto[4] [private]

Definition at line 155 of file CamEvd.h.

Referenced by MakeHistos(), and MakeShieldPlot().

TH1F* CamEvd::hTiming [private]

Definition at line 163 of file CamEvd.h.

Referenced by MakeHistos().

TH1F* CamEvd::hTrkVeto[4] [private]

Definition at line 154 of file CamEvd.h.

Referenced by MakeHistos(), and MakeShieldPlot().

TH2F* CamEvd::hTZAxis [private]

Definition at line 137 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), SetPlaneRangeUser(), and SetTimeRangeUser().

TH2F* CamEvd::hUZLinearAxis [private]

Definition at line 132 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), MakeMCPlot(), SetPlaneRangeUser(), and SetUStripRangeUser().

TH2F* CamEvd::hUZStpPlnAxis [private]

Definition at line 131 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), MakeMCPlot(), SetPlaneRangeUser(), and SetUStripRangeUser().

TH2F* CamEvd::hUZStpPlnShw [private]

Definition at line 146 of file CamEvd.h.

Referenced by MakeHistos(), MakeShowerPlot(), SetPlaneRangeUser(), and SetUStripRangeUser().

TH2F* CamEvd::hVZLinearAxis [private]

Definition at line 134 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), MakeMCPlot(), SetPlaneRangeUser(), and SetVStripRangeUser().

TH2F* CamEvd::hVZStpPlnAxis [private]

Definition at line 133 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), MakeMCPlot(), SetPlaneRangeUser(), and SetVStripRangeUser().

TH2F* CamEvd::hVZStpPlnShw [private]

Definition at line 147 of file CamEvd.h.

Referenced by MakeHistos(), MakeShowerPlot(), SetPlaneRangeUser(), and SetVStripRangeUser().

TH2F* CamEvd::hXYAxis [private]

Definition at line 135 of file CamEvd.h.

Referenced by FillEvent(), MakeHistos(), MakeMCPlot(), and MakeShieldPlot().


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1