CbmRoot
Loading...
Searching...
No Matches
CbmKFParticleFinderQa.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer], Maksym Zyzak */
4
5//-----------------------------------------------------------
6//-----------------------------------------------------------
7
8#ifndef CbmKFParticleFinderQa_HH
9#define CbmKFParticleFinderQa_HH
10
11#include "FairTask.h"
12#include "TString.h"
13
14#include <vector>
15
16class KFParticleTopoReconstructor;
17class KFTopoPerformance;
18class TClonesArray;
19class CbmMCEventList;
20class CbmMCDataArray;
21class TFile;
22class TObject;
23
24class CbmKFParticleFinderQa : public FairTask {
25 public:
26 // Constructors/Destructors ---------
27 CbmKFParticleFinderQa(const char* name = "CbmKFParticleFinderQa", Int_t iVerbose = 0,
28 const KFParticleTopoReconstructor* tr = nullptr,
29 TString outFileName = "CbmKFParticleFinderQa.root");
31
32 void SetEffFileName(const TString& name) { fEfffileName = name; }
33
34 virtual InitStatus Init();
35 virtual void Exec(Option_t* opt);
36 virtual void Finish();
37
38 void SetPrintEffFrequency(Int_t n);
39
40 void SaveParticles(Bool_t b = 1) { fSaveParticles = b; }
41 void SaveMCParticles(Bool_t b = 1) { fSaveMCParticles = b; }
42
43 // Set SE analysis
45
46 //Tests
47 void SetCheckDecayQA() { fCheckDecayQA = true; }
48 void SetReferenceResults(TString t) { fReferenceResults = t; }
49 void SetDecayToAnalyse(int iDecay) { fDecayToAnalyse = iDecay; }
50 bool IsTestPassed() { return fTestOk; }
51
52 private:
55
56 void WriteHistosCurFile(TObject* obj);
57 void FitDecayQAHistograms(float sigma[14], const bool saveReferenceResults = false) const;
58 void CheckDecayQA();
59
60
61 // Data members -----------------------
62
63 bool fIsInitialized{false}; // if the task is properly initialized
64 bool fIsMcData{false}; // if the MC information present
65
66 //input branches
67 TClonesArray* fRecoEvents{nullptr};
68 CbmMCDataArray* fMCTrackArray{nullptr}; //mc tracks
69 TClonesArray* fMCTrackArrayEvent{nullptr};
70 CbmMCEventList* fMcEventList{nullptr}; //mc event list in timeslice
71 TClonesArray* fTrackMatchArray{nullptr}; //track match
72
73 // output arrays of particles
74 TClonesArray* fRecParticles{nullptr}; // output array of KF Particles
75 TClonesArray* fMCParticles{nullptr}; // output array of MC Particles
76 TClonesArray* fMatchParticles{nullptr}; // output array of match objects
77
78 Bool_t fSaveParticles{false};
79 Bool_t fSaveMCParticles{false};
80
81 bool fLegacyEventMode{false}; // event-by-event mode where data is stored in an old-fasion way
82
83 //output file with histograms
84 TString fOutFileName{"CbmKFParticleFinderQa.root"};
85 TFile* fOutFile{nullptr};
86 TString fEfffileName{"Efficiency.txt"};
87
88 //KF Particle QA
89 KFTopoPerformance* fTopoPerformance{nullptr};
90
91 Int_t fPrintFrequency{100};
92 Int_t fNTimeSlices{0};
93 Double_t fTime[5];
94
95 //for super event analysis
97
98 //for tests
99 TString fReferenceResults{"./"};
101 bool fCheckDecayQA{false};
102 bool fTestOk{false};
103
105};
106
107#endif
void WriteHistosCurFile(TObject *obj)
CbmKFParticleFinderQa(const char *name="CbmKFParticleFinderQa", Int_t iVerbose=0, const KFParticleTopoReconstructor *tr=nullptr, TString outFileName="CbmKFParticleFinderQa.root")
virtual void Exec(Option_t *opt)
CbmMCDataArray * fMCTrackArray
Array of CbmEvent objects.
KFTopoPerformance * fTopoPerformance
ClassDef(CbmKFParticleFinderQa, 1)
void SaveMCParticles(Bool_t b=1)
void FitDecayQAHistograms(float sigma[14], const bool saveReferenceResults=false) const
CbmKFParticleFinderQa(const CbmKFParticleFinderQa &)
void SetDecayToAnalyse(int iDecay)
void SetReferenceResults(TString t)
void SetEffFileName(const TString &name)
const CbmKFParticleFinderQa & operator=(const CbmKFParticleFinderQa &)
Access to a MC data branch for time-based analysis.
Container class for MC events with number, file and start time.