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

RecoSiData.h

Go to the documentation of this file.
00001 // $Id: RecoSiData.h,v 1.2 2000/12/11 16:38:44 burnett Exp $
00002 
00003 #ifndef RECOSI_DATA_H
00004 #define RECOSI_DATA_H 1
00005 
00006 #include "instrument/Glast.h"
00007 #include "geometry/Point.h"
00008 #include "idents/ModuleId.h"
00009 #include "data/SiData.h"
00010 
00011 #include <iostream>
00012 #include <vector>
00013 
00014 
00015 class RecoSiData : public SiData {
00016 public:
00017         
00018     RecoSiData ();
00019     
00020     RecoSiData (unsigned int n);
00021     
00022     virtual ~RecoSiData ();
00023     
00024     //  access to module id if desired
00025     virtual const SiData::Id& moduleId (enum SiData::Axis a, 
00026         unsigned int tray, 
00027         unsigned int n) const;
00028     
00029     
00030     void load (const SiDetector& strips, idents::ModuleId module);
00031     
00032     //-------------------- access functions for data analysis------------------------
00033     void clear ();
00034     
00035     //  number of hit strips in the given tray (tray=0..16)
00036     int nHits (enum SiData::Axis a, int tray) const;
00037     
00038     //  center of the given strip, where  n=0..nHits(a,tray,n)-1
00039     Point hit (enum SiData::Axis a, unsigned int tray, unsigned int n) const;
00040     
00041     //  strip Id
00042     unsigned int hitId (enum SiData::Axis a, 
00043         unsigned int tray, unsigned int n) const;
00044     
00045     //  Strip Type (1 = noise, 0 = real)
00046     //unsigned int hitType (enum SiData::Axis a, 
00047     //    unsigned int tray, unsigned int n) const;
00048     
00049     //  total number of Si strips hit
00050     //  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00051     int totalHits () const;
00052     
00053     //  largest number of hits on an individual readout
00054     //  controller
00055     //  (determines readout time)
00056     //  ----- I/O Functions -----------------------
00057     //  total number of Si strips hit
00058     //int maxControllerHits () const;
00059     
00060     void readData (std::istream& in);
00061     
00062     //  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00063     //  Data I/O
00064     void writeData (std::ostream& out);
00065     
00066     //  ---------------------------------------------------------
00067     void printOn (std::ostream& cout = std::cout) const;
00068     
00069 private:
00070     
00071     int m_total_hits;
00072     int m_controller_max;
00073     class Strip;
00074     //  storage is a vector (by layer number) of lists of hit strips
00075     std::vector< std::vector< class Strip >* > xhitList;
00076     
00077     //  storage is a vector (by layer number) of lists of hit strips
00078     std::vector< std::vector< class Strip >* > yhitList;
00079     
00080 };
00081 
00082 #endif

Generated at Wed Nov 21 12:20:45 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000