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

spider::SpiderWeb Class Reference

#include <SpiderWeb.h>

Inheritance diagram for spider::SpiderWeb:

jobc::Module cfg::Observer List of all members.

Public Member Functions

 SpiderWeb (const char *version)
 ~SpiderWeb ()
void Update (const cfg::Config &c)
jobc::Result Reco (edm::EventHandle &evt)
void IterPut (edm::EventHandle &evt, Filament &f, int d)

Private Attributes

int msglevel

Constructor & Destructor Documentation

SpiderWeb::SpiderWeb const char *  version  ) 
 

Definition at line 33 of file SpiderWeb.cxx.

References cfg::Observer::SetWatch().

00033                                         :
00034   jobc::Module("SpiderWeb")
00035 { 
00036 this->SetWatch("SpiderWebConfig","default");
00037 }

SpiderWeb::~SpiderWeb  ) 
 

Definition at line 41 of file SpiderWeb.cxx.

References cfg::Observer::RemoveAllWatches().

00042 {
00043 this->RemoveAllWatches();
00044 }


Member Function Documentation

void SpiderWeb::IterPut edm::EventHandle evt,
Filament f,
int  d
 

Definition at line 110 of file SpiderWeb.cxx.

References spider::Filament::begcell, spider::Filament::begplane, spider::Filament::daughters, spider::Filament::depth, spider::Filament::endcell, spider::Filament::endplane, spider::Filament::fitbegt, spider::Filament::fitbegz, spider::Filament::fitendt, spider::Filament::fitendz, msglevel, and edm::EventHandle::Reco().

00111 {
00112 //printf("%d ",d);
00113 //f.Update();
00114 evt.Reco().Put(f,"");
00115 
00116 if(msglevel>=DEBUG)printf("put fil at (%d %d) - (%d %d)    (%f %f)-(%f %f)\n",f.begplane,f.begcell,f.endplane,f.endcell,f.fitbegz, f.fitbegt, f.fitendz, f.fitendt);
00117 
00118 for(unsigned int i=0;i<f.daughters.size();i++)
00119 {
00120         f.daughters[i]->depth=d;
00121 //      evt.Reco().Put(*f.daughters[i],"");
00122         SpiderWeb::IterPut(evt,*f.daughters[i],++d);
00123         
00124 }
00125 
00126 }

jobc::Result SpiderWeb::Reco edm::EventHandle evt  )  [virtual]
 

Reimplemented from jobc::Module.

Definition at line 53 of file SpiderWeb.cxx.

References spider::fGeo, spider::WebWalker::GetFilaments(), edm::EventHandle::Header(), geo::Geometry::Instance(), msglevel, geo::Geometry::Plane(), edm::EventHandle::Reco(), spider::WebWalker::SpinWeb(), and geo::PlaneGeo::View().

00054 {
00055 
00056 //get cellhits from the file
00057 std::vector<const recobase::CellHit*> cellhit(0);
00058 //assert_jobc(evt.Reco().Get("Hits",cellhit),"No CellHits found in DetSim() folder!");
00059 
00060 try
00061 {
00062 evt.Reco().Get("Hits",cellhit);
00063 }catch(...){return jobc::kFailed;}
00064 
00065 
00066 short fDetGeom=1;
00067 //  if (!fGeo)
00068  fGeo = &geo::Geometry::Instance(evt.Header().Run(), fDetGeom);
00069 
00070 
00071 
00072   vector<const recobase::CellHit*> cellhitX(0);
00073   vector<const recobase::CellHit*> cellhitY(0);
00074   for (unsigned int i=0; i<cellhit.size(); ++i) {
00075     if(fGeo->Plane(cellhit[i]->Plane()).View()==geo::kX) {
00076       cellhitX.push_back(cellhit[i]);
00077     } else {
00078       cellhitY.push_back(cellhit[i]);
00079     }
00080   }
00081 
00082 
00083 
00084 std::vector<spider::Filament> filsx(0);
00085 std::vector<spider::Filament> filsy(0);
00086 
00087 if(msglevel>=DEBUG)printf("X VIEW\n");
00088   WebWalker wx;
00089   wx.SpinWeb(cellhitX);
00090   filsx=wx.GetFilaments(geo::kX);
00091 
00092 if(msglevel>=DEBUG)printf("Y VIEW\n");
00093   WebWalker wy;
00094   wy.SpinWeb(cellhitY);
00095   filsy=wy.GetFilaments(geo::kY);
00096 
00097 if(msglevel>=DEBUG)printf("Results\n");
00098 
00099 for(unsigned int i=0;i<filsx.size();i++)
00100 //evt.Reco().Put(filsx[i],"");
00101 SpiderWeb::IterPut(evt,filsx[i],0);
00102 
00103 for(unsigned int i=0;i<filsy.size();i++)
00104 //evt.Reco().Put(filsy[i],"");
00105 SpiderWeb::IterPut(evt,filsy[i],0);
00106 
00107   return jobc::kPassed;
00108 }

void SpiderWeb::Update const cfg::Config c  )  [virtual]
 

Implements cfg::Observer.

Definition at line 47 of file SpiderWeb.cxx.

References msglevel.

00048 {
00049         c("MessageLevel").Get(msglevel);
00050 }


Member Data Documentation

int spider::SpiderWeb::msglevel [private]
 

Definition at line 35 of file SpiderWeb.h.

Referenced by IterPut(), Reco(), and Update().


The documentation for this class was generated from the following files:
Generated on Wed Oct 15 02:35:32 2008 for NOvA Offline by  doxygen 1.3.9.1