Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

evd::PlaneView Class Reference

#include <PlaneView.h>

Inheritance diagram for evd::PlaneView:

evdb::Canvas evdb::Printable List of all members.

Public Member Functions

 PlaneView (TGMainFrame *mf)
 ~PlaneView ()
const char * Description () const
const char * PrintTag () const
void Draw (const char *opt="")
void DrawTrackCandidates ()
void DrawTracks ()
void DrawMC ()
void DrawMCHits ()
void DrawRawDigit ()
void DrawFilament (int use_avg_path)
void DrawPlaneClusters ()
void DrawShowers ()
void Draw3DShowers ()

Private Attributes

TPad * fXviewPad
TPad * fYviewPad
TH2F * fXviewHisto
TH2F * fYviewHisto
evdb::View2DfXview
evdb::View2DfYview
geo::GeometryfGeo
const PlaneViewOptionfOption
double zmin
double zmax
double xmin
double xmax
double ymin
double ymax

Constructor & Destructor Documentation

PlaneView::PlaneView TGMainFrame *  mf  ) 
 

Definition at line 42 of file PlaneView.cxx.

References edm::EventHandle::DAQ(), geo::Geometry::DetHalfHeight(), geo::Geometry::DetHalfWidth(), geo::Geometry::DetLength(), fGeo, fOption, fXview, fXviewHisto, fXviewPad, fYview, fYviewHisto, fYviewPad, edm::EventHandle::Header(), PlaneViewOption::Instance(), geo::Geometry::Instance(), and evdb::IoModule::Instance().

00042                                     : evdb::Canvas(mf) 
00043 {
00044 
00045   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00046   std::vector<const rawdata::DAQHeader*> header;
00047   short int det = rawdata::kFar;
00048   try{ evt.DAQ().Get("./",header); }
00049   catch(edm::Exception e){
00050     std::cerr << "Error retrieving daq header, while looking "<<
00051       "in PlaneView::PlaneView(), using default fardet geometry" << std::endl;
00052   }
00053   if(header.size() > 0) det = header[0]->DetId();
00054 
00055   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00056 
00057   evdb::Canvas::fCanvas->cd();
00058 
00059   fXviewPad = new TPad("fXviewPad","Xview",0.0,0.5,0.75,1.0);
00060   fXviewPad->Draw();
00061 
00062   fYviewPad = new TPad("fYviewPad","Yview",0.0,0.0,0.75,0.5);
00063   fYviewPad->Draw();
00064 
00065   fXviewPad->cd();
00066   fXviewHisto = new TH2F("fXviewHisto",";z (cm);x (cm)",
00067                          200,0.,fGeo->DetLength(),
00068                          32,-fGeo->DetHalfWidth(),fGeo->DetHalfWidth());
00069   fXviewHisto->Draw();
00070 
00071   fYviewPad->cd();
00072   fYviewHisto = new TH2F("fYviewHisto",";z (cm);y (cm)",
00073                          200,0.,fGeo->DetLength(),
00074                          32,-fGeo->DetHalfHeight(),fGeo->DetHalfHeight());
00075                          
00076   fYviewHisto->Draw();
00077 
00078   fXview = new evdb::View2D();
00079   fYview = new evdb::View2D();
00080 
00081   fOption = &PlaneViewOption::Instance();
00082 
00083 }

PlaneView::~PlaneView  ) 
 

Definition at line 87 of file PlaneView.cxx.

00087 { }


Member Function Documentation

const char* evd::PlaneView::Description  )  const [inline, virtual]
 

Give a medium length description of what the view holds to be printed. Examples: "Full view of experiment", "3D View", ...

Reimplemented from evdb::Canvas.

Definition at line 17 of file PlaneView.h.

00017 { return "Plane View"; }

void PlaneView::Draw const char *  opt = ""  )  [virtual]
 

Implements evdb::Canvas.

Definition at line 90 of file PlaneView.cxx.

References evdb::View2D::Clear(), evdb::View2D::Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), DrawTrackCandidates(), DrawTracks(), PlaneViewOption::fDraw3DShowers, PlaneViewOption::fDrawFilaments, PlaneViewOption::fDrawMCTruthHits, PlaneViewOption::fDrawMCTruthVectors, PlaneViewOption::fDrawPlaneClusters, PlaneViewOption::fDrawRawDigits, PlaneViewOption::fDrawShowers, PlaneViewOption::fDrawTrackCandidates, PlaneViewOption::fDrawTracks, fOption, fXview, fXviewHisto, fXviewPad, fYview, fYviewHisto, fYviewPad, xmax, xmin, ymax, ymin, zmax, and zmin.

00091 {
00092   fXview->Clear();
00093   fYview->Clear();
00094 
00095   zmin = 1e20, zmax = -1e20;
00096   xmin = 1e20, xmax = -1e20;
00097   ymin = 1e20, ymax = -1e20;
00098 
00099 
00100   if (fOption->fDrawMCTruthVectors)
00101     DrawMC();
00102   if (fOption->fDrawMCTruthHits)
00103     DrawMCHits();
00104   if (fOption->fDrawTracks)
00105     DrawTracks();
00106   if (fOption->fDrawTrackCandidates)
00107     DrawTrackCandidates();
00108   if (fOption->fDrawRawDigits)
00109     DrawRawDigit();
00110   if (fOption->fDrawFilaments)
00111     DrawFilament(fOption->fDrawFilaments!=2);
00112   if (fOption->fDrawPlaneClusters)
00113     DrawPlaneClusters();
00114   if(fOption->fDrawShowers)
00115     DrawShowers();
00116   if(fOption->fDraw3DShowers)
00117     Draw3DShowers();
00118                 
00119   // Force the x and y views to have the same vertical scale
00120   if (xmax-xmin > ymax-ymin) {
00121     double tmp = 0.5*((xmax-xmin)-(ymax-ymin));
00122     ymax += tmp;
00123     ymin -= tmp;
00124   }
00125   else {
00126     double tmp = 0.5*((ymax-ymin)-(xmax-xmin));
00127     xmax += tmp;
00128     xmin -= tmp;
00129   }
00130   xmin -= 25.0;  xmax += 25.0;
00131   ymin -= 25.0;  ymax += 25.0;
00132   zmin -= 25.0;  zmax += 25.0;
00133 
00134   fXviewHisto->GetXaxis()->SetRangeUser(zmin,zmax);
00135   fXviewHisto->GetYaxis()->SetRangeUser(xmin,xmax);
00136 
00137   fYviewHisto->GetXaxis()->SetRangeUser(zmin,zmax);
00138   fYviewHisto->GetYaxis()->SetRangeUser(ymin,ymax);
00139 
00140   //  std::cout << "Drawing X-view" << std::endl;
00141 
00142   fXviewPad->cd();
00143   fXviewHisto->Draw();
00144   fXview->Draw();
00145   
00146   //  std::cout << "Drawing Y-view" << std::endl;
00147   
00148   fYviewPad->cd();
00149   fYviewHisto->Draw();
00150   fYview->Draw();
00151     
00152   evdb::Canvas::fCanvas->Update();
00153 
00154 }

