Go to the documentation of this file.00001 #ifndef MEChannel_hh
00002 #define MEChannel_hh
00003
00004
00005
00006
00007
00008
00009 #include <vector>
00010 #include <TROOT.h>
00011
00012 class MEChannel
00013 {
00014 public:
00015
00016 MEChannel( int ix, int iy, int ii, MEChannel* mother );
00017 virtual ~MEChannel();
00018
00019 int id() const;
00020 int ix() const { return _ix; }
00021 int iy() const { return _iy; }
00022
00023 MEChannel* getDaughter( int ix, int iy, int ig );
00024 MEChannel* m() { return _m; }
00025 MEChannel* d( unsigned ii ) { if( ii>=n() ) return 0; return _d[ii]; }
00026 unsigned n() const { return _d.size(); }
00027 int ig() const { return _ig; }
00028
00029 bool getListOfChannels( std::vector< MEChannel* >& );
00030 bool getListOfAncestors( std::vector< MEChannel* >& );
00031 bool getListOfDescendants( std::vector< MEChannel* >& );
00032 bool getListOfDescendants( int ig, std::vector< MEChannel* >& );
00033 MEChannel* getFirstDescendant( int ig );
00034 MEChannel* getDescendant( int ig, int ii );
00035 MEChannel* getChannel( int ix, int iy );
00036 MEChannel* getChannel( int ig, int ix, int iy );
00037 MEChannel* getAncestor( int ig );
00038
00039 void print(std::ostream& o, bool recursif=false ) const;
00040 TString oneLine( int ig );
00041 TString oneLine() { return oneLine( _ig ); }
00042 TString oneWord( int ig );
00043 TString oneWord() { return oneWord( _ig ); }
00044
00045 private:
00046
00047
00048 MEChannel* _m;
00049 std::vector< MEChannel* > _d;
00050
00051
00052 int _ig;
00053
00054
00055 int _ix;
00056 int _iy;
00057
00058
00059 std::vector< int > _id;
00060
00061 MEChannel* addDaughter( int ix, int iy, int ii );
00062
00063
00064 };
00065
00066 #endif
00067