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

TdSiData.h

Go to the documentation of this file.
00001 #ifndef RECOSI_DATA_H
00002 #define RECOSI_DATA_H 1
00003 
00004 #include "instrument/Glast.h"
00005 #include "geometry/Point.h"
00006 #include "idents/ModuleId.h"
00007 #include "data/SiData.h"
00008 
00009 #include "GaudiKernel/Kernel.h"
00010 #include "GaudiKernel/DataObject.h"
00011 #include "GaudiKernel/SmartRefVector.h"
00012 #include "GlastEvent/TopLevel/Definitions.h"
00013 #include "GlastEvent/Utilities/CellID.h"
00014 #include "GaudiKernel/ObjectVector.h"
00015 #include "GaudiKernel/ObjectList.h"
00016 
00017 
00018 #include <iostream>
00019 #include <vector>
00020 
00021 extern const CLID& CLID_TdSiData;
00022 
00023 class TdSiData : virtual public SiData , virtual public DataObject {
00024 public:
00025 
00026     virtual const CLID& clID() const   { return TdSiData::classID(); }
00027     static const CLID& classID()       { return CLID_TdSiData; }
00028 
00029         
00030     TdSiData ();
00031     
00032     TdSiData (unsigned int n);
00033     
00034     //copy constructor
00035     TdSiData (TdSiData*,unsigned int n);
00036     
00037     virtual ~TdSiData ();
00038     
00039     //  access to module id if desired
00040     virtual const SiData::Id& moduleId (enum SiData::Axis a, 
00041         unsigned int tray, 
00042         unsigned int n) const;
00043     
00044     
00045     void load (const SiDetector& strips, idents::ModuleId module);
00046     
00047     //-------------------- access functions for data analysis------------------------
00048     void clear ();
00049 
00050     //  number of trays
00051     int nTrays(enum SiData::Axis a) const;
00052     
00053     //  number of hit strips in the given tray (tray=0..18)
00054     int nHits (enum SiData::Axis a, int tray) const;
00055         
00056     //  layer number assigned to a given tray
00057     int layerNum (enum SiData::Axis a, int tray) const;
00058 
00059     //  center of the given strip, where  n=0..nHits(a,tray,n)-1
00060     Point hit (enum SiData::Axis a, unsigned int tray, unsigned int n) const;
00061     
00062     //  strip Id
00063     unsigned int hitId (enum SiData::Axis a, 
00064         unsigned int tray, unsigned int n) const;
00065     
00066     //  Strip Type (1 = noise, 0 = real)
00067     //unsigned int hitType (enum SiData::Axis a, 
00068     //    unsigned int tray, unsigned int n) const;
00069     
00070     //  total number of Si strips hit
00071     int totalHits () const;
00072     
00073     
00074     //  ---------------------------------------------------------
00075     void printOn (std::ostream& cout = std::cout) const;
00076     
00077 private:
00078     
00079     int m_total_hits;
00080     int m_controller_max;
00081     class Strip;
00082     //  storage is a vector (by layer number) of lists of hit strips
00083     std::vector<int> xLayers;
00084     std::vector< std::vector< class Strip >* > xhitList;
00085     
00086     //  storage is a vector (by layer number) of lists of hit strips
00087     std::vector<int> yLayers;
00088     std::vector< std::vector< class Strip >* > yhitList;
00089     
00090 };
00091 
00092 #endif

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