void PlaneView::Draw3DShowers  ) 
 

Definition at line 861 of file PlaneView.cxx.

References evdb::View2D::AddBox(), evdb::View2D::AddLine(), recobase::CellHit::Cell(), edm::EventHandle::DAQ(), fGeo, fXview, fYview, recobase::ShowerBase::GetCells(), recobase::ShowerBase::GetEndT(), recobase::ShowerBase::GetEndZ(), recobase::ShowerBase::GetEnergy(), recobase::ShowerBase::GetLength(), recobase::ShowerBase::GetPlaneView(), recobase::ShowerBase::GetVtxT(), recobase::ShowerBase::GetVtxZ(), edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), recobase::CellHit::Plane(), geo::Geometry::Plane(), edm::EventHandle::Reco(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00862 {
00863   printf("Drawing Reco 3D SubShowers\n");
00864   typedef std::map<UInt_t,std::multimap<Double_t,const recobase::CellHit*> > CellMap_t; 
00865 
00866   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00867    
00868   std::vector<const rawdata::DAQHeader*> header;
00869   short int det = rawdata::kFar;
00870   try{ evt.DAQ().Get("./",header); }
00871   catch(edm::Exception e){
00872     std::cerr << "Error retrieving daq header, while looking "<<
00873       "in PlaneView::Draw3DShowers(), using default fardet geometry" << std::endl;
00874   }
00875   if(header.size() > 0) det = header[0]->DetId();
00876   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00877 
00878   std::vector<const recobase::ShowerBase3D*> shower3D(0);
00879   try {evt.Reco().Get("./Final3DShw",shower3D);//Final or Segment 
00880   }
00881   catch (edm::Exception e) { }
00882   
00883   int jx=-1; 
00884   int jy=-1;
00885    
00886   for(unsigned int i=0;i<shower3D.size();i++)
00887     { 
00888 
00889   
00890       const recobase::ShowerBase *showerX = shower3D[i]->GetMatchX();
00891       const recobase::ShowerBase *showerY = shower3D[i]->GetMatchY();
00892    
00893       jx=jx+1;
00894       TLine& lx = fXview->AddLine(showerX->GetVtxZ(),showerX->GetVtxT(), showerX->GetEndZ(),  showerX->GetEndT());
00895       lx.SetLineColor(jx+2);
00896       lx.SetLineWidth(2);
00897       printf("x Shower (%f %f , %f %f)\n", showerX->GetVtxZ(), showerX->GetVtxT(),  showerX->GetEndZ(),  showerX->GetEndT());
00898 
00899       jy=jy+1;   
00900       TLine& ly = fYview->AddLine(showerY->GetVtxZ(),showerY->GetVtxT(),  showerY->GetEndZ(),  showerY->GetEndT());
00901       ly.SetLineColor(jy+2);
00902       ly.SetLineWidth(2);
00903       printf("Y Shower (%f %f , %f %f)\n", showerY->GetVtxZ()  ,showerY->GetVtxT(),  showerY->GetEndZ(),  showerY->GetEndT());
00904   
00905       // NOW DISPLAY THE 2D SHOWER HITS WITH DIFFERENT COLORS
00906 
00907       recobase::ShowerBase* showergx                  = new recobase::ShowerBase(*showerX);
00908       recobase::ShowerBase* showergy                  = new recobase::ShowerBase(*showerY);
00909   
00910       std::multimap<Double_t,recobase::CellHit*> cells;
00911       std::multimap<Double_t,recobase::CellHit*>::const_iterator citer;
00912             
00913       const recobase::ShowerBase::CellMap_t& planesx  = showergx->GetCells();    
00914       recobase::ShowerBase::CellMap_t::const_iterator piterx;
00915       for (piterx=planesx.begin();piterx!= planesx.end();piterx++)
00916         {
00917           cells=piterx->second;
00918             
00919           const recobase::CellHit* rc;
00920             
00921           for(citer=cells.begin();citer!=cells.end();citer++)
00922             {
00923               rc = citer->second;
00924             
00925               double pos[3];
00926               fGeo->Plane(rc->Plane()).Cell(rc->Cell()).GetCenter(pos);
00927               double w= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfW();
00928               double d= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfD();    
00929               TBox& bx = fXview->AddBox(pos[2]-d,pos[0]-w,pos[2]+d,pos[0]+w);
00930               if(pos[0]<xmin) xmin=pos[0];
00931               if(pos[0]>xmax) xmax=pos[0];
00932               bx.SetFillColor(jx+2);
00933             
00934               if(pos[2]<zmin) zmin=pos[2];
00935               if(pos[2]>zmax) zmax=pos[2];
00936             }
00937          
00938         }
00939              
00940       // PRINT SOME ADDITION INFO
00941  
00942       cout << " Shower View   "    <<  showerX->GetPlaneView() <<  endl;
00943       cout << " Shower Energy "    <<  showerX->GetEnergy()    << " Length " << showerX->GetLength() << endl;  
00944 
00945       // Y CELLS
00946  
00947       const recobase::ShowerBase::CellMap_t& planesy  = showergy->GetCells();    
00948       recobase::ShowerBase::CellMap_t::const_iterator pitery;
00949 
00950       for (pitery=planesy.begin();pitery!= planesy.end();pitery++)
00951         {
00952           cells=pitery->second;
00953             
00954           const recobase::CellHit* rc;
00955             
00956           for(citer=cells.begin();citer!=cells.end();citer++)
00957             {
00958               rc = citer->second;
00959             
00960               double pos[3];
00961               fGeo->Plane(rc->Plane()).Cell(rc->Cell()).GetCenter(pos);
00962               double w= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfW();
00963               double d= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfD();                 
00964 
00965               TBox& by = fYview->AddBox(pos[2]-d,pos[1]-w,pos[2]+d,pos[1]+w);
00966               if(pos[1]<ymin) ymin=pos[1];
00967               if(pos[1]>ymax) ymax=pos[1];
00968               by.SetFillColor(jy+2);
00969                         
00970               if(pos[2]<zmin) zmin=pos[2];
00971               if(pos[2]>zmax) zmax=pos[2];
00972             }
00973          
00974         }
00975              
00976       // PRINT SOME ADDITION INFO
00977  
00978       cout << " Shower View   "    <<  showerY->GetPlaneView() <<  endl;
00979       cout << " Shower Energy "    <<  showerY->GetEnergy()    << " Length " << showerY->GetLength() << endl;
00980    
00981 
00982     }
00983  
00984 }

void PlaneView::DrawFilament int  use_avg_path  ) 
 

