Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

XANADisplay.h

Go to the documentation of this file.
00001 #ifndef XANADisplay_h
00002 #define XANADisplay_h
00003 
00009 #include <stdlib.h>
00010 #include <TCanvas.h>
00011 
00012 class TGeoManager;
00013 class TGeoVolume;
00014 class TObjArray;
00015 class TRefArray;
00016 class TString;
00017 class TPolyMarker;
00018 class TTree;
00019 class XANAPad;
00020 class XANAEsdEvent;
00021 class XANAEcalGeometry;
00022 class XANACluster;
00023 class TH2F;
00024 class TFile;
00025 
00026 class XANADisplay : public TCanvas {
00027   public :
00028     static XANADisplay *Instance(Int_t wid);
00029     static XANADisplay *Instance();
00030           ~XANADisplay();
00031                  
00032                              
00033     void          redrawGeom();
00034     void          DrawECAL3D();
00035     void          drawAll();
00036     void          showACluster(XANACluster *clus,Int_t clusnr);
00037     XANAPad      *GetPad() { return fPad;}
00038     void          saveAs(const char *);                                                            
00039     
00040     
00041    //setter   
00042     void         setCutC(Double_t cut)         {enCutClus_=cut;} 
00043     void         setCutT(Double_t cut)         {enCutTrak_=cut;} 
00044     void         SetBothView(Bool_t state)     {fBothV=state;}
00045     void         SetRadialView(Bool_t state)   {fRadial = state;}
00046     void         SetSideView(Bool_t state)     {fSide =state;}
00047     void         setHit(Bool_t flag)           {drawHit_ = flag;}
00048     void         setHitStereo(Bool_t flag)     {noSmooth_ = flag;} 
00049     void         setTrack(Bool_t flag)         {drawTrack_ = flag;}
00050     void         setTrackHit(Bool_t flag)      {drawTrackHit_ = flag;}
00051     void         setClus(Bool_t flag)          {drawClus_ = flag;}
00052     void         setEcal(Bool_t flag)          {ecalDet_ = flag;}
00053     void         setElec(Bool_t flag)          {drawElec_ = flag;}
00054     void         setCaloRecHit(Bool_t flag)    {drawCaloHit_ = flag;}  
00055     void         setRunNb(Int_t run)           {runNb_=run;}
00056     void         setEventNb(Int_t evt);
00057     void         setPrintMode(Bool_t flag)     {transparency_=flag;}       
00058            
00059     
00060    //getter
00061     XANAEcalGeometry *getEcalGeom() {return ecalGeom_;}
00062     TObjArray   *getElecTrackArr()  {return elecTrackArray_;} 
00063     void         getEvent();
00064     Int_t        getEventNb() {return eventNb_;} 
00065     Int_t        getRunNb()   {return runNb_;}
00066     Double_t     getCutC()    {return enCutClus_;}
00067     Double_t     getCutT()    {return enCutTrak_;}
00068     void         getShortFileName();
00069     
00070     //Get next event from tree
00071     void Next();
00072     //get previous event from tree
00073     void Previous();
00074     
00075    // file 
00076     void         openFile();
00077    //filename from menu 
00078     void         selectFile();
00079    // filename from command line
00080     void         selectFile(TString *fname);    
00081     
00082           
00083   private :
00084     XANADisplay(){;}
00085     XANADisplay(const char *name,Int_t w,Int_t h,Int_t winid);
00086   
00087     static XANADisplay *fInstance;
00088     
00089   // file ,tree,event
00090     TTree                *cmsTree_;
00091     XANAEsdEvent         *event_;
00092     XANAEcalGeometry     *ecalGeom_; 
00093     Int_t                 eventNb_;
00094     Int_t                 runNb_;
00095     Int_t                 currentEvent_;
00096     Int_t                 previousEvent_;
00097     Int_t                 maxEntries_;
00098     TObjArray            *trackArray_;
00099     TObjArray            *clusterArray_;
00100     TObjArray            *elecTrackArray_;
00101     TObjArray            *hitArray_;
00102     
00103     TFile                *cmsFile_;
00104     char                 *fileName_;
00105     char                 *shortFileName_;
00106     
00107   
00108   // Canvas,view
00109     XANAPad      *fPad;
00110     TGeoManager  *fGeom;
00111     TGeoVolume   *fTop;
00112     Double_t      autoResize();
00113     void          convertBlack(TPad *pad);
00114     TCanvas      *clusterView_;
00115     
00116   // flags indicating drawing choices
00117     Bool_t          fRadial;
00118     Bool_t          fSide;
00119     Bool_t          fBothV;
00120     Bool_t          drawHit_;
00121     Bool_t          drawTrackHit_;
00122     Bool_t          drawTrack_;
00123     Bool_t          drawClus_;
00124     Bool_t          drawCaloHit_;
00125     Bool_t          drawElec_;
00126     Bool_t          ecalDet_;
00127     Double_t        enCutClus_;           
00128     Double_t        enCutTrak_;
00129     
00132     Bool_t          noSmooth_;
00133     Bool_t          redrawDet_;
00134     
00135   // Max size of graphic containers
00136     Int_t         maxTrack_;
00137     Int_t         maxClus_;
00138     Int_t         maxElec_;
00139     Bool_t        transparency_;
00140      
00141   // containers of graphic objects             
00142     TObjArray    *graphicRTracks_;
00143     TObjArray    *graphicSTracks_;
00145     TObjArray    *graphicRElecTracks_;
00146     TObjArray    *graphicSElecTracks_;
00148     TObjArray    *graphicRHits_;
00149     TObjArray    *graphicSHits_;
00151     TPolyMarker  *pms_;
00152     TPolyMarker  *pmr_;
00153     
00154     TObjArray    *graphicSClus_;
00155     TObjArray    *graphicRClus_;
00156      
00157     TObjArray    *ecalSDetector_;
00158     TObjArray    *ecalRDetector_;
00159     TH2F         *histoEnd1Hit_;
00160     TH2F         *histoEnd2Hit_;
00161     TH2F         *maskEndCap_;
00162     TH2F         *histoCaloHit_;
00163     TH2F         *clusHisto_; 
00164     
00165     void          BuildSimpleGeometry();
00166     void          buildEcalR(Double_t *rmax,Double_t rmin,UInt_t col);
00167     void          buildEcalS(Double_t *x,Double_t *y,UInt_t col);
00168     void          createHistos();
00169     void          loadClus();
00170     void          loadElectronHits();
00171     void          loadAllTrackHits();
00172     void          loadTrackHits();
00173     void          loadCaloHits();
00174     void          resetGraphicObjects();
00175   
00176   ClassDef(XANADisplay,0)     // Display graphic objects 
00177 };
00178 #endif

Generated on Tue May 10 10:01:24 2005 for XANADOO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002