MarlinUtil  1.12.1
FPCCDData.h
1 #ifndef FPCCDData_h
2 #define FPCCDData_h 1
3 
4 #include <vector>
5 #include <map>
6 
47 namespace IMPL { class LCCollectionVec; }
48 namespace EVENT { class LCCollection; }
49 class FPCCDPixelHit;
50 
51 typedef std::map<unsigned int, FPCCDPixelHit*> PixelHitMap_t; //key will be encorded cellID.
52 typedef std::vector< std::vector<PixelHitMap_t> > PixelDataBuf_t;
53 
54 
55 // =================================================================
56 class FPCCDData {
57  protected:
58  PixelDataBuf_t _pxHits; // Hit map for each layer/ladder
59  int _maxlayer;
60  int _maxladder;
61 
62  public:
63  FPCCDData(int max_layer, int max_ladder);
64 
65  // Add
66  // if same hit exists, add ADC values
67  // if new hit, create a new Pixel hit and store in map
68  void addPixelHit(FPCCDPixelHit &aHit, bool isSignal);
69 
70  // Clear
71  void clear();
72 
73  // Save _pxHits info in LCCollectionVec
74  void packPixelHits(EVENT::LCCollection &col);
75 
76  // Copy pixelhit info in _pxHits;
77  int unpackPixelHits(EVENT::LCCollection &col);
78 
79  //
80  void Add(FPCCDData &bkgHit);
81 
82  void Add(FPCCDData &bkgHit, int layer, int ladder);
83  // iterators to get pixel hit.
84  PixelHitMap_t::iterator itBegin(int layer, int ladder){
85  return _pxHits[layer][ladder].begin();
86  }
87  PixelHitMap_t::iterator itEnd(int layer, int ladder){
88  return _pxHits[layer][ladder].end();
89  }
90 
91 
92  // dump
93  void dump();
94 
95 };
96 
97 #endif
98 
99 
100 
Definition: FPCCDData.h:56
Definition: FPCCDPixelHit.h:40