Definition at line 480 of file PlaneView.cxx.

References evdb::View2D::AddPolyLine(), fXview, fYview, evdb::IoModule::Instance(), edm::EventHandle::Reco(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00481 {
00482 #ifdef DRAW_FILAMENT
00483   printf("Drawing Filaments\n");
00484 
00485 
00486 
00487   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00488   std::vector<const spider::Filament*> fillaments(0);
00489   
00490 
00491 
00492   try {
00493     evt.Reco().Get("./",fillaments);
00494   }
00495   catch (edm::Exception e) { }
00496   
00497 
00498 
00499 
00500 
00501   for(unsigned int i=0;i<fillaments.size();i++)
00502     {
00503       //FilamentView::DrawFilaments(fillaments[i],fXview,fYview,xmin,xmax,ymin,ymax,zmin,zmax);
00504       //}
00505 
00506       /*
00507         float bp = fillaments[i]->begplane;
00508         float ep = fillaments[i]->endplane;
00509         float bc = fillaments[i]->begcell;
00510         float ec = fillaments[i]->endcell;
00511         
00512         double lowpos[3],highpos[3];
00513       */
00514       
00515       float bp = fillaments[i]->fitbegz;
00516       float ep = fillaments[i]->fitendz;
00517       float bc = fillaments[i]->fitbegt;
00518       float ec = fillaments[i]->fitendt;
00519       /*
00520         printf("%d want geo for (%f %f , %f %f)\n",fillaments[i]->depth,bp,bc,ep,ec);
00521         
00522         try{
00523         fGeo->Plane((int)bp).Cell((int)bc).GetCenter(lowpos);
00524         fGeo->Plane((int)ep).Cell((int)ec).GetCenter(highpos);
00525         }catch(...){printf("geo error...\n");continue;}
00526       */
00527       
00528       if(fillaments[i]->fXY==geo::kX) {
00529         printf("%d x fillament (%f %f , %f %f)\n",fillaments[i]->depth,bp,bc,ep,ec);
00530         /*
00531           bp=lowpos[2];
00532           ep=highpos[2];
00533           bc=lowpos[0];
00534           ec=highpos[0];
00535         */
00536         //TLine& l =fXview->AddLine(bp,bc,ep,ec);
00538         //l.SetLineColor(fillaments[i]->depth==0?2:3);
00539         //l.SetLineStyle(1);
00540         //l.SetLineWidth(2);
00541 
00542         
00543         zmax=bp>zmax?bp:zmax;
00544         zmax=ep>zmax?ep:zmax;
00545         xmax=bc>xmax?bc:xmax;
00546         xmax=ec>xmax?ec:xmax;
00547         
00548         zmin=bp<zmin?bp:zmin;
00549         zmin=ep<zmin?ep:zmin;
00550         xmin=bc<xmin?bc:xmin;
00551         xmin=ec<xmin?ec:xmin;
00552         
00553         
00554         
00555         
00556         TPolyLine& ll = fXview->AddPolyLine(fillaments[i]->hitt.size(),fillaments[i]->depth==0?2:3,fillaments[i]->depth==0?2:1,1);
00557         
00558         Double_t az[fillaments[i]->hitt.size()];
00559         Double_t at[fillaments[i]->hitt.size()];
00560         
00561         for(int ji=0;ji<fillaments[i]->hitt.size();ji++)
00562           {
00563             az[ji]=fillaments[i]->hitz.at(ji);
00564             at[ji]=fillaments[i]->hitt.at(ji);
00565             
00566           }
00567         
00568         if(use_avg_path==1)
00569           {
00570             Int_t cur_z=0;
00571             for(int ji=0;ji<fillaments[i]->hitt.size();ji++)
00572               {
00573                 Double_t avg_t=0;
00574                 Int_t tcnt=0;
00575                 Double_t last_z=az[ji];
00576                 
00577                 for(int jji=ji;jji<fillaments[i]->hitt.size();jji++)
00578                   {
00579                     if(last_z!=az[jji])
00580                       {
00581                         ji=jji-1;
00582                         break;
00583                       }
00584                     
00585                     tcnt++;
00586                     avg_t+=at[jji];
00587                   }
00588                 
00589                 avg_t/=tcnt;
00590                 az[cur_z]=last_z;
00591                 at[cur_z]=avg_t;
00592                 cur_z++;
00593               }
00594             
00595             ll.SetPolyLine(cur_z,az,at);
00596             
00597           }
00598         else
00599           {
00600             ll.SetPolyLine(fillaments[i]->hitt.size(),az,at);
00601           }
00602         
00603         
00604       }else{
00605         printf("%d y fillament (%f %f , %f %f)\n",fillaments[i]->depth,bp,bc,ep,ec);
00606         /*
00607           bp=lowpos[2];
00608           ep=highpos[2];
00609           bc=lowpos[1];
00610           ec=highpos[1];
00611         */
00612         //TLine& l = fYview->AddLine(bp,bc,ep,ec);
00613         
00615         //l.SetLineColor(fillaments[i]->depth==0?2:3);
00616         //l.SetLineStyle(1);
00617         //l.SetLineWidth(2);
00618         
00619         
00620         zmax=bp>zmax?bp:zmax;
00621         zmax=ep>zmax?ep:zmax;
00622         ymax=bc>ymax?bc:ymax;
00623         ymax=ec>ymax?ec:ymax;
00624         
00625         zmin=bp<zmin?bp:zmin;
00626         zmin=ep<zmin?ep:zmin;
00627         ymin=bc<ymin?bc:ymin;
00628         ymin=ec<ymin?ec:ymin;
00629         
00630         
00631         
00632         TPolyLine& ll = fYview->AddPolyLine(fillaments[i]->hitt.size(),fillaments[i]->depth==0?2:3,fillaments[i]->depth==0?2:1,1);
00633         
00634         Double_t az[fillaments[i]->hitt.size()];
00635         Double_t at[fillaments[i]->hitt.size()];
00636         
00637         for(int ji=0;ji<fillaments[i]->hitt.size();ji++)
00638           {
00639             az[ji]=fillaments[i]->hitz.at(ji);
00640             at[ji]=fillaments[i]->hitt.at(ji);
00641             
00642           }
00643         
00644         
00645         if(use_avg_path==1)
00646           {
00647             Int_t cur_z=0;
00648             for(int ji=0;ji<fillaments[i]->hitt.size();ji++)
00649               {
00650                 Double_t avg_t=0;
00651                 Int_t tcnt=0;
00652                 Double_t last_z=az[ji];
00653                 
00654                 for(int jji=ji;jji<fillaments[i]->hitt.size();jji++)
00655                   {
00656                     if(last_z!=az[jji])
00657                       {
00658                         ji=jji-1;
00659                         break;
00660                       }
00661                     
00662                     tcnt++;
00663                     avg_t+=at[jji];
00664                   }
00665                 
00666                 avg_t/=tcnt;
00667                 az[cur_z]=last_z;
00668                 at[cur_z]=avg_t;
00669                 cur_z++;
00670               }
00671             ll.SetPolyLine(cur_z,az,at);
00672             
00673           }else{
00674           ll.SetPolyLine(fillaments[i]->hitt.size(),az,at);
00675         }
00676         
00677         
00678       }
00679       
00680       
00681       
00682     }
00683 #endif
00684 }

void PlaneView::DrawMC  ) 
 

