PandaRoot
PndLmdTrksFilterTask.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PNDLMDTRKSFILTERTASK_H
14 #define PNDLMDTRKSFILTERTASK_H
15 
16 #include "FairTask.h"
17 
18 #include "TH1.h"
19 #include "TH2.h"
20 #include "TString.h"
21 #include "TVector3.h"
22 
23 class TClonesArray;
24 
25 class PndLmdTrksFilterTask: public FairTask {
26 public:
27  PndLmdTrksFilterTask(double LabMomentum, bool UseKinematicsFilter, double IPXMean = 0.0,
28  double IPYMean = 0.0);
29 #ifndef __CINT__
32 #endif
33  virtual ~PndLmdTrksFilterTask() = default;
34  void SetVerboseLevel(int verbose) {
35  verboseLevel = verbose;
36  }
37  InitStatus Init();
38  void Finish();
39 
40  void Exec(Option_t* opt);
41 
42 private:
43  std::vector<int> getHitIDSequence(unsigned int TrackID) const;
44  unsigned int getNumberOfIdenticalHits(const std::vector<int> &seq1,
45  const std::vector<int> &seq2) const;
46  int verboseLevel;
47 
48  // Input Data------------
49  TClonesArray* fTrkCandArray;
50  TClonesArray* fTrkArray;
51  TClonesArray* fTrkOutArray;
52 
53  TString fTrkCandName;
54  TString fTrkName;
55  TString fTrkOutName;
56  int fEventNr;
57  bool fUseKinematicsFilter;
58 
59  double fIPXMean; // beam shift in X
60  double fIPYMean; // beam shift in Y
61 
62  // mean and sigma are determined from parameterization (simulations)
63  double PhiDiffMean;
64  double PhiDiffSigma;
65  double MagnitudeRatioMean;
66  double MagnitudeRatioSigma;
67 
68  TH1D *RadialPhiDiffBefore;
69  TH1D *RadialMagnitudeRatioBefore;
70  TH1D *RadialPhiDiffAfter;
71  TH1D *RadialMagnitudeRatioAfter;
72  TH2D *RadialPhiDiffMagnitudeRatioBefore;
73  TH2D *RadialPhiDiffMagnitudeRatioAfter;
74 
75 ClassDef(PndLmdTrksFilterTask, 4)
76  ;
77 };
78 
79 #endif
PndLmdTrksFilterTask & operator=(const PndLmdTrksFilterTask &)=delete
virtual ~PndLmdTrksFilterTask()=default
PndLmdTrksFilterTask(double LabMomentum, bool UseKinematicsFilter, double IPXMean=0.0, double IPYMean=0.0)
void Exec(Option_t *opt)
void SetVerboseLevel(int verbose)