WCSimRecoEvent.hh

Go to the documentation of this file.
00001 #ifndef WCSIMRECOEVENT_HH
00002 #define WCSIMRECOEVENT_HH
00003 
00004 #include "TObject.h"
00005 
00006 #include <vector>
00007 
00008 class WCSimRecoDigit;
00009 class WCSimRecoVertex;
00010 class WCSimRecoRing;
00011 
00012 class WCSimRecoEvent : public TObject {
00013 
00014  public:
00015   WCSimRecoEvent();                  
00016   ~WCSimRecoEvent();
00017 
00018   void Reset();
00019 
00020   void SetHeader(Int_t run, 
00021                  Int_t event, 
00022                  Int_t trigger);
00023 
00024   Int_t GetRun() { return fRunNum; }
00025   Int_t GetEvent() { return fEventNum; }
00026   Int_t GetTrigger() { return fTriggerNum; }
00027 
00028   void AddDigit(WCSimRecoDigit* digit);
00029   void AddFilterDigit(WCSimRecoDigit* digit);
00030   void AddRing(WCSimRecoRing* track);
00031 
00032   WCSimRecoDigit* GetDigit(Int_t n);
00033   Int_t GetNDigits();  
00034 
00035   WCSimRecoDigit* GetFilterDigit(Int_t n);
00036   Int_t GetNFilterDigits();
00037 
00038   WCSimRecoRing* GetRing(Int_t n);
00039   Int_t GetNRings();
00040 
00041   WCSimRecoRing* GetPrimaryRing();
00042 
00043   void SetVertex( Double_t x, Double_t y, Double_t z, Double_t t );
00044   void SetDirection( Double_t px, Double_t py, Double_t pz );
00045   void SetConeAngle( Double_t angle );
00046   void SetTrackLength( Double_t length );
00047   void SetVtxFOM( Double_t fom, Int_t nsteps, Bool_t pass );
00048   void SetVtxStatus( Int_t status );
00049 
00050   WCSimRecoVertex* GetVertex();
00051 
00052   Double_t GetVtxX();
00053   Double_t GetVtxY();
00054   Double_t GetVtxZ();
00055   Double_t GetVtxTime();
00056 
00057   Double_t GetDirX(); 
00058   Double_t GetDirY(); 
00059   Double_t GetDirZ(); 
00060 
00061   Double_t GetConeAngle();
00062   Double_t GetTrackLength();
00063 
00064   Double_t GetVtxFOM();
00065   Int_t GetVtxIterations();
00066   Bool_t GetVtxPass();
00067   Int_t GetVtxStatus();
00068 
00069   Bool_t FoundVertex();
00070   Bool_t FoundDirection();
00071   Bool_t FoundRings();
00072 
00073   void SetFilterDone() { fIsFilterDone = 1; }
00074   Bool_t IsFilterDone() { return fIsFilterDone; }
00075 
00076   void SetVertexFinderDone() { fIsVertexFinderDone = 1; }
00077   Bool_t IsVertexFinderDone() { return fIsVertexFinderDone; }
00078 
00079   void SetRingFinderDone() { fIsRingFinderDone = 1; }
00080   Bool_t IsRingFinderDone() { return fIsRingFinderDone; }
00081 
00082   std::vector<WCSimRecoDigit*>* GetDigitList()       { return fDigitList; }
00083   std::vector<WCSimRecoDigit*>* GetFilterDigitList() { return fFilterDigitList; }
00084   std::vector<WCSimRecoRing*>*  GetRingList()        { return fRingList; }
00085 
00086   void PrintDigitList(const char* filename);
00087   void PrintFilterDigitList(const char* filename);
00088 
00089   void PrintEvent();
00090 
00091  private:
00092 
00093   void ClearDigits();
00094   void ClearFilterDigits();
00095   void ClearRings();
00096 
00097   Int_t fRunNum;
00098   Int_t fEventNum;
00099   Int_t fTriggerNum;
00100 
00101   std::vector<WCSimRecoDigit*>* fDigitList;
00102   std::vector<WCSimRecoDigit*>* fFilterDigitList;
00103   std::vector<WCSimRecoRing*>*  fRingList;
00104 
00105   WCSimRecoVertex* fVertex;
00106 
00107   Bool_t fIsFilterDone;
00108   Bool_t fIsVertexFinderDone;
00109   Bool_t fIsRingFinderDone;
00110 
00111   ClassDef(WCSimRecoEvent,0)
00112 
00113 };
00114 
00115 #endif
00116 
00117 
00118 
00119 
00120 
00121 
00122