CbmRoot
Loading...
Searching...
No Matches
CbmL1RichRingQa.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2010 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Denis Bertini [committer], Igor Kulakov */
4
5#ifndef CBML1RICHRINGQA_H
6#define CBML1RICHRINGQA_H
7
8#include "FairTask.h"
9#include "TArc.h"
10#include "TCanvas.h"
11#include "TGraph.h"
12#include "TH1D.h"
13#include "TH2D.h"
14#include "TLatex.h"
15#include "TText.h"
16//#include "conv.h"
17
18#include <iostream>
19#include <list>
20#include <map>
21#include <vector>
22
23#include <math.h>
24#include <stdio.h>
25#include <stdlib.h>
26#include <string.h>
27
28class TClonesArray;
29
30class CbmL1RichRingQa : public FairTask {
31 private:
34 struct MCRing {
36 : MCTrackID(-1)
37 , primary(0)
38 , P(0)
39 , PDG(-1)
40 , NHits(0)
41 , Reconstructed(0)
42 , kind(0)
43 , x(0)
44 , y(0)
45 , r(0)
46 , k(0)
47 , Hits()
48 , BestReco(0)
49 , NHitsBestReco(0)
50 , NHitsBestvsNHitsMC(0){};
51 Int_t MCTrackID;
52 bool primary;
53 Double_t P;
54 Int_t PDG;
55 Int_t NHits;
57 Int_t kind;
58 Double_t x, y, r;
59 Int_t k;
60 std::vector<int> Hits;
61 Int_t BestReco;
64 };
65
66 struct PerfHit {
67 Double_t x, y;
68 Int_t MCTrackID;
69 Int_t index;
70 Bool_t found;
71 Bool_t on_ring;
72 };
73
74 TClonesArray* fRingArray; // Array of CbmRichRings
75 TClonesArray* fMCPointArray; // Array of FairMCPoints
76 TClonesArray* fMCTrackArray; // Array of CbmMCTracks
77 TClonesArray* fHitArray; // Array of CbmRichHits
78
79 private:
80 TH1F* Chi2Ghost;
81 TH1F* Chi2Ref;
82 TH1F* Chi2All;
83 TH1F* Chi2Clone;
86 TH1F* RGhost;
87 TH1F* REl;
88 TH1F* RPi;
89 TH1F* NHitsMC;
90 TH1F* NSameHits;
91
92 // TH2F *Chi2NhitsGhost;
96 TH2F* RNhitsPi;
97 TH2F* RNhitsEll;
99 TH2F* RChi2Pi;
100 TH2F* RChi2Ell;
108
109 public:
112 CbmL1RichRingQa(const char* name = "CbmL1RichRingQa", const char* title = "CbmL1RichRingQa", Int_t verbose = 1);
113
116
118 InitStatus Init();
119
121 void Exec(Option_t* option);
122
124 void Finish();
125
126 void CirFit(std::list<std::pair<Double_t, Double_t>>& P, Double_t* X, Double_t* Y, Double_t* R);
127
128 ClassDef(CbmL1RichRingQa, 1)
129};
130
131#endif
TClonesArray * fMCTrackArray
void Exec(Option_t *option)
void CirFit(std::list< std::pair< Double_t, Double_t > > &P, Double_t *X, Double_t *Y, Double_t *R)
TClonesArray * fMCPointArray
CbmL1RichRingQa(const char *name="CbmL1RichRingQa", const char *title="CbmL1RichRingQa", Int_t verbose=1)
CbmL1RichRingQa(const CbmL1RichRingQa &)
TClonesArray * fRingArray
TClonesArray * fHitArray
CbmL1RichRingQa operator=(const CbmL1RichRingQa &)
std::vector< int > Hits