CbmRoot
Loading...
Searching...
No Matches
CbmHadronAnalysis.h
Go to the documentation of this file.
1/* Copyright (C) 2012-2020 PI-UHd, GSI
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Norbert Herrmann [committer] */
4
5// ------------------------------------------------------------------
6// ----- CbmHadronAnalysis -----
7// ----- Created 14/12/2012 by N.Herrmann -----
8// ------------------------------------------------------------------
9#ifndef _CBMHADRONANALYSIS_H_
10#define _CBMHADRONANALYSIS_H_
11
12#include "CbmStsKFTrackFitter.h"
13
14#include "FairTask.h"
15
16class FairMCEventHeader;
18class CbmTofCell;
19class CbmMatch;
20class CbmVertex;
22
23class TClonesArray;
24class TFile;
25class TH1F;
26class TH2F;
27class TString;
28class CbmMCDataArray;
29
30class CbmHadronAnalysis : public FairTask {
31
32private:
33 Int_t fEvents; // Number of processed events
34
35 Float_t fBeamMomentum; // Beam momentum
36 Float_t fMidY; // Midrapidity
37 Float_t fDY; // reaction plane exclusion interval
38 Float_t fFlowMinPtm; // min pt/m for RP calculation
39 Float_t fBSelMin; // impact parameter selection
40 Float_t fBSelMax; // impact parameter selection
41 Float_t fwxy2; // normalisation increment
42 Double_t fWMax; // track matching weight
43 Double_t fVtxBMax; // impact parameter cutfor primaries
44
45 TString fPdfFileName; // name of the file name with hadron PDF
46 TString fFlowFileName; // name of the file name with Fourier corrections
47 TFile* fflowFile; // pointer to RP corrections
48
49 FairMCEventHeader* fMCEventHeader;
52
54 CbmMCDataArray* fStsPoints; // STS points
55 TClonesArray* fMCTracksColl; // MC tracks
56 TClonesArray* fStsPointsColl; // STS points
57 TClonesArray* fStsHits; // STS hits
58 TClonesArray* fStsClusters; // STS clusters
59 TClonesArray* fStsTracks; // STS tracks
60 TClonesArray* fStsDigis; // STS digis
61 TClonesArray* fStsDigiMatchColl; // TOF Matched Digis
62 TClonesArray* fTrdPoints; // TRD points
63 TClonesArray* fTrdHits; // TRD hits
64 TClonesArray* fTofPoints; // TOF points
65 TClonesArray* fTofHits; // TOF hits
66 TClonesArray* fTofDigis; // TOF Digis
67 TClonesArray* fTofDigiMatchColl; // TOF Matched Digis
68 TClonesArray* fTofDigiMatchPointsColl; // TOF Matched Digi Points
69 TClonesArray* fGlobalTracks; // Global tracks
70 TClonesArray* fHadrons; // Hadrons
71 CbmVertex* fPrimVertex; // Pointer to the primary vertex
72 CbmStsKFTrackFitter fTrackFitter; // Pointer to the Kalman Filter Fitter algorithm
73
85
92
104
116
128
140
146
154
165
171
177
183
195
207
219
231
243
255
267
279
280 // xy hit density
284
288
300
301 // point debugging
305
306 // hit debugging
307 TH2F* fa_dxx;
308 TH2F* fa_dxy;
309 TH2F* fa_dxz;
310 TH2F* fa_dyx;
311 TH2F* fa_dyy;
312 TH2F* fa_dyz;
313 TH2F* fa_dzx;
314 TH2F* fa_dzy;
315 TH2F* fa_dzz;
316
319
332
337
342
343 //GlobalTrack performance
345 TH1F* fa_VtxB;
361
366
381
393
407
421
422 TH2F* fhwdist;
425 TH2F* fhwdelp;
426
431
432 Bool_t bRecSec;
433 Double_t fdDistPrimLim; // =1.5; // Ext Parameter: Max Tof-Sts trans distance for primaries
434 Double_t fdDistPrimLim2; //=0.3; // Ext Parameter: Max Sts-Sts trans distance for primaries
435 Double_t fdDistSecLim2; //=0.5; // Ext Parameter: Max Sts-Sts trans distance from TOF direction for secondaries
436 Double_t fdD0ProtLim; //=0.4; // Ext Parameter: Min impact parameter for secondary proton
437 Double_t fdOpAngMin; //=0.01; // Ext Parameter: Min opening angle for accepting pair
438 Double_t fdDCALim; //=0.2; // Ext Parameter: Max DCA for accepting pair
439 Double_t fdVLenMin; //=25.; // Ext Parameter: Min Lambda flight path length for accepting pair
440 Double_t fdVLenMax; //=25.; // Ext Parameter: Max Lambda flight path length for accepting pair
441 Double_t fdDistTRD; // max accepted distance of Trd Hit from STS-TOF line
442 Double_t fdTRDHmulMin; // min associated Trd Hits to Track candidates
443 UInt_t fNMixedEvents; //=10; // Number of events to be mixed with
444
445 void CreateHistogramms();
446 InitStatus ReadPdfFile();
447 InitStatus ReadFlowFile();
449
452
453public:
455 CbmHadronAnalysis(const char* name, Int_t verbose = 1);
456 virtual ~CbmHadronAnalysis();
457
458 virtual InitStatus Init();
459 virtual void Exec(Option_t* option);
460 virtual void ExecEvent(Option_t* option);
461 virtual void Finish();
462
463 void WriteHistogramms();
464
465 inline void SetBeamMomentum(Float_t bm) { fBeamMomentum = bm; }
466 inline void SetMidY(Float_t midY) { fMidY = midY; }
467 inline void SetDY(Float_t DY) { fDY = DY; }
468 inline void SetFlowMinPtm(Float_t mptm) { fFlowMinPtm = mptm; }
469 inline void SetBSelMin(Float_t b) { fBSelMin = b; }
470 inline void SetBSelMax(Float_t b) { fBSelMax = b; }
471 inline void SetVtxBMax(Float_t b) { fVtxBMax = b; }
472 inline void SetWMax(Float_t w) { fWMax = w; }
473
474 void SetPdfFileName(TString pdfFileName) { fPdfFileName = pdfFileName; }
475 void SetFlowFileName(TString flowFileName) { fFlowFileName = flowFileName; }
476
477 inline Float_t GetBeamMomentum() const { return fBeamMomentum; }
478 inline Float_t GetMidY() const { return fMidY; }
479 inline Float_t GetDY() const { return fDY; }
480 inline Float_t GetFlowMinPtm() const { return fFlowMinPtm; }
481 inline Float_t GetBSelMin() const { return fBSelMin; }
482 inline Float_t GetBSelMax() const { return fBSelMax; }
483
484 inline void SetRecSec(Bool_t val) { bRecSec = val; }
485 inline void SetDistPrimLim(Double_t val) { fdDistPrimLim = val; }
486 inline void SetDistPrimLim2(Double_t val) { fdDistPrimLim2 = val; }
487 inline void SetDistSecLim2(Double_t val) { fdDistSecLim2 = val; }
488 inline void SetD0ProtLim(Double_t val) { fdD0ProtLim = val; }
489 inline void SetOpAngMin(Double_t val) { fdOpAngMin = val; }
490 inline void SetDCALim(Double_t val) { fdDCALim = val; }
491 inline void SetVLenMin(Double_t val) { fdVLenMin = val; }
492 inline void SetVLenMax(Double_t val) { fdVLenMax = val; }
493 inline void SetDistTRD(Double_t val) { fdDistTRD = val; }
494 inline void SetTRDHmulMin(Double_t val) { fdTRDHmulMin = val; }
495 inline void SetNMixedEvents(UInt_t val) { fNMixedEvents = val; }
496
498};
499
500#endif
void SetVLenMin(Double_t val)
CbmHadronAnalysis(const CbmHadronAnalysis &)
void SetTRDHmulMin(Double_t val)
virtual InitStatus Init()
void SetMidY(Float_t midY)
TClonesArray * fTofDigiMatchColl
TClonesArray * fTrdPoints
TClonesArray * fTofHits
void SetD0ProtLim(Double_t val)
void SetVLenMax(Double_t val)
void SetDY(Float_t DY)
TClonesArray * fStsDigis
Float_t GetDY() const
TClonesArray * fGlobalTracks
void SetBeamMomentum(Float_t bm)
void SetPdfFileName(TString pdfFileName)
TClonesArray * fHadrons
Float_t GetBSelMax() const
void SetOpAngMin(Double_t val)
void SetBSelMax(Float_t b)
void SetDistTRD(Double_t val)
void SetNMixedEvents(UInt_t val)
void SetDistPrimLim(Double_t val)
CbmHadronAnalysis operator=(const CbmHadronAnalysis &)
TClonesArray * fMCTracksColl
ClassDef(CbmHadronAnalysis, 1)
Float_t GetBSelMin() const
Float_t GetBeamMomentum() const
void SetRecSec(Bool_t val)
Float_t GetFlowMinPtm() const
CbmMCDataArray * fStsPoints
CbmStsKFTrackFitter fTrackFitter
FairMCEventHeader * fMCEventHeader
TClonesArray * fStsClusters
void SetDistSecLim2(Double_t val)
TClonesArray * fStsPointsColl
TClonesArray * fStsHits
TClonesArray * fTrdHits
void SetWMax(Float_t w)
CbmMCDataArray * fMCTracks
void SetDistPrimLim2(Double_t val)
void SetVtxBMax(Float_t b)
void SetFlowMinPtm(Float_t mptm)
virtual void Exec(Option_t *option)
Float_t GetMidY() const
TClonesArray * fTofDigis
TClonesArray * fTofDigiMatchPointsColl
CbmTofGeoHandler * fGeoHandler
void SetFlowFileName(TString flowFileName)
virtual void ExecEvent(Option_t *option)
void SetBSelMin(Float_t b)
TClonesArray * fStsDigiMatchColl
TClonesArray * fTofPoints
void SetDCALim(Double_t val)
TClonesArray * fStsTracks
Access to a MC data branch for time-based analysis.