Definition at line 278 of file PlaneView.cxx.

References evdb::View2D::AddLine(), edm::EventHandle::DetSim(), evd::Style::FromPDG(), fXview, fYview, evdb::IoModule::Instance(), edm::EventHandle::MC(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00279 {
00280   printf("Drawing MC\n");
00281   
00282   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00283 
00284   std::vector<const sim::MCTruth*> mctruth;
00285   try { evt.MC().Get(".",mctruth); }
00286   catch (edm::Exception e) { }
00287 
00288   for (int i=0; i<mctruth[0]->NParticles(); ++i) {
00289     const TParticle& p = mctruth[0]->GetParticle(i);
00290     
00291     double xyz0[3];
00292     xyz0[0] = p.Vx();
00293     xyz0[1] = p.Vy();
00294     xyz0[2] = p.Vz();
00295     
00296     double xyz1[3];
00297     // Incident particles
00298     if (p.GetStatusCode()==0) {
00299       xyz1[0] = xyz0[0] - p.Px()/2E-3;
00300       xyz1[1] = xyz0[1] - p.Py()/2E-3;
00301       xyz1[2] = xyz0[2] - p.Pz()/2E-3;
00302     }
00303     // Particles to be tracked
00304     else if (p.GetStatusCode()==1) {
00305       xyz1[0] = xyz0[0] + p.Px()/2E-3;
00306       xyz1[1] = xyz0[1] + p.Py()/2E-3;
00307       xyz1[2] = xyz0[2] + p.Pz()/2E-3;
00308     }
00309     // Intermediate states
00310     else continue;
00311     
00312     // Find limits of display
00313     if (xyz0[0]<xmin) xmin = xyz0[0];
00314     if (xyz1[0]<xmin) xmin = xyz1[0];
00315     if (xyz0[0]>xmax) xmax = xyz0[0];
00316     if (xyz1[0]>xmax) xmax = xyz1[0];
00317     if (xyz0[1]<ymin) ymin = xyz0[1];
00318     if (xyz1[1]<ymin) ymin = xyz1[1];
00319     if (xyz0[1]>ymax) ymax = xyz0[1];
00320     if (xyz1[1]>ymax) ymax = xyz1[1];
00321     if (xyz0[2]<zmin) zmin = xyz0[2];
00322     if (xyz1[2]<zmin) zmin = xyz1[2];
00323     if (xyz0[2]>zmax) zmax = xyz0[2];
00324     if (xyz1[2]>zmax) zmax = xyz1[2];
00325     
00326     TLine& lx = fXview->AddLine(xyz0[2],xyz0[0],xyz1[2],xyz1[0]);
00327     TLine& ly = fYview->AddLine(xyz0[2],xyz0[1],xyz1[2],xyz1[1]);
00328 
00329     Style::FromPDG(lx,p.GetPdgCode());
00330     Style::FromPDG(ly,p.GetPdgCode());
00331   }
00332   
00333   std::vector<const sim::ParticleList*> particleList;
00334   try {
00335     evt.DetSim().Get(".",particleList);
00336   }
00337   catch (edm::Exception e) { }
00338   
00339   std::cerr << "Interactions in this record=" 
00340             << particleList.size()<<std::endl;
00341   
00342   for (unsigned int iev=0; iev<particleList.size(); iev++) {
00343     std::vector<sim::Particle> particles=particleList[iev]->fParticles;
00344     std::cerr <<"Event "<<iev<<" has "<<particles.size()
00345               <<" particles."<<std::endl;
00346     for (unsigned int i=0; i<particles.size(); ++i) {
00347       std::cerr << particles[i].PdgCode()<<" ";
00348       if ( (i>0 && i%10==0) || i==particles.size()-1) std::cerr << std::endl;
00349     }
00350   }
00351 
00352 }

void PlaneView::DrawMCHits  ) 
 

