ScanFrameNC Class Reference

#include <ScanFrameNC.h>

Inheritance diagram for ScanFrameNC:
ScanFrame

List of all members.

Public Member Functions

 ScanFrameNC (const TGWindow *p)
virtual ~ScanFrameNC ()
void ResetDisplay (std::string mode="")
void ResetDisplay_noPH ()
virtual void Pass (const std::string attribute)
virtual void PassInt (const std::string attribute, Long_t value)
virtual void PassFloat (const std::string attribute, Double_t value)
virtual void BuildScanSheet ()
virtual void InitScanSheet ()
virtual void WriteScanSheet (std::ofstream &out)
void EventMissedProc (Long_t nmiss)
void EventMissedTrackProc ()
void EventFakeProc ()
void EventMissedTrackPlanesProc (Long_t v)
void SliceSplitEvtProc ()
void Slice2EvtProc ()
void SliceMergeEvtProc ()
void SlicePartialEvtProc ()
void SliceEvtMissedProc ()
void TrackMissedProc ()
void MissedTrackPlanesProc (Long_t v)
void TrackRangeProc (Long_t v)
void TrackCurvProc (Long_t v)
void TrackChargeBadProc ()
void BadVertexProc ()
void VtxUZTransOffsetProc (Long_t v)
void VtxVZTransOffsetProc (Long_t v)
void VtxUZLongOffsetProc (Long_t v)
void VtxVZLongOffsetProc (Long_t v)
void ShowerEnergyProc (Long_t v)

Private Member Functions

void DrawMissedEvents ()
void DrawEventFake ()
void DrawMissedEventsTracks ()
void DrawMissedEventsTracksPlanes ()
void DrawSliceEvtMissed ()
void DrawTrackMissed ()
void DrawMissedTrackPlanes ()
void DrawTrackRange ()
void DrawTrackCurv ()
void DrawTrackMerge ()
void DrawBadVertex ()
void DrawVtxUZTransOffset ()
void DrawVtxVZTransOffset ()
void DrawVtxUZLongOffset ()
void DrawVtxVZLongOffset ()
void DrawShowerEnergy ()
void SetSlice2Evt ()
void SetTrackContained (Int_t c)
void SetRange (Float_t s)
void SetCurv (Float_t s)
void SetShwE (Float_t s)
void SetMissedSliceEvt (Long_t m)
 ClassDef (ScanFrameNC, 1)

Private Attributes

TGNumberEntry * UPosVal
TGNumberEntry * VPosVal
 Transient, do not output.
TGNumberEntry * RadLabel
 Transient, do not output.
TGNumberEntry * EventsMissed
 Transient, do not output.
TGCheckButton * EventsMissedTrack
 Transient, do not output.
TGCheckButton * EventFake
 Transient, do not output.
TGNumberEntry * EventsMissedTrackPlanes
 Transient, do not output.
TGCheckButton * SliceEvtMissed
 Transient, do not output.
TGCheckButton * SliceSplitEvt
 Transient, do not output.
TGCheckButton * SliceMergeEvt
 Transient, do not output.
TGCheckButton * SlicePartialEvt
 Transient, do not output.
TGCheckButton * Slice2Evt
 Transient, do not output.
TGCheckButton * TrackMissed
 Transient, do not output.
TGNumberEntry * MissedTrackPlanes
 Transient, do not output.
TGNumberEntry * TrackRange
 Transient, do not output.
TGNumberEntry * TrackCurv
 Transient, do not output.
TGCheckButton * TrackChargeBad
 Transient, do not output.
TGCheckButton * TrackMerge
 Transient, do not output.
TGCheckButton * BadVertex
 Transient, do not output.
TGCheckButton * ShowerMissed
 Transient, do not output.
TGNumberEntry * VtxUZTransOffset
 Transient, do not output.
TGNumberEntry * VtxVZTransOffset
 Transient, do not output.
TGNumberEntry * VtxUZLongOffset
 Transient, do not output.
TGNumberEntry * VtxVZLongOffset
 Transient, do not output.
TGNumberEntry * ShowerEnergy
 Transient, do not output.
TGLabel * Label
 Transient, do not output.
TGHorizontalFrame * tframe
 Transient, do not output.
Long_t fEvtMissed
 Transient, do not output.
Long_t fEvtFake
Long_t fEvtMissedTrack
Long_t fEvtMissedTrackPlanes
Long_t fSliceEvtMissed
Long_t fSlice2Evt
Long_t fSliceSplitEvt
Long_t fSliceMergeEvt
Long_t fSlicePartialEvt
Long_t fTrackMissed
Long_t fMissedTrackPlanes
float fTrackRange
float fTrackCurv
Long_t fTrackContained
Long_t fTrackChargeBad
Long_t fVtxUZLongOffset
Long_t fVtxVZLongOffset
Long_t fVtxUZTransOffset
Long_t fVtxVZTransOffset
Long_t fBadVertex
float fShowerEnergy

Detailed Description

Definition at line 20 of file ScanFrameNC.h.


Constructor & Destructor Documentation

ScanFrameNC::ScanFrameNC ( const TGWindow *  p  ) 

Definition at line 12 of file ScanFrameNC.cxx.

00012                                           : ScanFrame(p,false) {
00013 
00014   // Note: Initialise both base and this sub-class state via the InitScanSheet() method.
00015   this->Init();
00016   // Draw the entire scan frame with the scan sheet embedded from this sub-class.
00017   this->BuildScanFrame(p);
00018 }

ScanFrameNC::~ScanFrameNC (  )  [virtual]

Definition at line 20 of file ScanFrameNC.cxx.

00020                           {
00021 }


Member Function Documentation

