CbmRoot
CbmL1RichRingQa.h
Go to the documentation of this file.
1 #ifndef CBML1RICHRINGQA_H
2 #define CBML1RICHRINGQA_H
3 
4 #include "FairTask.h"
5 
6 #include "TArc.h"
7 #include "TCanvas.h"
8 #include "TGraph.h"
9 #include "TH1D.h"
10 #include "TH2D.h"
11 #include "TLatex.h"
12 #include "TText.h"
13 //#include "conv.h"
14 
15 #include <list>
16 #include <map>
17 #include <vector>
18 
19 #include <iostream>
20 #include <math.h>
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <string.h>
24 
25 class CbmL1RichRingQa : public FairTask {
26 private:
29  struct MCRing {
31  : MCTrackID(-1)
32  , primary(0)
33  , P(0)
34  , PDG(-1)
35  , NHits(0)
36  , Reconstructed(0)
37  , kind(0)
38  , x(0)
39  , y(0)
40  , r(0)
41  , k(0)
42  , Hits()
43  , BestReco(0)
44  , NHitsBestReco(0)
45  , NHitsBestvsNHitsMC(0) {};
46  Int_t MCTrackID;
47  bool primary;
48  Double_t P;
49  Int_t PDG;
50  Int_t NHits;
52  Int_t kind;
53  Double_t x, y, r;
54  Int_t k;
55  std::vector<int> Hits;
56  Int_t BestReco;
59  };
60 
61  struct PerfHit {
62  Double_t x, y;
63  Int_t MCTrackID;
64  Int_t index;
65  Bool_t found;
66  Bool_t on_ring;
67  };
68 
69  TClonesArray* fRingArray; // Array of CbmRichRings
70  TClonesArray* fMCPointArray; // Array of FairMCPoints
71  TClonesArray* fMCTrackArray; // Array of CbmMCTracks
72  TClonesArray* fHitArray; // Array of CbmRichHits
73 
74 private:
75  TH1F* Chi2Ghost;
76  TH1F* Chi2Ref;
77  TH1F* Chi2All;
78  TH1F* Chi2Clone;
80  TH2F* Chi2NhitsAll;
81  TH1F* RGhost;
82  TH1F* REl;
83  TH1F* RPi;
84  TH1F* NHitsMC;
85  TH1F* NSameHits;
86 
87  // TH2F *Chi2NhitsGhost;
88  TH2F* Chi2NhitsPi;
89  TH2F* Chi2NhitsEll;
90  TH2F* RNhitsGhost;
91  TH2F* RNhitsPi;
92  TH2F* RNhitsEll;
93  TH2F* RChi2Ghost;
94  TH2F* RChi2Pi;
95  TH2F* RChi2Ell;
96  TH2F* NSameHitsVsP;
97  TH2F* NHitsVsMCP;
103 
104 public:
107  CbmL1RichRingQa(const char* name = "CbmL1RichRingQa",
108  const char* title = "CbmL1RichRingQa",
109  Int_t verbose = 1);
110 
113 
115  InitStatus Init();
116 
118  void Exec(Option_t* option);
119 
121  void Finish();
122 
123  void CirFit(std::list<std::pair<Double_t, Double_t>>& P,
124  Double_t* X,
125  Double_t* Y,
126  Double_t* R);
127 
128  ClassDef(CbmL1RichRingQa, 1)
129 };
130 
131 #endif
CbmL1RichRingQa::RNhitsPi
TH2F * RNhitsPi
Definition: CbmL1RichRingQa.h:91
CbmL1RichRingQa::fMCPointArray
TClonesArray * fMCPointArray
Definition: CbmL1RichRingQa.h:70
CbmL1RichRingQa::MCRing::kind
Int_t kind
Definition: CbmL1RichRingQa.h:52
CbmL1RichRingQa::MCRing::Reconstructed
Int_t Reconstructed
Definition: CbmL1RichRingQa.h:51
CbmL1RichRingQa::fRingArray
TClonesArray * fRingArray
Definition: CbmL1RichRingQa.h:69
CbmL1RichRingQa::RPi
TH1F * RPi
Definition: CbmL1RichRingQa.h:83
CbmL1RichRingQa::REl
TH1F * REl
Definition: CbmL1RichRingQa.h:82
CbmL1RichRingQa::Init
InitStatus Init()
Definition: CbmL1RichRingQa.cxx:233
CbmL1RichRingQa::MCRing::PDG
Int_t PDG
Definition: CbmL1RichRingQa.h:49
CbmL1RichRingQa::PerfHit::MCTrackID
Int_t MCTrackID
Definition: CbmL1RichRingQa.h:63
CbmL1RichRingQa::PerfHit::found
Bool_t found
Definition: CbmL1RichRingQa.h:65
CbmL1RichRingQa::~CbmL1RichRingQa
~CbmL1RichRingQa()
Definition: CbmL1RichRingQa.cxx:231
CbmL1RichRingQa::MCRing::x
Double_t x
Definition: CbmL1RichRingQa.h:53
CbmL1RichRingQa::MCRing::NHitsBestvsNHitsMC
Double_t NHitsBestvsNHitsMC
Definition: CbmL1RichRingQa.h:58
CbmL1RichRingQa::MCRing::k
Int_t k
Definition: CbmL1RichRingQa.h:54
CbmL1RichRingQa::CirFit
void CirFit(std::list< std::pair< Double_t, Double_t >> &P, Double_t *X, Double_t *Y, Double_t *R)
Definition: CbmL1RichRingQa.cxx:273
CbmL1RichRingQa::Chi2Ref
TH1F * Chi2Ref
Definition: CbmL1RichRingQa.h:76
CbmL1RichRingQa::PerfHit::index
Int_t index
Definition: CbmL1RichRingQa.h:64
CbmL1RichRingQa::CbmL1RichRingQa
CbmL1RichRingQa(const char *name="CbmL1RichRingQa", const char *title="CbmL1RichRingQa", Int_t verbose=1)
CbmL1RichRingQa::RGhost
TH1F * RGhost
Definition: CbmL1RichRingQa.h:81
CbmL1RichRingQa::NHitsVsMCP
TH2F * NHitsVsMCP
Definition: CbmL1RichRingQa.h:97
CbmL1RichRingQa::Finish
void Finish()
Definition: CbmL1RichRingQa.cxx:1145
CbmL1RichRingQa::RChi2Ell
TH2F * RChi2Ell
Definition: CbmL1RichRingQa.h:95
CbmL1RichRingQa::MCRing::NHits
Int_t NHits
Definition: CbmL1RichRingQa.h:50
CbmL1RichRingQa::DistanceVsPClone
TH2F * DistanceVsPClone
Definition: CbmL1RichRingQa.h:99
CbmL1RichRingQa::MCRing::Hits
std::vector< int > Hits
Definition: CbmL1RichRingQa.h:55
CbmL1RichRingQa::MCRing
Definition: CbmL1RichRingQa.h:29
CbmL1RichRingQa
Definition: CbmL1RichRingQa.h:25
CbmL1RichRingQa::RNhitsGhost
TH2F * RNhitsGhost
Definition: CbmL1RichRingQa.h:90
CbmL1RichRingQa::NSameHitsVsP
TH2F * NSameHitsVsP
Definition: CbmL1RichRingQa.h:96
CbmL1RichRingQa::MCRing::r
Double_t r
Definition: CbmL1RichRingQa.h:53
CbmL1RichRingQa::MCRing::y
Double_t y
Definition: CbmL1RichRingQa.h:53
CbmL1RichRingQa::RadiusVsDistanceClone
TH2F * RadiusVsDistanceClone
Definition: CbmL1RichRingQa.h:101
CbmL1RichRingQa::Chi2Ghost
TH1F * Chi2Ghost
Definition: CbmL1RichRingQa.h:75
CbmL1RichRingQa::MCRing::primary
bool primary
Definition: CbmL1RichRingQa.h:47
CbmL1RichRingQa::NHitsRecoVsNHitsMC
TH2F * NHitsRecoVsNHitsMC
Definition: CbmL1RichRingQa.h:102
CbmL1RichRingQa::Chi2NhitsEll
TH2F * Chi2NhitsEll
Definition: CbmL1RichRingQa.h:89
CbmL1RichRingQa::RChi2Ghost
TH2F * RChi2Ghost
Definition: CbmL1RichRingQa.h:93
CbmL1RichRingQa::PerfHit::y
Double_t y
Definition: CbmL1RichRingQa.h:62
CbmL1RichRingQa::NHitsMC
TH1F * NHitsMC
Definition: CbmL1RichRingQa.h:84
CbmL1RichRingQa::RadiusVsPForClone
TH2F * RadiusVsPForClone
Definition: CbmL1RichRingQa.h:98
CbmL1RichRingQa::Chi2NhitsPi
TH2F * Chi2NhitsPi
Definition: CbmL1RichRingQa.h:88
CbmL1RichRingQa::Chi2VsPClone
TH2F * Chi2VsPClone
Definition: CbmL1RichRingQa.h:100
CbmL1RichRingQa::PerfHit::x
Double_t x
Definition: CbmL1RichRingQa.h:62
CbmL1RichRingQa::MCRing::NHitsBestReco
Int_t NHitsBestReco
Definition: CbmL1RichRingQa.h:57
CbmL1RichRingQa::fMCTrackArray
TClonesArray * fMCTrackArray
Definition: CbmL1RichRingQa.h:71
CbmL1RichRingQa::MCRing::BestReco
Int_t BestReco
Definition: CbmL1RichRingQa.h:56
CbmL1RichRingQa::MCRing::MCTrackID
Int_t MCTrackID
Definition: CbmL1RichRingQa.h:45
CbmL1RichRingQa::Chi2All
TH1F * Chi2All
Definition: CbmL1RichRingQa.h:77
CbmL1RichRingQa::RNhitsEll
TH2F * RNhitsEll
Definition: CbmL1RichRingQa.h:92
CbmL1RichRingQa::Exec
void Exec(Option_t *option)
Definition: CbmL1RichRingQa.cxx:308
CbmL1RichRingQa::PerfHit::on_ring
Bool_t on_ring
Definition: CbmL1RichRingQa.h:66
CbmL1RichRingQa::fHitArray
TClonesArray * fHitArray
Definition: CbmL1RichRingQa.h:72
CbmL1RichRingQa::MCRing::P
Double_t P
Definition: CbmL1RichRingQa.h:48
CbmL1RichRingQa::MCRing::MCRing
MCRing()
Definition: CbmL1RichRingQa.h:30
CbmL1RichRingQa::Chi2NhitsGhost
TH2F * Chi2NhitsGhost
Definition: CbmL1RichRingQa.h:79
CbmL1RichRingQa::Chi2NhitsAll
TH2F * Chi2NhitsAll
Definition: CbmL1RichRingQa.h:80
CbmL1RichRingQa::PerfHit
Definition: CbmL1RichRingQa.h:61
CbmL1RichRingQa::operator=
CbmL1RichRingQa operator=(const CbmL1RichRingQa &)
CbmL1RichRingQa::RChi2Pi
TH2F * RChi2Pi
Definition: CbmL1RichRingQa.h:94
CbmL1RichRingQa::NSameHits
TH1F * NSameHits
Definition: CbmL1RichRingQa.h:85
CbmL1RichRingQa::Chi2Clone
TH1F * Chi2Clone
Definition: CbmL1RichRingQa.h:78
CbmL1RichRingQa::CbmL1RichRingQa
CbmL1RichRingQa(const CbmL1RichRingQa &)