Definition at line 354 of file PlaneView.cxx.

References evdb::View2D::AddBox(), edm::EventHandle::DAQ(), edm::EventHandle::DetSim(), sim::FLSHit::fCellId, sim::FLSHit::fEdep, fGeo, sim::FLSHit::fPlaneId, sim::FLSHit::fT, fXview, fYview, edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), evd::kColdToHot, evd::kCustom, evd::kLinear, geo::Geometry::Plane(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00355 {
00356   printf("Drawing MCHits\n");
00357   cout << "PlaneView::DrawMCHits\n";
00358   
00359   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00360   
00361   std::vector<const rawdata::DAQHeader*> header;
00362   short int det = rawdata::kFar;
00363   try{ evt.DAQ().Get("./",header); }
00364   catch(edm::Exception e){
00365     std::cerr << "Error retrieving daq header, while looking "<<
00366       "in PlaneView::DrawMCHits(), using default fardet geometry" << std::endl;
00367   }
00368   if(header.size() > 0) det = header[0]->DetId();
00369   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00370   
00371   std::vector<const sim::FLSHitList*> hitlist;
00372   try { evt.DetSim().Get(".",hitlist); }
00373   catch (edm::Exception e) { }
00374   
00375   for (unsigned int i=0; i<hitlist.size(); ++i) {
00376     
00377     for (unsigned int j=0; j< hitlist[i]->fHits.size(); ++j) {
00378       // Color scale for energy deposition ranging from 0 to 20 MeV
00379       static evd::ColorScale edepColorScale(0.0,20.0E-3,kColdToHot);
00380       static evd::ColorScale timeColorScale(-10.0E-6,10.0E6,
00381                                             kCustom,kLinear,
00382                                             100,-300.0,240.0,0.2,0.8);
00383 
00384       // Unpack hit[i,j] once to avoid lots of array look-ups
00385       const sim::FLSHit& hit = hitlist[i]->fHits[j];
00386       
00387       // Skip tiny hits
00388       if(hit.fEdep < 1.E-4) continue;
00389 
00390       double pos[3];
00391       fGeo->Plane(hit.fPlaneId).Cell(hit.fCellId).GetCenter(pos);
00392       double w= fGeo->Plane(hit.fPlaneId).Cell(hit.fCellId).HalfW();
00393       double d= fGeo->Plane(hit.fPlaneId).Cell(hit.fCellId).HalfD();  
00394 
00395       int fMCHitColorOption = 1;
00396       if(fGeo->Plane(hit.fPlaneId).View()==geo::kX) {
00397         TBox& bx = fXview->AddBox(pos[2]-d,pos[0]-w,pos[2]+d,pos[0]+w);
00398         if(pos[0]<xmin) xmin=pos[0];
00399         if(pos[0]>xmax) xmax=pos[0];
00400         if (fMCHitColorOption==0) {
00401           bx.SetFillColor(timeColorScale(hit.fT));
00402         }
00403         else {
00404           bx.SetFillColor(edepColorScale(hit.fEdep));     
00405         }
00406       }
00407       else {
00408         TBox& by = fYview->AddBox(pos[2]-d,pos[1]-w,pos[2]+d,pos[1]+w);
00409         if(pos[1]<ymin) ymin=pos[1];
00410         if(pos[1]>ymax) ymax=pos[1];
00411         if (fMCHitColorOption==0) {
00412           by.SetFillColor(timeColorScale(hit.fT));
00413         }
00414         else {
00415           by.SetFillColor(edepColorScale(hit.fEdep));     
00416         }
00417       }
00418         
00419       if(pos[2]<zmin) zmin=pos[2];
00420       if(pos[2]>zmax) zmax=pos[2];
00421     }    
00422   }
00423 }

void PlaneView::DrawPlaneClusters  ) 
 

Definition at line 687 of file PlaneView.cxx.

References evdb::View2D::AddBox(), edm::EventHandle::DAQ(), fGeo, fXview, fYview, edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), geo::Geometry::Plane(), edm::EventHandle::Reco(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00688 {
00689 
00690   printf("Drawing PlaneClusters\n");
00691 
00692   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00693   
00694   std::vector<const rawdata::DAQHeader*> header;
00695   short int det = rawdata::kFar;
00696   try{ evt.DAQ().Get("./",header); }
00697   catch(edm::Exception e){
00698     std::cerr << "Error retrieving daq header, while looking "<<
00699       "in PlaneView::DrawPlaneClusters(), using default fardet geometry" << std::endl;
00700   }
00701   if(header.size() > 0) det = header[0]->DetId();
00702   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00703   
00704   
00705   std::vector<const recobase::PlaneCluster*> planecluster(0);
00706   
00707  
00708  
00709   try { evt.Reco().Get("./",planecluster);
00710   }
00711   catch (edm::Exception e) { }
00712  
00713 
00714   for (unsigned int i=0; i<planecluster.size(); ++i) {
00715    
00716     unsigned int lowcell=planecluster[i]->fCellHit[0]->Cell();
00717     unsigned int highcell=planecluster[i]->fCellHit[planecluster[i]->fCellHit.size()-1]->Cell();
00718     unsigned int plane = planecluster[i]->Plane();   
00719     double lowpos[3],highpos[3];
00720    
00721     fGeo->Plane(plane).Cell(lowcell).GetCenter(lowpos);
00722     fGeo->Plane(plane).Cell(highcell).GetCenter(highpos);
00723    
00724     float fT  = (float)(planecluster[i]->Tpos());
00725     float fZ = (float)(planecluster[i]->Zpos());
00726    
00727    
00728     float fdT  = (float)(planecluster[i]->dT());
00729     float fdZ = (float)(planecluster[i]->dZ());
00730     
00731     //    std::cout << i << " " << fCell << " " << fPlane << std::endl;
00732     
00733     if(fGeo->Plane(planecluster[i]->fPlane).View()==geo::kX) {
00734       TBox& bx = fXview->AddBox(fZ-fdT,lowpos[0],fZ+fdZ,highpos[0]);
00735       if(fT<xmin) xmin=fT;
00736       if(fT>xmax) xmax=fT;
00737       bx.SetFillColor(2);
00738       //      Style::FromPDG(bx,2);
00739     } else {
00740       TBox& by = fYview->AddBox(fZ-fdZ,lowpos[1],fZ+fdZ,highpos[1]);
00741       if(fT<ymin) ymin=fT;
00742       if(fT>ymax) ymax=fT;
00743       by.SetFillColor(2);
00744       //      Style::FromPDG(by,2);
00745     }
00746     
00747     if(fZ<zmin) zmin=fZ;
00748     if(fZ>zmax) zmax=fZ;
00749     
00750   }
00751 }

void PlaneView::DrawRawDigit  ) 
 

