PandaRoot
PndLmdPairFinderTask.h
Go to the documentation of this file.
1 /*
2  * PairFinderTask.h
3  *
4  * Created on: Jul 22, 2014
5  * Author: Roman Klasen, roklasen@uni-mainz.de or klasen@kph.uni-mainz.de
6  */
7 
8 #ifndef PNDLMDPAIRFINDERTASK_H_
9 #define PNDLMDPAIRFINDERTASK_H_
10 
11 #include "PndLmdAlignStructs.h"
12 #include <PndLmdHitPair.h>
13 #include <PndSdsHit.h>
14 #include "PndSdsTask.h"
15 
16 #include "TClonesArray.h"
17 
18 #include <iostream>
19 #include <string>
20 #include <vector>
21 
23 
25 
26  private:
27  // for statistics
28  Int_t noOfGoodPairs, noOfEvents;
29  Int_t plane0, plane1, plane2, plane3;
30  Int_t eventMissedAllPlanes, noOverlap;
31  Int_t distanceTooHigh;
32  Int_t sumOfPixelHits;
33  Int_t unsuitable;
34  Int_t hitsClustered, hitsSinglePixel;
35  Int_t noOfCombos;
36 
37  Double_t _maxDistance;
38 
39  Bool_t _ignoreClusters;
40 
41  pixelHit getPixelHitFromSdsHit(PndSdsHit *sdsHit);
42 
43  public:
44  void SetParContainers();
45 
47  PndLmdPairFinderTask(const char *name);
48  virtual ~PndLmdPairFinderTask();
49 
51  virtual void SetBranchNames();
52 
54  virtual InitStatus Init();
55  virtual InitStatus ReInit();
56 
58  virtual void Exec(Option_t *opt);
59 
60  virtual void FinishEvent();
61  virtual void FinishTask();
62 
63  // apply distance cut, will be ignored when using dynamic cut
64  void setMaxDistance(Double_t value) { _maxDistance = value; }
65 
66  void ignoreClusters(Bool_t value) { _ignoreClusters = value; }
67 
68  protected:
69  // PndLmdDim* dimension;
70 
72 
73  TClonesArray *digiArray;
74  TClonesArray *recoArray;
75  TClonesArray *hitPairArray;
76  TClonesArray *clusterCandidateArray;
77 
80 
81  std::map<int, TClonesArray *> hitPairMap;
82 
83  void Register();
84  void Reset();
85 
86  // function to return result of all checks, distance cut etc.
87  void getStatistics(PndLmdHitPair &candidate);
88 
89  bool pairDistanceValid(PndLmdHitPair &candidate);
90 
91  // self explanatory
92  bool candHitsOverlappingArea(const PndLmdHitPair &candidate);
93 
95 };
96 
97 #endif /* PAIRFINDERTASK_H_ */
void ignoreClusters(Bool_t value)
bool pairDistanceValid(PndLmdHitPair &candidate)
void getStatistics(PndLmdHitPair &candidate)
virtual ~PndLmdPairFinderTask()
virtual InitStatus ReInit()
TClonesArray * clusterCandidateArray
PndLmdGeometryHelper * helper
ClassDef(PndLmdPairFinderTask, 20)
virtual void FinishEvent()
virtual void FinishTask()
virtual void Exec(Option_t *opt)
std::map< int, TClonesArray * > hitPairMap
virtual void SetBranchNames()
bool candHitsOverlappingArea(const PndLmdHitPair &candidate)
virtual InitStatus Init()
void setMaxDistance(Double_t value)