QwAnalysis
QwHitContainer.h
Go to the documentation of this file.
1 
2 
3 /**********************************************************\
4 * File: QwHitContainer.h *
5 * *
6 * Author: P. M. King ,Rakitha Beminiwattha *
7 * brief Agumented vector of QwHits allowing special *
8 * seach functionality *
9 * Time-stamp: <2008-07-08 15:40> *
10 \**********************************************************/
11 
12 
13 #ifndef QWHITCONTAINER_H
14 #define QWHITCONTAINER_H
15 
16 #include <iostream>
17 #include <list>
18 #include <vector>
19 #include <algorithm>
20 
21 #include <TObject.h>
22 
23 #include "QwTypes.h"
24 #include "QwHit.h"
25 
26 
27 ///
28 /// \ingroup QwTracking
29 class QwHitContainer: public std::list<QwHit>, public TObject {
30  private:
31  /* typedef std::list<QwHit> QwHitArray; */
32  public:
33  typedef std::list<QwHit> QwHitArray;
34 
35  using QwHitArray::iterator;
36  using QwHitArray::begin;
37  using QwHitArray::end;
38 
39 
40  void Clear(const Option_t* /*option*/ = 0) {
41  this->QwHitArray::clear();
42  };
43 
44  //append from a QwHit vector - rakitha (08/2008)
45  void Append(const QwHitContainer &mylist) {
46  this->insert(this->end(), mylist.begin(), mylist.end());
47  };
48 
49  void Append(const QwHitContainer* mylist) {
50  this->insert(this->end(), mylist->begin(), mylist->end());
51  };
52 
53  void Append(std::vector<QwHit> &mylist) {
54  this->insert(this->end(), mylist.begin(), mylist.end());
55  };
56 
57 
58  //iterator methods to obtain subsets of QwHitContainer elements - rakitha (08/2008)
59  iterator GetStartOfHits(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction);
60  iterator GetEndOfHits(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction);
61  iterator GetStartOfHits1(EQwRegionID region, EQwDetectorPackage package, Int_t plane);
62  iterator GetEndOfHits1(EQwRegionID region, EQwDetectorPackage package, Int_t plane);
63 
64  // Return sub set of QwHitContainer list based on wire plane or wire direction -Rakitha (1023/2008)
65  void GetSubList_Dir(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction, std::vector<QwHit> & sublist);
66  void GetSubList_Plane(EQwRegionID region, EQwDetectorPackage package, Int_t plane, std::vector<QwHit> & sublist);
67 
68  // Return the sublist of hits only in specified package, region, and detector plane or direction
69  QwHitContainer* GetSubList_Plane (EQwRegionID region, EQwDetectorPackage package, Int_t plane);
71 
72 
73  void Print (const Option_t* option = 0) const;
74  friend std::ostream& operator<< (std::ostream& stream, const QwHitContainer& hitlist);
75 
76 
78 };
79 
80 #endif
void Append(std::vector< QwHit > &mylist)
ClassDef(QwHitContainer, 1)
iterator GetEndOfHits1(EQwRegionID region, EQwDetectorPackage package, Int_t plane)
iterator GetStartOfHits1(EQwRegionID region, EQwDetectorPackage package, Int_t plane)
EQwDetectorPackage
Definition: QwTypes.h:70
iterator GetStartOfHits(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction)
EQwRegionID
Definition: QwTypes.h:16
Draft skeleton for the decoding-to-QTR interface class.
void Append(const QwHitContainer *mylist)
friend std::ostream & operator<<(std::ostream &stream, const QwHitContainer &hitlist)
void Clear(const Option_t *=0)
void GetSubList_Dir(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction, std::vector< QwHit > &sublist)
void Print(const Option_t *option=0) const
EQwDirectionID
Definition: QwTypes.h:41
iterator GetEndOfHits(EQwRegionID region, EQwDetectorPackage package, EQwDirectionID direction)
std::list< QwHit > QwHitArray
void GetSubList_Plane(EQwRegionID region, EQwDetectorPackage package, Int_t plane, std::vector< QwHit > &sublist)
void Append(const QwHitContainer &mylist)