void ScanFrameNC::BadVertexProc (  ) 

Definition at line 330 of file ScanFrameNC.cxx.

References BadVertex, and fBadVertex.

00330                                {
00331  if(fBadVertex==0) {
00332     fBadVertex=1;
00333     BadVertex->SetOn(true);
00334   }
00335   else{
00336     fBadVertex=0;
00337     BadVertex->SetOn(false);
00338   }
00339 }

void ScanFrameNC::BuildScanSheet (  )  [virtual]

Reimplemented from ScanFrame.

Definition at line 23 of file ScanFrameNC.cxx.

References DrawBadVertex(), DrawEventFake(), DrawMissedEvents(), DrawMissedEventsTracks(), DrawMissedEventsTracksPlanes(), DrawMissedTrackPlanes(), DrawShowerEnergy(), DrawSliceEvtMissed(), DrawTrackCurv(), DrawTrackMissed(), DrawTrackRange(), DrawVtxUZLongOffset(), DrawVtxUZTransOffset(), DrawVtxVZLongOffset(), DrawVtxVZTransOffset(), and ScanFrame::fSframe.

00023                                  {
00024 
00025   DrawMissedEvents();
00026   DrawMissedEventsTracks();
00027   DrawMissedEventsTracksPlanes();
00028   TGHorizontal3DLine* Line3 = new TGHorizontal3DLine(fSframe,200,2);
00029   fSframe->AddFrame(Line3, new TGLayoutHints(kLHintsExpandX,1,1,1,1));
00030 
00031   DrawSliceEvtMissed();
00032   DrawEventFake();
00033 
00034   DrawTrackMissed();
00035   DrawMissedTrackPlanes();
00036   TGHorizontal3DLine* Line4 = new TGHorizontal3DLine(fSframe,200,2);
00037   fSframe->AddFrame(Line4, new TGLayoutHints(kLHintsExpandX,1,1,1,1));
00038 
00039   DrawTrackRange();
00040   DrawTrackCurv();
00041   DrawShowerEnergy();
00042   DrawBadVertex();
00043   DrawVtxUZTransOffset();
00044   DrawVtxVZTransOffset();
00045   DrawVtxUZLongOffset();
00046   DrawVtxVZLongOffset();
00047 
00048 } 

ScanFrameNC::ClassDef ( ScanFrameNC  ,
 
) [private]

Reimplemented from ScanFrame.

void ScanFrameNC::DrawBadVertex (  )  [private]

Definition at line 463 of file ScanFrameNC.cxx.

References BadVertex, ScanFrame::fSframe, and tframe.

Referenced by BuildScanSheet().

00463                                {  
00464   tframe = new TGHorizontalFrame(fSframe,400,10);
00465   BadVertex = new TGCheckButton(tframe," Bad Reco Vertex ");
00466   BadVertex->Connect("Clicked()","ScanFrameNC",this,"BadVertexProc()");
00467   tframe->AddFrame(BadVertex,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));  
00468   
00469   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00470 
00471 }

void ScanFrameNC::DrawEventFake (  )  [private]

Definition at line 413 of file ScanFrameNC.cxx.

References EventFake, ScanFrame::fSframe, and tframe.

Referenced by BuildScanSheet().

00413                                {  
00414   tframe = new TGHorizontalFrame(fSframe,400,10);
00415    EventFake = new TGCheckButton(tframe," Fake Event ");
00416    EventFake->Connect("Clicked()","ScanFrameNC",this,"EventFakeProc()");
00417   tframe->AddFrame(EventFake,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00418   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00419 }

void ScanFrameNC::DrawMissedEvents (  )  [private]

Definition at line 345 of file ScanFrameNC.cxx.

References EventsMissed, ScanFrame::fSframe, Label, and tframe.

Referenced by BuildScanSheet().

00345                                   {
00346   tframe = new TGHorizontalFrame(fSframe,400,10);
00347   Label = new TGLabel(tframe,"Events Missed By Slicer");
00348   EventsMissed = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00349   EventsMissed->Connect("ValueSet(Long_t)","ScanFrameNC",this,"EventMissedProc(Long_t)");
00350   tframe->AddFrame(EventsMissed,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00351   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00352   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsLeft,2,2,2,2)); 
00353 }

void ScanFrameNC::DrawMissedEventsTracks (  )  [private]

Definition at line 355 of file ScanFrameNC.cxx.

References EventsMissedTrack, ScanFrame::fSframe, Label, and tframe.

Referenced by BuildScanSheet().

00355                                         {
00356   tframe = new TGHorizontalFrame(fSframe,400,10);
00357   Label = new TGLabel(tframe,"");
00358   Label->SetText(" Missed Event Contains Track ");
00359   EventsMissedTrack = new TGCheckButton(tframe,"");
00360   EventsMissedTrack->Connect("Clicked()","ScanFrameNC",this,"EventMissedTrackProc()");
00361   tframe->AddFrame(EventsMissedTrack,new TGLayoutHints(kLHintsCenterX|kLHintsExpandY,2,2,2,2));
00362   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00363   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsCenterX ,2,2,2,2)); 
00364   EventsMissedTrack->SetEnabled(false);
00365   
00366 }

void ScanFrameNC::DrawMissedEventsTracksPlanes (  )  [private]

Definition at line 368 of file ScanFrameNC.cxx.

References EventsMissedTrackPlanes, ScanFrame::fSframe, Label, and tframe.

Referenced by BuildScanSheet().

