FairRoot/PandaRoot
PndMvdRiemannVertexFinderTask.h
Go to the documentation of this file.
1 #ifndef PNDMVDRIEMANNVERTEXFINDERTASK_H_
2 #define PNDMVDRIEMANNVERTEXFINDERTASK_H_
3 
4 #include <iostream>
5 #include "FairTask.h"
6 //#include "PndSdsHit.h"
7 #include "TH1F.h"
8 #include "PndTrackCand.h"
9 #include "PndMCTrack.h"
10 #include "TString.h"
11 #include "stdio.h"
12 
13 class PndMvdRiemannVertexFinderTask : public FairTask
14 {
15 public:
20 
22  virtual void SetParContainers();
23  virtual InitStatus Init();
24  virtual InitStatus ReInit();
25 
27  virtual void Exec(Option_t* opt);
28  virtual void FinishEvent();
29 
30  //void PrintResult(); // not implemented
31  void SetVerbose(Int_t verbose){ fVerbose = verbose;};
32  void SetVertexCut(double cut){ fVertexCut =cut;};
33  TH1F* delta;
34  TH1F* wrongV;
35 
36  std::pair<double,double> eff;
37  std::pair<double,double> ghosts;
38 
39 private:
45 
46  int fEventNr;
47  int fVerbose;
48  double fVertexCut;
49 
50  TClonesArray* fHitArray;
51  TClonesArray* fHitArray2;
52  TClonesArray* fTrackCandArray;
53 // TClonesArray* fRiemannTrackArray;
54  TClonesArray* fTrackArray;
55  TClonesArray* fIdealTrackCandArray;
56  TClonesArray* fMCTrackArray;
57 
58  TClonesArray* fVertex;
59  TClonesArray* fMCVertex;
60 
61  bool CheckRecoTrack(PndTrackCand *cand,PndMCTrack* myTrack);
62 
63  bool CheckVertex(std::vector<int> Combination, std::vector< std::pair<int,int> > PairCand);
64  bool CheckTwoCands(int first, int second);
65  int FoundCandInMCCands(int candN);
66  void refit(std::vector<int>& CheckedCand);
67  void FindVertex(std::vector<int> CheckedCand,std::vector< std::pair <int,int> >& PairCand,std::vector< std::pair <int,int> >& TrueMCCand,
68  std::vector< std::pair <int,int> >& FalseMCCand,std::vector< std::pair <int,int> >& MCCand, int& MaxIndex);
69  void CalcEfficiency(std::vector< std::pair <int,int> > TrueMCCand,
70  std::vector< std::pair <int,int> > FalseMCCand,std::vector< std::pair <int,int> > MCCand);
71 
72  void Register();
73  void Reset();
74  void ProduceHits();
75 
77 
78 
79 };
80 
81 #endif /*PndMvdRiemannVertexFinderTask_H_*/
void refit(std::vector< int > &CheckedCand)
bool CheckRecoTrack(PndTrackCand *cand, PndMCTrack *myTrack)
#define verbose
void FindVertex(std::vector< int > CheckedCand, std::vector< std::pair< int, int > > &PairCand, std::vector< std::pair< int, int > > &TrueMCCand, std::vector< std::pair< int, int > > &FalseMCCand, std::vector< std::pair< int, int > > &MCCand, int &MaxIndex)
ClassDef(PndMvdRiemannVertexFinderTask, 1)
double cut[MAX]
Definition: autocutx.C:36
void CalcEfficiency(std::vector< std::pair< int, int > > TrueMCCand, std::vector< std::pair< int, int > > FalseMCCand, std::vector< std::pair< int, int > > MCCand)
bool CheckVertex(std::vector< int > Combination, std::vector< std::pair< int, int > > PairCand)
PndMvdRiemannVertexFinderTask & operator=(const PndMvdRiemannVertexFinderTask &)=delete