Definition at line 425 of file PlaneView.cxx.

References evdb::View2D::AddBox(), edm::EventHandle::DAQ(), fGeo, fXview, fYview, edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), geo::Geometry::Plane(), edm::EventHandle::Raw(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00426 {
00427 
00428   printf("Drawing RawDigits\n");
00429   
00430   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00431    
00432   std::vector<const rawdata::DAQHeader*> header;
00433   short int det = rawdata::kFar;
00434   try{ evt.DAQ().Get("./",header); }
00435   catch(edm::Exception e){
00436     std::cerr << "Error retrieving daq header, while looking "<<
00437       "in PlaneView::DrawRawDigit(), using default fardet geometry" << std::endl;
00438   }
00439   if(header.size() > 0) det = header[0]->DetId();
00440 
00441   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00442 
00443   std::vector<const rawdata::RawDigit*> rawdigit;
00444   try { evt.Raw().Get(".",rawdigit); }
00445   catch (edm::Exception e) { }
00446   for (unsigned int i=0; i<rawdigit.size(); ++i) {
00447     
00448     //float fCell  = (float)(rawdigit[i]->GetCell());
00449     //float fPlane = (float)(rawdigit[i]->GetPlane());
00450 
00451     //    std::cout << i << " " << fCell << " " << fPlane << std::endl;
00452 
00453     double pos[3];
00454     fGeo->Plane(rawdigit[i]->GetPlane()).Cell(rawdigit[i]->GetCell()).GetCenter(pos);
00455     double w= fGeo->Plane(rawdigit[i]->GetPlane()).Cell(rawdigit[i]->GetCell()).HalfW();
00456     double d= fGeo->Plane(rawdigit[i]->GetPlane()).Cell(rawdigit[i]->GetCell()).HalfD();        
00457 
00458     if(fGeo->Plane(rawdigit[i]->GetPlane()).View()==geo::kX) {
00459       TBox& bx = fXview->AddBox(pos[2]-d,pos[0]-w,pos[2]+d,pos[0]+w);
00460       if(pos[0]<xmin) xmin=pos[0];
00461       if(pos[0]>xmax) xmax=pos[0];
00462       bx.SetFillColor(1);
00463       //      Style::FromPDG(bx,2);
00464     } else {
00465       TBox& by = fYview->AddBox(pos[2]-d,pos[1]-w,pos[2]+d,pos[1]+w);
00466       if(pos[1]<ymin) ymin=pos[1];
00467       if(pos[1]>ymax) ymax=pos[1];
00468       by.SetFillColor(1);
00469       //      Style::FromPDG(by,2);
00470     }
00471 
00472     if(pos[2]<zmin) zmin=pos[2];
00473     if(pos[2]>zmax) zmax=pos[2];
00474 
00475   }
00476   
00477 }

void PlaneView::DrawShowers  ) 
 

Definition at line 754 of file PlaneView.cxx.