00368                                               {
00369   tframe = new TGHorizontalFrame(fSframe,400,10);
00370   Label = new TGLabel(tframe,"");
00371   Label->SetText("# Planes in Missed Track ");
00372   EventsMissedTrackPlanes = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00373   EventsMissedTrackPlanes->Connect("ValueSet(Long_t)","ScanFrameNC",this,"EventMissedTrackPlanesProc(Long_t)");
00374   //(EventsMissedTrackPlanes->GetNumberEntry())->Connect("TextChanged()","ScanFrameNC",this,"EventMissedTrackPlanesProc(Long_t)");
00375   tframe->AddFrame(EventsMissedTrackPlanes,new TGLayoutHints(kLHintsCenterX|kLHintsExpandY,2,2,2,2));
00376   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00377   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsCenterX ,2,2,2,2)); 
00378   EventsMissedTrackPlanes->SetState(false);
00379 }

void ScanFrameNC::DrawMissedTrackPlanes (  )  [private]

Definition at line 421 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, MissedTrackPlanes, and tframe.

Referenced by BuildScanSheet().

00421                                        {  
00422   tframe = new TGHorizontalFrame(fSframe,400,10);
00423   Label = new TGLabel(tframe,"");
00424   Label->SetText("# Planes in Missed Event Track ");
00425   MissedTrackPlanes = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00426   MissedTrackPlanes->Connect("ValueSet(Long_t)","ScanFrameNC",this,"MissedTrackPlanesProc(Long_t)");
00427   tframe->AddFrame(MissedTrackPlanes,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00428   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00429   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsCenterX ,2,2,2,2)); 
00430   MissedTrackPlanes->SetState(false);
00431 }

void ScanFrameNC::DrawShowerEnergy (  )  [private]

Definition at line 525 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, ShowerEnergy, and tframe.

Referenced by BuildScanSheet().

