PandaRoot
PndGemFindHitsQA.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 // -------------------------------------------------------------------------
14 // ----- PndGemFindHitsQA header file -----
15 // ----- Created 02.06.2009 by R. Karabowicz -----
16 // -------------------------------------------------------------------------
17 
26 #ifndef PNDGEMFINDHITSQA_H
27 #define PNDGEMFINDHITSQA_H
28 
29 #include "TH1F.h"
30 #include "TH2F.h"
31 #include "TH3F.h"
32 
33 #include "FairTask.h"
34 #include "FairRootFileSink.h"
35 
36 #include "PndGemHit.h"
37 #include "PndGemDigiPar.h"
38 
39 #include <vector>
40 
41 class PndGemFindHitsQA : public FairTask {
42 
43  public:
46 
48  PndGemFindHitsQA(Int_t iVerbose);
49 
51  virtual ~PndGemFindHitsQA();
52 
54  virtual void Exec(Option_t *opt);
55 
57  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
58 
59  void SetPointEffDist(Double_t dn) { fPointEffDist = dn; };
60 
61  private:
62  PndGemDigiPar *fDigiPar;
63 
65  TClonesArray *fMCPointArray;
66 
68  TClonesArray *fGemHitArray;
69 
71  TClonesArray *fGemData[10];
72  Int_t fGemDataPointer[1000];
73  Int_t fGemPointNumber;
74 
76  Int_t fNofEvents;
77 
78  TList *fHistoList;
79 
80  Int_t fHistPlaneDivs;
81  Double_t fHistWidth[4][2];
82 
83  Double_t fPointEffDist;
84 
85  // XY distance from point to hit
86  // vs station(up to 4),sensor(2 per station),position(divide into 4x4 regions)
87  TH2F *fhPointToHit[4][2][4][4];
88  // distance of point to the closest hit
89  // TH3F* fhPointClosest [4][2];
90  TH2F *fhPointNof[4][2];
91  TH2F *fhPointReco[4][2];
92  TH2F *fhPointRecoEff[4][2];
93  TH1F *fhPointRadNof[4][2];
94  TH1F *fhPointRadReco[4][2];
95  TH1F *fhPointRadRecoEff[4][2];
96 
97  TH2F *fhPointMatch[4][2];
98  TH2F *fhPointMatchEff[4][2];
99  TH1F *fhPointRadMatch[4][2];
100  TH1F *fhPointRadMatchEff[4][2];
101 
102  TH2F *fhHitNof[4][2];
103  TH2F *fhHitFake[4][2];
104  TH2F *fhHitFakeProb[4][2];
105  TH1F *fhHitRadNof[4][2];
106  TH1F *fhHitRadFake[4][2];
107  TH1F *fhHitRadFakeProb[4][2];
108 
109  TH2F *fhHitMultipleRate[4][2];
110 
111  TH1F *fhCloseHits[4][2];
112 
113  TH2F *fhTrueMatchDiXYPerSt[4][2];
114  TH1F *fhTrueMatchDistPerSt[4][2];
115 
116  TH2F *fhTrueMatchDiXY;
117  TH1F *fhTrueMatchDist;
118  TH1F *fhTrueMatchValue;
119  TH2F *fhTrueMatchDistValue;
120 
121  TH1F *fhTrueMatchNofPerHit;
122  TH1F *fhTrueMatchNofPerPoint;
123 
124  void CreateHistos();
125  void DivideHistos(TH1 *hist1, TH1 *hist2, TH1 *hist3);
126 
127  Int_t GetPointVector(Int_t arrayId, Int_t entryId, std::vector<Int_t> &pointVector, Bool_t printInfo = kFALSE);
128 
130  virtual void SetParContainers();
131 
133  virtual void Finish();
134 
136  virtual InitStatus Init();
137 
139  virtual InitStatus ReInit();
140 
141  ClassDef(PndGemFindHitsQA, 1);
142 };
143 
144 #endif
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
void SetVerbose(const Int_t &verbose)
virtual ~PndGemFindHitsQA()
void SetPointEffDist(Double_t dn)
track finding quality assesment task
virtual void Exec(Option_t *opt)