-
Eoin Clerkin authored
Decision to not use doxygen for licence headers. Removes doxygen formatting and file tag.
Eoin Clerkin authoredDecision to not use doxygen for licence headers. Removes doxygen formatting and file tag.
CbmL1RichRingQa.h 2.63 KiB
/* Copyright (C) 2006-2010 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
SPDX-License-Identifier: GPL-3.0-only
Authors: Denis Bertini [committer], Igor Kulakov */
#ifndef CBML1RICHRINGQA_H
#define CBML1RICHRINGQA_H
#include "FairTask.h"
#include "TArc.h"
#include "TCanvas.h"
#include "TGraph.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TLatex.h"
#include "TText.h"
//#include "conv.h"
#include <iostream>
#include <list>
#include <map>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
class CbmL1RichRingQa : public FairTask {
private:
CbmL1RichRingQa(const CbmL1RichRingQa&);
CbmL1RichRingQa operator=(const CbmL1RichRingQa&);
struct MCRing {
MCRing()
: MCTrackID(-1)
, primary(0)
, P(0)
, PDG(-1)
, NHits(0)
, Reconstructed(0)
, kind(0)
, x(0)
, y(0)
, r(0)
, k(0)
, Hits()
, BestReco(0)
, NHitsBestReco(0)
, NHitsBestvsNHitsMC(0) {};
Int_t MCTrackID;
bool primary;
Double_t P;
Int_t PDG;
Int_t NHits;
Int_t Reconstructed;
Int_t kind;
Double_t x, y, r;
Int_t k;
std::vector<int> Hits;
Int_t BestReco;
Int_t NHitsBestReco;
Double_t NHitsBestvsNHitsMC;
};
struct PerfHit {
Double_t x, y;
Int_t MCTrackID;
Int_t index;
Bool_t found;
Bool_t on_ring;
};
TClonesArray* fRingArray; // Array of CbmRichRings
TClonesArray* fMCPointArray; // Array of FairMCPoints
TClonesArray* fMCTrackArray; // Array of CbmMCTracks
TClonesArray* fHitArray; // Array of CbmRichHits
private:
TH1F* Chi2Ghost;
TH1F* Chi2Ref;
TH1F* Chi2All;
TH1F* Chi2Clone;
TH2F* Chi2NhitsGhost;
TH2F* Chi2NhitsAll;
TH1F* RGhost;
TH1F* REl;
TH1F* RPi;
TH1F* NHitsMC;
TH1F* NSameHits;
// TH2F *Chi2NhitsGhost;
TH2F* Chi2NhitsPi;
TH2F* Chi2NhitsEll;
TH2F* RNhitsGhost;
TH2F* RNhitsPi;
TH2F* RNhitsEll;
TH2F* RChi2Ghost;
TH2F* RChi2Pi;
TH2F* RChi2Ell;
TH2F* NSameHitsVsP;
TH2F* NHitsVsMCP;
TH2F* RadiusVsPForClone;
TH2F* DistanceVsPClone;
TH2F* Chi2VsPClone;
TH2F* RadiusVsDistanceClone;
TH2F* NHitsRecoVsNHitsMC;
public:
/** Default constructor **/
CbmL1RichRingQa(const char* name = "CbmL1RichRingQa", const char* title = "CbmL1RichRingQa", Int_t verbose = 1);
/** Destructor **/
~CbmL1RichRingQa();
/** Initialization of the task **/
InitStatus Init();
/** Executed task **/
void Exec(Option_t* option);
/** Finish task **/
void Finish();
void CirFit(std::list<std::pair<Double_t, Double_t>>& P, Double_t* X, Double_t* Y, Double_t* R);
ClassDef(CbmL1RichRingQa, 1)
};
#endif