00525                                   {  
00526    tframe = new TGHorizontalFrame(fSframe,400,10);
00527   Label = new TGLabel(tframe,"");
00528   Label->SetText("Shower Energy");
00529   ShowerEnergy = new TGNumberEntry(tframe,0,10,-1,TGNumberFormat::kNESReal);
00530   ShowerEnergy->Connect("ValueSet(Long_t)","ScanFrameNC",this,"ShowerEnergyProc(Long_t)");
00531   tframe->AddFrame(ShowerEnergy,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00532   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00533   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00534 }

void ScanFrameNC::DrawSliceEvtMissed (  )  [private]

Definition at line 381 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Slice2Evt, SliceEvtMissed, SliceMergeEvt, SlicePartialEvt, SliceSplitEvt, and tframe.

Referenced by BuildScanSheet().

00381                                     { 
00382   tframe = new TGHorizontalFrame(fSframe,400,10);
00383   SliceEvtMissed = new TGCheckButton(tframe," Missed Event In Slice ");
00384   SliceEvtMissed->Connect("Clicked()","ScanFrameNC",this,"SliceEvtMissedProc()");
00385   SliceSplitEvt = new TGCheckButton(tframe," Split Event ");
00386   SliceSplitEvt->Connect("Clicked()","ScanFrameNC",this,"SliceSplitEvtProc()");
00387   Slice2Evt = new TGCheckButton(tframe,">1 Event in Slice ");
00388   Slice2Evt->Connect("Clicked()","ScanFrameNC",this,"Slice2EvtProc()");
00389   SliceMergeEvt = new TGCheckButton(tframe,"Merged Events in Slice ");
00390   SliceMergeEvt->Connect("Clicked()","ScanFrameNC",this,"SliceMergeEvtProc()");
00391   SlicePartialEvt = new TGCheckButton(tframe,"Partial Event");
00392   SlicePartialEvt->Connect("Clicked()","ScanFrameNC",this,"SlicePartialEvtProc()");
00393 
00394   tframe->AddFrame(SliceEvtMissed,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00395   tframe->AddFrame(SliceSplitEvt,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00396   tframe->AddFrame(Slice2Evt,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00397  tframe->AddFrame(SliceMergeEvt,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00398  tframe->AddFrame(SlicePartialEvt,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00399 
00400   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00401 
00402 }

void ScanFrameNC::DrawTrackCurv (  )  [private]

Definition at line 445 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, TrackChargeBad, and TrackCurv.

Referenced by BuildScanSheet().

00445                                {  
00446   tframe = new TGHorizontalFrame(fSframe,400,10);
00447    Label = new TGLabel(tframe,"");
00448    Label->SetText("Track Curve.Fit Momentum ");
00449    TrackCurv = new TGNumberEntry(tframe,0,10,-1,TGNumberFormat::kNESReal);
00450    TrackCurv->Connect("ValueSet(Long_t)","ScanFrameNC",this,"TrackCurvProc(Long_t)");
00451    tframe->AddFrame(TrackCurv,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00452    tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00453    
00454    TrackChargeBad = new TGCheckButton(tframe," Track Charge Bad ");
00455    TrackChargeBad->Connect("Clicked()","ScanFrameNC",this,"TrackChargeBadProc()");
00456    tframe->AddFrame(TrackChargeBad,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00457  
00458   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00459   
00460   TrackCurv->SetState(true);
00461 }

void ScanFrameNC::DrawTrackMerge (  )  [private]
void ScanFrameNC::DrawTrackMissed (  )  [private]

Definition at line 405 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, tframe, and TrackMissed.

Referenced by BuildScanSheet().

00405                                  {  
00406   tframe = new TGHorizontalFrame(fSframe,400,10);
00407    TrackMissed = new TGCheckButton(tframe," Missed Track In Slice ");
00408  TrackMissed->Connect("Clicked()","ScanFrameNC",this,"TrackMissedProc()");
00409   tframe->AddFrame(TrackMissed,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00410   fSframe->AddFrame(tframe,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00411 }

void ScanFrameNC::DrawTrackRange (  )  [private]

Definition at line 433 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, and TrackRange.

Referenced by BuildScanSheet().

00433                                 {  
00434   tframe = new TGHorizontalFrame(fSframe,400,10);
00435   Label = new TGLabel(tframe,"");
00436   Label->SetText("Track Energy (Range) ");
00437   TrackRange = new TGNumberEntry(tframe,0,10,-1,TGNumberFormat::kNESReal);
00438   TrackRange->Connect("ValueSet(Long_t)","ScanFrameNC",this,"TrackRangeProc(Long_t)");
00439   tframe->AddFrame(TrackRange,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00440   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00441   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00442   TrackRange->SetState(true);
00443 }

void ScanFrameNC::DrawVtxUZLongOffset (  )  [private]

Definition at line 473 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, and VtxUZLongOffset.

Referenced by BuildScanSheet().

00474 {
00475   tframe = new TGHorizontalFrame(fSframe,400,10);
00476   Label = new TGLabel(tframe,"");
00477   Label->SetText("u-z Longitudinal Vertex Offset (units of planes)");
00478   VtxUZLongOffset = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00479   VtxUZLongOffset->Connect("ValueSet(Long_t)","ScanFrameNC",this,"VtxUZLongOffsetProc(Long_t)");
00480   tframe->AddFrame(VtxUZLongOffset,new TGLayoutHints(kLHintsCenterX|kLHintsExpandY,2,2,2,2));
00481   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00482   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00483   VtxUZLongOffset->SetState(true);
00484 }

void ScanFrameNC::DrawVtxUZTransOffset (  )  [private]

Definition at line 499 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, and VtxUZTransOffset.

Referenced by BuildScanSheet().

00499                                       {  
00500   tframe = new TGHorizontalFrame(fSframe,400,10);
00501   Label = new TGLabel(tframe,"");
00502   Label->SetText("u-z Transverse Vertex Offset (units of 10 cm)");
00503   VtxUZTransOffset = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00504   VtxUZTransOffset->Connect("ValueSet(Long_t)","ScanFrameNC",this,"VtxUZTransOffsetProc(Long_t)");
00505   tframe->AddFrame(VtxUZTransOffset,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00506   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00507   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00508 
00509   VtxUZTransOffset->SetState(true);
00510 }

void ScanFrameNC::DrawVtxVZLongOffset (  )  [private]

Definition at line 486 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, and VtxVZLongOffset.

Referenced by BuildScanSheet().

00487 {
00488   tframe = new TGHorizontalFrame(fSframe,400,10);
00489   Label = new TGLabel(tframe,"");
00490   Label->SetText("v-z Longitudinal Vertex Offset (units of planes)");
00491   VtxVZLongOffset = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00492   VtxVZLongOffset->Connect("ValueSet(Long_t)","ScanFrameNC",this,"VtxVZLongOffsetProc(Long_t)");
00493   tframe->AddFrame(VtxVZLongOffset,new TGLayoutHints(kLHintsCenterX|kLHintsExpandY,2,2,2,2));
00494   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00495   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00496   VtxVZLongOffset->SetState(true);
00497 }

void ScanFrameNC::DrawVtxVZTransOffset (  )  [private]

Definition at line 512 of file ScanFrameNC.cxx.

References ScanFrame::fSframe, Label, tframe, and VtxVZTransOffset.

Referenced by BuildScanSheet().

00512                                       {  
00513   tframe = new TGHorizontalFrame(fSframe,400,10);
00514   Label = new TGLabel(tframe,"");
00515   Label->SetText("v-z Transverse Vertex Offset (units of 10 cm)");
00516   VtxVZTransOffset = new TGNumberEntry(tframe,0,5,-1,TGNumberFormat::kNESInteger);
00517   VtxVZTransOffset->Connect("ValueSet(Long_t)","ScanFrameNC",this,"VtxVZTransOffsetProc(Long_t)");
00518   tframe->AddFrame(VtxVZTransOffset,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00519   tframe->AddFrame(Label,new TGLayoutHints(kLHintsLeft|kLHintsExpandY,2,2,2,2));
00520   fSframe->AddFrame(tframe ,new TGLayoutHints(kLHintsLeft ,2,2,2,2)); 
00521   
00522   VtxVZTransOffset->SetState(true);
00523 }

void ScanFrameNC::EventFakeProc (  ) 

Definition at line 183 of file ScanFrameNC.cxx.

References EventFake, and fEvtFake.

00183                                {
00184   if(fEvtFake==0) {
00185     fEvtFake=1;
00186     EventFake->SetOn(true);
00187   }
00188   else{
00189     fEvtFake=0;
00190     EventFake->SetOn(false);
00191     fEvtFake=0;
00192   }
00193 }

void ScanFrameNC::EventMissedProc ( Long_t  nmiss  ) 

Definition at line 177 of file ScanFrameNC.cxx.

References EventsMissed, EventsMissedTrack, and fEvtMissed.

00177                                         {
00178   fEvtMissed=EventsMissed->GetIntNumber();
00179   if(fEvtMissed>0) EventsMissedTrack->SetState(kButtonEngaged);
00180   else EventsMissedTrack->SetState(kButtonDisabled);
00181 
00182 }

void ScanFrameNC::EventMissedTrackPlanesProc ( Long_t  v  ) 

Definition at line 210 of file ScanFrameNC.cxx.

References EventsMissedTrackPlanes, and fEvtMissedTrackPlanes.

00210                                                    {
00211   fEvtMissedTrackPlanes=EventsMissedTrackPlanes->GetIntNumber();
00212 }

void ScanFrameNC::EventMissedTrackProc (  ) 

Definition at line 195 of file ScanFrameNC.cxx.

References EventsMissedTrack, EventsMissedTrackPlanes, fEvtMissedTrack, and fEvtMissedTrackPlanes.

00195                                       {
00196   if(fEvtMissedTrack==0) {
00197     fEvtMissedTrack=1;
00198     EventsMissedTrack->SetOn(true);
00199     EventsMissedTrackPlanes->SetState(true);
00200  
00201   }
00202   else{
00203     fEvtMissedTrack=0;
00204     EventsMissedTrack->SetOn(false);
00205     EventsMissedTrackPlanes->SetState(false);
00206     fEvtMissedTrackPlanes=0;
00207   }
00208 }

void ScanFrameNC::InitScanSheet (  )  [virtual]
void ScanFrameNC::MissedTrackPlanesProc ( Long_t  v  ) 

Definition at line 285 of file ScanFrameNC.cxx.

References fMissedTrackPlanes, and MissedTrackPlanes.

00285                                              {
00286   fMissedTrackPlanes=MissedTrackPlanes->GetIntNumber();
00287 }

void ScanFrameNC::Pass ( const std::string  attribute  )  [virtual]

Reimplemented from ScanFrame.

Definition at line 79 of file ScanFrameNC.cxx.

References SetSlice2Evt().

00079                                                 {
00080   if ( attribute == "Slice2Evt" ) this->SetSlice2Evt();
00081 }

void ScanFrameNC::PassFloat ( const std::string  attribute,
Double_t  value 
) [virtual]

Reimplemented from ScanFrame.

Definition at line 88 of file ScanFrameNC.cxx.

References SetCurv(), SetRange(), and SetShwE().

00088                                                                     {
00089 
00090   if ( attribute == "Curv" )       this->SetCurv(value);
00091   if ( attribute == "Range" )      this->SetRange(value);
00092   if ( attribute == "ShwE" )       this->SetShwE(value);
00093 
00094 }

void ScanFrameNC::PassInt ( const std::string  attribute,
Long_t  value 
) [virtual]

Reimplemented from ScanFrame.

Definition at line 83 of file ScanFrameNC.cxx.

References SetTrackContained().

00083                                                                 {
00084 
00085   if ( attribute == "TrackContained" ) this->SetTrackContained(value);
00086 }

void ScanFrameNC::ResetDisplay ( std::string  mode = ""  )  [virtual]

Reimplemented from ScanFrame.

Definition at line 96 of file ScanFrameNC.cxx.

References BadVertex, EventFake, EventsMissed, EventsMissedTrack, EventsMissedTrackPlanes, fShowerEnergy, fTrackCurv, fTrackRange, MissedTrackPlanes, ResetDisplay_noPH(), ShowerEnergy, Slice2Evt, SliceEvtMissed, SliceMergeEvt, SlicePartialEvt, SliceSplitEvt, TrackChargeBad, TrackCurv, TrackMissed, TrackRange, VtxUZLongOffset, VtxUZTransOffset, VtxVZLongOffset, and VtxVZTransOffset.

00096                                             {
00097   if ( mode == "noPH") {
00098     this->ResetDisplay_noPH();
00099     return;
00100   }
00101 
00102   this->ScanFrame::ResetDisplay(mode);
00103 
00104   EventsMissed->SetIntNumber(0);
00105   EventsMissed->SetNumber(0);
00106   EventFake->SetOn(false);
00107   EventsMissedTrack->SetOn(false);
00108   EventsMissedTrackPlanes->SetIntNumber(0);
00109   TrackChargeBad->SetOn(false);
00110   SliceEvtMissed->SetOn(false);
00111   Slice2Evt->SetOn(false);
00112   SliceMergeEvt->SetOn(false);
00113   SlicePartialEvt->SetOn(false);
00114   SliceSplitEvt->SetOn(false);
00115   TrackMissed->SetOn(false);
00116   MissedTrackPlanes->SetNumber(0);
00117   TrackRange->SetNumber(fTrackRange);
00118   TrackCurv->SetNumber(fTrackCurv);
00119   BadVertex->SetOn(false);
00120 
00121   ShowerEnergy->SetNumber(fShowerEnergy);
00122   EventsMissedTrack->SetOn(false);
00123   MissedTrackPlanes->SetState(false);
00124   TrackRange->SetState(true);
00125   TrackCurv->SetState(true);
00126 
00127   VtxUZTransOffset->SetNumber(0);
00128   VtxVZTransOffset->SetNumber(0);
00129   VtxUZLongOffset->SetNumber(0);
00130   VtxVZLongOffset->SetNumber(0);
00131 
00132   VtxUZTransOffset->SetState(true);
00133   VtxVZTransOffset->SetState(true);
00134   VtxUZLongOffset->SetState(true);
00135   VtxVZLongOffset->SetState(true);
00136 
00137   BadVertex->SetState(kButtonEngaged);
00138   TrackChargeBad->SetState(kButtonEngaged);
00139 }

void ScanFrameNC::ResetDisplay_noPH (  ) 

Definition at line 142 of file ScanFrameNC.cxx.

References ScanFrame::eventLabel, ScanFrame::fEvent, ScanFrame::fRun, fShowerEnergy, ScanFrame::fSlice, ScanFrame::fSnarl, fTrackCurv, fTrackRange, ScanFrame::runLabel, ShowerEnergy, ScanFrame::sliceLabel, ScanFrame::snarlLabel, TrackCurv, and TrackRange.

Referenced by ResetDisplay().

00142                                    {
00143 
00144   runLabel->SetText(fRun);
00145   snarlLabel->SetText(fSnarl);
00146   eventLabel->SetText(fEvent);
00147   sliceLabel->SetText(fSlice);
00148   TrackRange->SetNumber(fTrackRange);
00149   TrackCurv->SetNumber(fTrackCurv);
00150   ShowerEnergy->SetNumber(fShowerEnergy);
00151 }

void ScanFrameNC::SetCurv ( Float_t  s  )  [inline, private]

Definition at line 138 of file ScanFrameNC.h.

References fTrackCurv.

Referenced by PassFloat().

00138 {fTrackCurv=s;}

void ScanFrameNC::SetMissedSliceEvt ( Long_t  m  )  [inline, private]

Definition at line 140 of file ScanFrameNC.h.

References fSliceEvtMissed, and SliceEvtMissed.

00140 {fSliceEvtMissed=m; if(m==0)SliceEvtMissed->SetOn(false); if(m>0)SliceEvtMissed->SetOn(true);}

void ScanFrameNC::SetRange ( Float_t  s  )  [inline, private]

Definition at line 137 of file ScanFrameNC.h.

References fTrackRange.

Referenced by PassFloat().

00137 {fTrackRange=s;}

void ScanFrameNC::SetShwE ( Float_t  s  )  [inline, private]

Definition at line 139 of file ScanFrameNC.h.

References fShowerEnergy.

Referenced by PassFloat().

00139 {fShowerEnergy=s;}

void ScanFrameNC::SetSlice2Evt (  )  [inline, private]

Definition at line 135 of file ScanFrameNC.h.

References fSlice2Evt, and Slice2Evt.

Referenced by Pass().

00135 {Slice2Evt->SetOn(true); fSlice2Evt=1;}

void ScanFrameNC::SetTrackContained ( Int_t  c  )  [inline, private]

Definition at line 136 of file ScanFrameNC.h.

References fTrackContained.

Referenced by PassInt().

00136 {fTrackContained=c;}

void ScanFrameNC::ShowerEnergyProc ( Long_t  v  ) 

Definition at line 341 of file ScanFrameNC.cxx.

References fShowerEnergy, and ShowerEnergy.

00341                                         {
00342   fShowerEnergy=ShowerEnergy->GetNumber();
00343 }

void ScanFrameNC::Slice2EvtProc (  ) 

Definition at line 236 of file ScanFrameNC.cxx.

References fSlice2Evt, and Slice2Evt.

00236                                {
00237  if(fSlice2Evt==0) {
00238     fSlice2Evt=1;
00239     Slice2Evt->SetOn(true);
00240   }
00241   else{
00242     fSlice2Evt=0;
00243     Slice2Evt->SetOn(false);
00244   }
00245 }

void ScanFrameNC::SliceEvtMissedProc (  ) 

Definition at line 214 of file ScanFrameNC.cxx.

References fSliceEvtMissed, and SliceEvtMissed.

00214                                     {
00215  if(fSliceEvtMissed==0) {
00216     fSliceEvtMissed=1;
00217     SliceEvtMissed->SetOn(true);
00218   }
00219   else{
00220     fSliceEvtMissed=0;
00221     SliceEvtMissed->SetOn(false);
00222   }
00223 }

void ScanFrameNC::SliceMergeEvtProc (  ) 

Definition at line 246 of file ScanFrameNC.cxx.

References fSliceMergeEvt, and SliceMergeEvt.

00246                                    {
00247  if(fSliceMergeEvt==0) {
00248     fSliceMergeEvt=1;
00249     SliceMergeEvt->SetOn(true);
00250   }
00251   else{
00252     fSliceMergeEvt=0;
00253     SliceMergeEvt->SetOn(false);
00254   }
00255 }

void ScanFrameNC::SlicePartialEvtProc (  ) 

Definition at line 256 of file ScanFrameNC.cxx.

References fSlicePartialEvt, and SlicePartialEvt.

00256                                      {
00257  if(fSlicePartialEvt==0) {
00258     fSlicePartialEvt=1;
00259     SlicePartialEvt->SetOn(true);
00260   }
00261   else{
00262     fSlicePartialEvt=0;
00263     SlicePartialEvt->SetOn(false);
00264   }
00265 }

void ScanFrameNC::SliceSplitEvtProc (  ) 

Definition at line 225 of file ScanFrameNC.cxx.

References fSliceSplitEvt, and SliceSplitEvt.

00225                                    {
00226  if(fSliceSplitEvt==0) {
00227     fSliceSplitEvt=1;
00228     SliceSplitEvt->SetOn(true);
00229   }
00230   else{
00231     fSliceSplitEvt=0;
00232     SliceSplitEvt->SetOn(false);
00233   }
00234 }

void ScanFrameNC::TrackChargeBadProc (  ) 

Definition at line 317 of file ScanFrameNC.cxx.

References fTrackChargeBad, and TrackChargeBad.

00317                                     {
00318 
00319  if(fTrackChargeBad==0) {
00320     fTrackChargeBad=1;
00321     TrackChargeBad->SetOn(true);
00322   }
00323   else{
00324     fTrackChargeBad=0;
00325     TrackChargeBad->SetOn(false);
00326   }
00327 }

void ScanFrameNC::TrackCurvProc ( Long_t  v  ) 

Definition at line 293 of file ScanFrameNC.cxx.

References fTrackCurv, and TrackCurv.

00293                                       {
00294  fTrackCurv=TrackCurv->GetNumber();
00295 }

void ScanFrameNC::TrackMissedProc (  ) 

Definition at line 267 of file ScanFrameNC.cxx.

References BadVertex, EventsMissedTrack, fEvtMissedTrack, MissedTrackPlanes, TrackChargeBad, TrackCurv, and TrackRange.

00268 {
00269   if(fEvtMissedTrack==0) {
00270     fEvtMissedTrack=1;
00271     EventsMissedTrack->SetOn(true);
00272     MissedTrackPlanes->SetState(true);
00273   }
00274   else{
00275     fEvtMissedTrack=0;
00276     EventsMissedTrack->SetOn(false);
00277     MissedTrackPlanes->SetState(false);
00278     TrackRange->SetState(true);
00279     TrackCurv->SetState(true);
00280     BadVertex->SetState(kButtonEngaged);
00281     TrackChargeBad->SetState(kButtonEngaged);
00282  }
00283 }

void ScanFrameNC::TrackRangeProc ( Long_t  v  ) 

Definition at line 289 of file ScanFrameNC.cxx.

References fTrackRange, and TrackRange.

00289                                        {
00290   fTrackRange=TrackRange->GetNumber();
00291 }

void ScanFrameNC::VtxUZLongOffsetProc ( Long_t  v  ) 

Definition at line 307 of file ScanFrameNC.cxx.

References fVtxUZLongOffset, and VtxUZLongOffset.

00308 {
00309   fVtxUZLongOffset = VtxUZLongOffset->GetIntNumber();
00310 }

void ScanFrameNC::VtxUZTransOffsetProc ( Long_t  v  ) 

Definition at line 297 of file ScanFrameNC.cxx.

References fVtxUZTransOffset, and VtxUZTransOffset.

00298 {
00299   fVtxUZTransOffset = VtxUZTransOffset->GetIntNumber();
00300 }

void ScanFrameNC::VtxVZLongOffsetProc ( Long_t  v  ) 

Definition at line 312 of file ScanFrameNC.cxx.

References fVtxVZLongOffset, and VtxVZLongOffset.

00313 {
00314   fVtxVZLongOffset = VtxVZLongOffset->GetIntNumber();
00315 }

void ScanFrameNC::VtxVZTransOffsetProc ( Long_t  v  ) 

Definition at line 302 of file ScanFrameNC.cxx.

References fVtxVZTransOffset, and VtxVZTransOffset.

00303 {
00304   fVtxVZTransOffset = VtxVZTransOffset->GetIntNumber();
00305 }

virtual void ScanFrameNC::WriteScanSheet ( std::ofstream &  out  )  [virtual]

Reimplemented from ScanFrame.


Member Data Documentation

TGCheckButton* ScanFrameNC::BadVertex [private]

Transient, do not output.

Definition at line 86 of file ScanFrameNC.h.

Referenced by BadVertexProc(), DrawBadVertex(), ResetDisplay(), and TrackMissedProc().

TGCheckButton* ScanFrameNC::EventFake [private]

Transient, do not output.

Definition at line 73 of file ScanFrameNC.h.

Referenced by DrawEventFake(), EventFakeProc(), and ResetDisplay().

TGNumberEntry* ScanFrameNC::EventsMissed [private]

Transient, do not output.

Definition at line 71 of file ScanFrameNC.h.

Referenced by DrawMissedEvents(), EventMissedProc(), and ResetDisplay().

TGCheckButton* ScanFrameNC::EventsMissedTrack [private]

Transient, do not output.

Definition at line 72 of file ScanFrameNC.h.

Referenced by DrawMissedEventsTracks(), EventMissedProc(), EventMissedTrackProc(), ResetDisplay(), and TrackMissedProc().

TGNumberEntry* ScanFrameNC::EventsMissedTrackPlanes [private]

Transient, do not output.

Definition at line 74 of file ScanFrameNC.h.

Referenced by DrawMissedEventsTracksPlanes(), EventMissedTrackPlanesProc(), EventMissedTrackProc(), and ResetDisplay().

Long_t ScanFrameNC::fBadVertex [private]

Definition at line 115 of file ScanFrameNC.h.

Referenced by BadVertexProc(), and InitScanSheet().

Long_t ScanFrameNC::fEvtFake [private]

Definition at line 97 of file ScanFrameNC.h.

Referenced by EventFakeProc(), and InitScanSheet().

Long_t ScanFrameNC::fEvtMissed [private]

Transient, do not output.

Definition at line 96 of file ScanFrameNC.h.

Referenced by EventMissedProc(), and InitScanSheet().

Long_t ScanFrameNC::fEvtMissedTrack [private]

Definition at line 98 of file ScanFrameNC.h.

Referenced by EventMissedTrackProc(), InitScanSheet(), and TrackMissedProc().

Definition at line 99 of file ScanFrameNC.h.

Referenced by EventMissedTrackPlanesProc(), EventMissedTrackProc(), and InitScanSheet().

Definition at line 106 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and MissedTrackPlanesProc().

float ScanFrameNC::fShowerEnergy [private]
Long_t ScanFrameNC::fSlice2Evt [private]

Definition at line 101 of file ScanFrameNC.h.

Referenced by InitScanSheet(), SetSlice2Evt(), and Slice2EvtProc().

Long_t ScanFrameNC::fSliceEvtMissed [private]

Definition at line 100 of file ScanFrameNC.h.

Referenced by InitScanSheet(), SetMissedSliceEvt(), and SliceEvtMissedProc().

Long_t ScanFrameNC::fSliceMergeEvt [private]

Definition at line 103 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and SliceMergeEvtProc().

Definition at line 104 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and SlicePartialEvtProc().

Long_t ScanFrameNC::fSliceSplitEvt [private]

Definition at line 102 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and SliceSplitEvtProc().

Long_t ScanFrameNC::fTrackChargeBad [private]

Definition at line 110 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and TrackChargeBadProc().

Long_t ScanFrameNC::fTrackContained [private]

Definition at line 109 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and SetTrackContained().

float ScanFrameNC::fTrackCurv [private]

Definition at line 108 of file ScanFrameNC.h.

Referenced by InitScanSheet(), ResetDisplay(), ResetDisplay_noPH(), SetCurv(), and TrackCurvProc().

Long_t ScanFrameNC::fTrackMissed [private]

Definition at line 105 of file ScanFrameNC.h.

Referenced by InitScanSheet().

float ScanFrameNC::fTrackRange [private]

Definition at line 111 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and VtxUZLongOffsetProc().

Definition at line 113 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and VtxUZTransOffsetProc().

Definition at line 112 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and VtxVZLongOffsetProc().

Definition at line 114 of file ScanFrameNC.h.

Referenced by InitScanSheet(), and VtxVZTransOffsetProc().

TGLabel* ScanFrameNC::Label [private]
TGNumberEntry* ScanFrameNC::MissedTrackPlanes [private]

Transient, do not output.

Definition at line 81 of file ScanFrameNC.h.

Referenced by DrawMissedTrackPlanes(), MissedTrackPlanesProc(), ResetDisplay(), and TrackMissedProc().

TGNumberEntry* ScanFrameNC::RadLabel [private]

Transient, do not output.

Definition at line 70 of file ScanFrameNC.h.

TGNumberEntry* ScanFrameNC::ShowerEnergy [private]

Transient, do not output.

Definition at line 92 of file ScanFrameNC.h.

Referenced by DrawShowerEnergy(), ResetDisplay(), ResetDisplay_noPH(), and ShowerEnergyProc().

TGCheckButton* ScanFrameNC::ShowerMissed [private]

Transient, do not output.

Definition at line 87 of file ScanFrameNC.h.

TGCheckButton* ScanFrameNC::Slice2Evt [private]

Transient, do not output.

Definition at line 79 of file ScanFrameNC.h.

Referenced by DrawSliceEvtMissed(), ResetDisplay(), SetSlice2Evt(), and Slice2EvtProc().

TGCheckButton* ScanFrameNC::SliceEvtMissed [private]

Transient, do not output.

Definition at line 75 of file ScanFrameNC.h.

Referenced by DrawSliceEvtMissed(), ResetDisplay(), SetMissedSliceEvt(), and SliceEvtMissedProc().

TGCheckButton* ScanFrameNC::SliceMergeEvt [private]

Transient, do not output.

Definition at line 77 of file ScanFrameNC.h.

Referenced by DrawSliceEvtMissed(), ResetDisplay(), and SliceMergeEvtProc().

TGCheckButton* ScanFrameNC::SlicePartialEvt [private]

Transient, do not output.

Definition at line 78 of file ScanFrameNC.h.

Referenced by DrawSliceEvtMissed(), ResetDisplay(), and SlicePartialEvtProc().

TGCheckButton* ScanFrameNC::SliceSplitEvt [private]

Transient, do not output.

Definition at line 76 of file ScanFrameNC.h.

Referenced by DrawSliceEvtMissed(), ResetDisplay(), and SliceSplitEvtProc().

TGHorizontalFrame* ScanFrameNC::tframe [private]
TGCheckButton* ScanFrameNC::TrackChargeBad [private]

Transient, do not output.

Definition at line 84 of file ScanFrameNC.h.

Referenced by DrawTrackCurv(), ResetDisplay(), TrackChargeBadProc(), and TrackMissedProc().

TGNumberEntry* ScanFrameNC::TrackCurv [private]

Transient, do not output.

Definition at line 83 of file ScanFrameNC.h.

Referenced by DrawTrackCurv(), ResetDisplay(), ResetDisplay_noPH(), TrackCurvProc(), and TrackMissedProc().

TGCheckButton* ScanFrameNC::TrackMerge [private]

Transient, do not output.

Definition at line 85 of file ScanFrameNC.h.

TGCheckButton* ScanFrameNC::TrackMissed [private]

Transient, do not output.

Definition at line 80 of file ScanFrameNC.h.

Referenced by DrawTrackMissed(), and ResetDisplay().

TGNumberEntry* ScanFrameNC::TrackRange [private]

Transient, do not output.

Definition at line 82 of file ScanFrameNC.h.

Referenced by DrawTrackRange(), ResetDisplay(), ResetDisplay_noPH(), TrackMissedProc(), and TrackRangeProc().

TGNumberEntry* ScanFrameNC::UPosVal [private]

Definition at line 68 of file ScanFrameNC.h.

TGNumberEntry* ScanFrameNC::VPosVal [private]

Transient, do not output.

Definition at line 69 of file ScanFrameNC.h.

TGNumberEntry* ScanFrameNC::VtxUZLongOffset [private]

Transient, do not output.

Definition at line 90 of file ScanFrameNC.h.

Referenced by DrawVtxUZLongOffset(), ResetDisplay(), and VtxUZLongOffsetProc().

TGNumberEntry* ScanFrameNC::VtxUZTransOffset [private]

Transient, do not output.

Definition at line 88 of file ScanFrameNC.h.

Referenced by DrawVtxUZTransOffset(), ResetDisplay(), and VtxUZTransOffsetProc().

TGNumberEntry* ScanFrameNC::VtxVZLongOffset [private]

Transient, do not output.

Definition at line 91 of file ScanFrameNC.h.

Referenced by DrawVtxVZLongOffset(), ResetDisplay(), and VtxVZLongOffsetProc().

TGNumberEntry* ScanFrameNC::VtxVZTransOffset [private]

Transient, do not output.

Definition at line 89 of file ScanFrameNC.h.

Referenced by DrawVtxVZTransOffset(), ResetDisplay(), and VtxVZTransOffsetProc().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1