References evdb::View2D::AddBox(), evdb::View2D::AddLine(), recobase::CellHit::Cell(), edm::EventHandle::DAQ(), fGeo, fXview, fYview, recobase::ShowerBase::GetCells(), edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), recobase::CellHit::Plane(), geo::Geometry::Plane(), edm::EventHandle::Reco(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00755 {
00756   printf("Drawing Reco SubShowers\n");
00757   typedef std::map<UInt_t,std::multimap<Double_t,const recobase::CellHit*> > CellMap_t; 
00758 
00759   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00760    
00761   std::vector<const rawdata::DAQHeader*> header;
00762   short int det = rawdata::kFar;
00763   try{ evt.DAQ().Get("./",header); }
00764   catch(edm::Exception e){
00765     std::cerr << "Error retrieving daq header, while looking "<<
00766       "in PlaneView::Showers(), using default fardet geometry" << std::endl;
00767   }
00768   if(header.size() > 0) det = header[0]->DetId();
00769   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00770 
00771   std::vector<const recobase::ShowerBase*> shower(0);
00772   try {evt.Reco().Get("./Final2DShw",shower);//Final or Segment 
00773   }
00774   catch (edm::Exception e) { }
00775   
00776   int jx=-1; 
00777   int jy=-1;
00778  
00779   Double_t endz;
00780   Double_t endt;
00781   
00782   for(unsigned int i=0;i<shower.size();i++)
00783     { 
00784 
00785       if(shower[i]->GetNCell()>5){ // Draw Only Showers with > 5 Cells
00786     
00787         Double_t slope     = shower[i]->GetSlope(); 
00788         Double_t intercept = shower[i]->GetTMax();
00789    
00790         endz = shower[i]->GetVtxZ() + (shower[i]->GetEndZ()-shower[i]->GetVtxZ())/2.;
00791         endt = intercept+slope*(endz-shower[i]->GetZMax());
00792    
00793         if(shower[i]->GetPlaneView()==1)    {
00794      
00795           jx=jx+1;
00796           TLine& lx = fXview->AddLine(shower[i]->GetVtxZ(),shower[i]->GetVtxT(),  shower[i]->GetEndZ(),  shower[i]->GetEndT());
00797           //    TLine& lx = fXview->AddLine(shower[i]->GetVtxZ(),shower[i]->GetVtxT(), endz, endt);
00798           lx.SetLineWidth(2);
00799           lx.SetLineColor(jx+2);
00800           printf("x Shower (%f %f , %f %f)\n", shower[i]->GetVtxZ(), shower[i]->GetVtxT(),  shower[i]->GetEndZ(),  shower[i]->GetEndT());
00801         }
00802         else if(shower[i]->GetPlaneView()==2) {  
00803           jy=jy+1;   
00804           TLine& ly = fYview->AddLine(shower[i]->GetVtxZ(),shower[i]->GetVtxT(),  shower[i]->GetEndZ(),  shower[i]->GetEndT());
00805           ly.SetLineWidth(2);
00806           ly.SetLineColor(jy+2);
00807           printf("Y Shower (%f %f , %f %f)\n", shower[i]->GetVtxZ()  ,shower[i]->GetVtxT(),  shower[i]->GetEndZ(),  shower[i]->GetEndT());
00808         }
00809         // NOW DISPLAY THE 2D SHOWER HITS WITH DIFFERENT COLORS
00810 
00811         recobase::ShowerBase* showerg                  = new recobase::ShowerBase(*shower[i]);
00812         const recobase::ShowerBase::CellMap_t& planes  = showerg->GetCells();    
00813         recobase::ShowerBase::CellMap_t::const_iterator piter;
00814         std::multimap<Double_t,recobase::CellHit*> cells;
00815         std::multimap<Double_t,recobase::CellHit*>::const_iterator citer;
00816        
00817         for (piter=planes.begin();piter!= planes.end();piter++)
00818           {
00819             cells=piter->second;
00820             
00821             const recobase::CellHit* rc;
00822             
00823             for(citer=cells.begin();citer!=cells.end();citer++)
00824               {
00825                 rc = citer->second;
00826             
00827                 double pos[3];
00828                 fGeo->Plane(rc->Plane()).Cell(rc->Cell()).GetCenter(pos);
00829                 double w= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfW();
00830                 double d= fGeo->Plane(rc->Plane()).Cell(rc->Cell()).HalfD();    
00831                 if(shower[i]->GetPlaneView()==1)     {
00832                   TBox& bx = fXview->AddBox(pos[2]-d,pos[0]-w,pos[2]+d,pos[0]+w);
00833                   if(pos[0]<xmin) xmin=pos[0];
00834                   if(pos[0]>xmax) xmax=pos[0];
00835                   bx.SetFillColor(jx+2);
00836                 }  
00837                 else if(shower[i]->GetPlaneView()==2){
00838                   TBox& by = fYview->AddBox(pos[2]-d,pos[1]-w,pos[2]+d,pos[1]+w);
00839                   if(pos[1]<ymin) ymin=pos[1];
00840                   if(pos[1]>ymax) ymax=pos[1];
00841                   by.SetFillColor(jy+2);
00842                 }  
00843            
00844                 if(pos[2]<zmin) zmin=pos[2];
00845                 if(pos[2]>zmax) zmax=pos[2];
00846               }
00847          
00848           }
00849              
00850         // PRINT SOME ADDITION INFO
00851  
00852         cout << " Shower View "    <<  shower[i]->GetPlaneView() <<  endl;
00853         cout << " Shower Energy "  <<  shower[i]->GetEnergy()    << " Length " << shower[i]->GetLength() << endl;
00854    
00855       }
00856 
00857     }
00858  
00859 }

void PlaneView::DrawTrackCandidates  ) 
 

Definition at line 156 of file PlaneView.cxx.

References evdb::View2D::AddBox(), evdb::View2D::AddLine(), edm::EventHandle::DAQ(), fGeo, fOption, PlaneViewOption::fTrackRecoName, fXview, fYview, edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), geo::Geometry::Plane(), edm::EventHandle::Reco(), xmax, xmin, ymax, ymin, zmax, and zmin.

Referenced by Draw().

00157 {
00158   printf("Drawing Track Candidates\n");
00159 
00160   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00161   
00162   std::vector<const rawdata::DAQHeader*> header;
00163   short int det = rawdata::kFar;
00164   try{ evt.DAQ().Get("./",header); }
00165   catch(edm::Exception e){
00166     std::cerr << "Error retrieving daq header, while looking "<<
00167       "in PlaneView::DrawTrackCandidates(), using default fardet geometry" << std::endl;
00168   }
00169   if(header.size() > 0) det = header[0]->DetId();
00170   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00171   
00172   std::vector<const recobase::PlaneCluster*> planecluster(0);
00173   
00174   std::vector<const recobase::TrackBase*> track(0);
00175   
00176   try { evt.Reco().Get("./",planecluster);
00177   }
00178   catch (edm::Exception e) { }
00179 
00180   std::string dir = "./"+fOption->fTrackRecoName+"Candidates";
00181   try {evt.Reco().Get("./Segment",track);//Final or Segment 
00182   }
00183   catch (edm::Exception e) { }
00184   
00185   
00186   for(unsigned int i=0;i<track.size();i++)
00187     {
00188       if(track[i]->XY()==geo::kX) {
00189         fXview->AddLine(track[i]->StartZ(),track[i]->StartT(geo::kX), track[i]->EndZ(), track[i]->EndT(geo::kX));
00190         printf("x track (%f %f , %f %f)\n",track[i]->StartZ(),track[i]->StartT(geo::kX), track[i]->EndZ(), track[i]->EndT(geo::kX));
00191       }else{
00192         printf("y track (%f %f , %f %f)\n",track[i]->StartZ(),track[i]->StartT(geo::kY), track[i]->EndZ(), track[i]->EndT(geo::kY));
00193         fYview->AddLine(track[i]->StartZ(),track[i]->StartT(geo::kY), track[i]->EndZ(), track[i]->EndT(geo::kY));
00194       }
00195     }
00196   
00197   for (unsigned int i=0; i<planecluster.size(); ++i) {
00198     
00199     unsigned int lowcell=planecluster[i]->fCellHit[0]->Cell();
00200     unsigned int highcell=planecluster[i]->fCellHit[planecluster[i]->fCellHit.size()-1]->Cell();
00201     unsigned int plane = planecluster[i]->Plane();   
00202     double lowpos[3],highpos[3];
00203     
00204     fGeo->Plane(plane).Cell(lowcell).GetCenter(lowpos);
00205     fGeo->Plane(plane).Cell(highcell).GetCenter(highpos);
00206     
00207     float fT  = (float)(planecluster[i]->Tpos());
00208     float fZ = (float)(planecluster[i]->Zpos());
00209     
00210     float fdT  = (float)(planecluster[i]->dT());
00211     float fdZ = (float)(planecluster[i]->dZ());
00212 
00213     //    std::cout << i << " " << fCell << " " << fPlane << std::endl;
00214 
00215     if(fGeo->Plane(planecluster[i]->fPlane).View()==geo::kX) {
00216       TBox& bx = fXview->AddBox(fZ-fdT,lowpos[0],fZ+fdZ,highpos[0]);
00217       if(fT<xmin) xmin=fT;
00218       if(fT>xmax) xmax=fT;
00219       bx.SetFillColor(2);
00220       //      Style::FromPDG(bx,2);
00221     } else {
00222       TBox& by = fYview->AddBox(fZ-fdZ,lowpos[1],fZ+fdZ,highpos[1]);
00223       if(fT<ymin) ymin=fT;
00224       if(fT>ymax) ymax=fT;
00225       by.SetFillColor(2);
00226       //      Style::FromPDG(by,2);
00227     }
00228     
00229     if(fZ<zmin) zmin=fZ;
00230     if(fZ>zmax) zmax=fZ;
00231     
00232   }
00233  
00234 }

