00001 // $Id: StFtpcDisplay.hh,v 1.11 2003/09/16 15:27:02 jcs Exp $ 00002 // $Log: StFtpcDisplay.hh,v $ 00003 // Revision 1.11 2003/09/16 15:27:02 jcs 00004 // removed inline as it would leave a few undefined reference 00005 // 00006 // Revision 1.10 2003/09/02 17:58:16 perev 00007 // gcc 3.2 updates + WarnOff 00008 // 00009 // Revision 1.9 2003/01/16 18:04:32 oldi 00010 // Bugs eliminated. Now it compiles on Solaris again. 00011 // Split residuals for global and primary fit. 00012 // 00013 // Revision 1.8 2002/04/05 16:50:28 oldi 00014 // Cleanup of MomentumFit (StFtpcMomentumFit is now part of StFtpcTrack). 00015 // Each Track inherits from StHelix, now. 00016 // Therefore it is possible to calculate, now: 00017 // - residuals 00018 // - vertex estimations obtained by back extrapolations of FTPC tracks 00019 // Chi2 was fixed. 00020 // Many additional minor (and major) changes. 00021 // 00022 // Revision 1.7 2001/07/13 18:01:03 oldi 00023 // New function WriteData() added. It writes TPolyMarkers and TPolyLine3Ds to 00024 // a file which can be used to display results (pictures) offline. 00025 // 00026 // Revision 1.6 2000/11/10 18:37:24 oldi 00027 // It is now possible to display tracks which should be longer (so called 'short tracks'). 00028 // 00029 // Revision 1.5 2000/07/28 09:45:42 hummler 00030 // change "Stiostream.h" to <Stiostream.h> for correct path 00031 // 00032 // Revision 1.4 2000/07/18 21:22:16 oldi 00033 // Changes due to be able to find laser tracks. 00034 // Cleanup: - new functions in StFtpcConfMapper, StFtpcTrack, and StFtpcPoint 00035 // to bundle often called functions 00036 // - short functions inlined 00037 // - formulas of StFormulary made static 00038 // - avoid streaming of objects of unknown size 00039 // (removes the bunch of CINT warnings during compile time) 00040 // - two or three minor bugs cured 00041 // 00042 // Revision 1.3 2000/06/07 11:35:12 oldi 00043 // Major update due to naming changes. 00044 // New data members added. 00045 // Added Delete() function. 00046 // 00047 // Revision 1.2 2000/05/12 12:59:14 oldi 00048 // removed delete operator for mSegment in StFtpcConfMapper (mSegment was deleted twice), 00049 // add two new constructors for StFtpcTracker to be able to refit already existing tracks, 00050 // minor cosmetics 00051 // 00052 // Revision 1.1 2000/05/10 13:39:14 oldi 00053 // Initial version of StFtpcTrackMaker 00054 // 00055 00057 // // 00058 // StFtpcDiplsay class - displays tracks and clusters // 00059 // // 00061 00062 #ifndef STAR_StFtpcDisplay 00063 #define STAR_StFtpcDisplay 00064 00065 #include <Stiostream.h> 00066 00067 #include "TObjArray.h" 00068 #include "TObject.h" 00069 #include "TCanvas.h" 00070 #include "TNode.h" 00071 #include "TPolyMarker3D.h" 00072 #include "TPolyLine3D.h" 00073 #include "TCanvas.h" 00074 #include "TNode.h" 00075 00076 #include "MIntArray.h" 00077 00078 class StFtpcDisplay : public TObject { 00079 00080 private: 00081 TObjArray *mTrack; // found tracks 00082 TObjArray *mHit; // found hits 00083 TObjArray *mGeantTrack; // geant tracks 00084 TObjArray *mGeantHit; // geanthits 00085 00086 Int_t mNumRowSegment; // number of row segments 00087 Int_t mNumPhiSegment; // number of phi segments 00088 Int_t mNumEtaSegment; // number of eta segments 00089 Int_t mBounds; // row * phi * eta segments 00090 00091 TCanvas *mX_Y_Z; // canvas for both Ftpcs 00092 TCanvas *mX_Y_Zplus; // canvas for positive Ftpc 00093 TCanvas *mX_Y_Zminus; // canvas for negative Ftpc 00094 00095 TNode *mNode0; // node for both Ftpcs 00096 TNode *mNode1; // node for positive Ftpcs 00097 TNode *mNode2; // node for negative Ftpcs 00098 00099 TPolyLine3D *geant_line; // geant tracks 00100 TPolyLine3D *found_line; // found tracks 00101 TPolyLine3D *current_line; // pointer to track 00102 00103 TPolyMarker3D *found_hit; // cluster on track in both Ftpcs 00104 TPolyMarker3D *found_hit_plus; // cluster on track in positive Ftpcs 00105 TPolyMarker3D *found_hit_minus; // cluster on track in negative Ftpcs 00106 TPolyMarker3D *geant_hit; // cluster on track in both Ftpcs 00107 TPolyMarker3D *geant_hit_plus; // cluster on track in positive Ftpcs 00108 TPolyMarker3D *geant_hit_minus; // cluster on track in negative Ftpcs 00109 TPolyMarker3D *unused_hit; // unused cluster in both Ftpcs 00110 TPolyMarker3D *unused_hit_plus; // unused cluster in positive Ftpcs 00111 TPolyMarker3D *unused_hit_minus; // unused cluster in negative Ftpcs 00112 TPolyMarker3D *wrong_hit; // wrong cluster on track in both Ftpcs 00113 TPolyMarker3D *wrong_hit_plus; // wrong cluster on track in positive Ftpcs 00114 TPolyMarker3D *wrong_hit_minus; // wrong cluster on track in negative Ftpcs 00115 00116 Float_t *found_value; 00117 Float_t *found_value_plus; 00118 Float_t *found_value_minus; 00119 Float_t *geant_value; 00120 Float_t *geant_value_plus; 00121 Float_t *geant_value_minus; 00122 Float_t *unused_value; 00123 Float_t *unused_value_plus; 00124 Float_t *unused_value_minus; 00125 Float_t *wrong_value; 00126 Float_t *wrong_value_plus; 00127 Float_t *wrong_value_minus; 00128 00129 public: 00130 StFtpcDisplay(); // default constructor 00131 StFtpcDisplay(TObjArray *hits, TObjArray *tracks); // usual constructor 00132 StFtpcDisplay(TObjArray *hits, TObjArray *tracks, TObjArray *geanthits, TObjArray *geanttracks); // constructor for evaluator 00133 virtual ~StFtpcDisplay(); // destructor 00134 00135 //void Info(); // prints general information 00136 void WriteData(Char_t *filename); // writes clusters and tracks to file 00137 void TrackInfo(); // plots single tracks 00138 void ShowClusters(); // displays clusters 00139 void ShowTracks(Int_t trackanz = 0, Int_t trackarray[] = 0); // displays tracks 00140 void ShowEvalTracks(MIntArray *splitArr = 0, MIntArray *uncleanArr = 0, MIntArray *clusterArr = 0); // displays evaluated tracks 00141 void FillGeant(Bool_t electrons, Bool_t non_vtx, Bool_t good, Bool_t geant_hits, 00142 Float_t eta_low, Float_t eta_up, Float_t pt_low, Float_t pt_up, Bool_t blue);// fills geant histograms 00143 void FillFound(Bool_t good_found, Bool_t st, MIntArray *split, MIntArray *unclean, MIntArray *found_hits, 00144 Float_t eta_low, Float_t eta_up, Float_t pt_low, Float_t pt_up); // fills found histograms 00145 void DrawNodes(); // draw nodes 00146 void DeleteAll(); // deletes objects of found and geant tracks 00147 void DeleteFound(); // deletes objects of found tracks 00148 void DeleteGeant(); // deletes objects of geant tracks 00149 void OnOff(Bool_t on); // prints 'On' or 'Off' 00150 00151 ClassDef(StFtpcDisplay, 1) // Ftpc display class 00152 }; 00153 00154 00155 00156 #endif
1.5.9