void PlaneView::DrawTracks  ) 
 

Definition at line 236 of file PlaneView.cxx.

References evdb::View2D::AddLine(), edm::EventHandle::DAQ(), fGeo, fOption, PlaneViewOption::fTrackRecoName, fXview, fYview, edm::EventHandle::Header(), geo::Geometry::Instance(), evdb::IoModule::Instance(), and edm::EventHandle::Reco().

Referenced by Draw().

00237 {
00238   printf("Drawing Tracks\n");
00239 
00240   edm::EventHandle& evt = evdb::IoModule::Instance()->GetEvent();
00241   
00242   std::vector<const rawdata::DAQHeader*> header;
00243   short int det = rawdata::kFar;
00244   try{ evt.DAQ().Get("./",header); }
00245   catch(edm::Exception e){
00246     std::cerr << "Error retrieving daq header, while looking "<<
00247       "in PlaneView::DrawTracks(), using default fardet geometry" << std::endl;
00248   }
00249   if(header.size() > 0) det = header[0]->DetId();
00250   fGeo = &geo::Geometry::Instance(evt.Header().Run(),det);
00251   
00252   std::vector<const recobase::TrackBase*> track3d(0);
00253   
00254   std::string dir = "./"+fOption->fTrackRecoName;
00255   try {evt.Reco().Get(dir.c_str(),track3d);
00256   }
00257   catch (edm::Exception e) { }
00258   
00259   for(unsigned int i=0;i<track3d.size();i++)
00260     {
00261 
00262       if(track3d[i]->NRecoPt()<=1) continue;
00263       for(unsigned int j=0; j<track3d[i]->NRecoPt(); j++) {
00264     
00265         TLine& lx = fXview->AddLine(track3d[i]->RecoPt(j).Z(),   track3d[i]->RecoPt(j).X(),
00266                                     track3d[i]->RecoPt(j+1).Z(), track3d[i]->RecoPt(j+1).X());
00267         TLine& ly = fYview->AddLine(track3d[i]->RecoPt(j).Z(),   track3d[i]->RecoPt(j).Y(),
00268                                     track3d[i]->RecoPt(j+1).Z(), track3d[i]->RecoPt(j+1).Y());
00269 
00270         lx.SetLineColor(6);
00271         ly.SetLineColor(6);
00272 
00273       }
00274     }
00275   
00276 }

const char* evd::PlaneView::PrintTag  )  const [inline, virtual]
 

Give a short tag which can be included in filename to ID object printed Keep to ~4 characters

Reimplemented from evdb::Canvas.

Definition at line 18 of file PlaneView.h.

00018 { return "planeview";  }


Member Data Documentation

geo::Geometry* evd::PlaneView::fGeo [private]
 

Definition at line 38 of file PlaneView.h.

Referenced by Draw3DShowers(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), DrawTrackCandidates(), DrawTracks(), and PlaneView().

const PlaneViewOption* evd::PlaneView::fOption [private]
 

Definition at line 39 of file PlaneView.h.

Referenced by Draw(), DrawTrackCandidates(), DrawTracks(), and PlaneView().

evdb::View2D* evd::PlaneView::fXview [private]
 

Definition at line 36 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), DrawTrackCandidates(), DrawTracks(), and PlaneView().

TH2F* evd::PlaneView::fXviewHisto [private]
 

Definition at line 34 of file PlaneView.h.

Referenced by Draw(), and PlaneView().

TPad* evd::PlaneView::fXviewPad [private]
 

Definition at line 32 of file PlaneView.h.

Referenced by Draw(), and PlaneView().

evdb::View2D* evd::PlaneView::fYview [private]
 

Definition at line 37 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), DrawTrackCandidates(), DrawTracks(), and PlaneView().

TH2F* evd::PlaneView::fYviewHisto [private]
 

Definition at line 35 of file PlaneView.h.

Referenced by Draw(), and PlaneView().

TPad* evd::PlaneView::fYviewPad [private]
 

Definition at line 33 of file PlaneView.h.

Referenced by Draw(), and PlaneView().

double evd::PlaneView::xmax [private]
 

Definition at line 42 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), and DrawTrackCandidates().

double evd::PlaneView::xmin [private]
 

Definition at line 42 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), and DrawTrackCandidates().

double evd::PlaneView::ymax [private]
 

Definition at line 43 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), and DrawTrackCandidates().

double evd::PlaneView::ymin [private]
 

Definition at line 43 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), and DrawTrackCandidates().

double evd::PlaneView::zmax [private]
 

Definition at line 41 of file PlaneView.h.

Referenced by Draw(), Draw3DShowers(), DrawFilament(), DrawMC(), DrawMCHits(), DrawPlaneClusters(), DrawRawDigit(), DrawShowers(), and DrawTrackCandidates().