PandaRoot
PndLmdTrksFilterTask.h
Go to the documentation of this file.
1 #ifndef PNDLMDTRKSFILTERTASK_H
2 #define PNDLMDTRKSFILTERTASK_H
3 
4 #include "FairTask.h"
5 
6 #include "TH1.h"
7 #include "TH2.h"
8 #include "TString.h"
9 #include "TVector3.h"
10 
11 class TClonesArray;
12 
13 class PndLmdTrksFilterTask: public FairTask {
14 public:
15  PndLmdTrksFilterTask(double LabMomentum, bool UseKinematicsFilter, double IPXMean = 0.0,
16  double IPYMean = 0.0);
17 #ifndef __CINT__
20 #endif
21  virtual ~PndLmdTrksFilterTask() = default;
22  void SetVerboseLevel(int verbose) {
23  verboseLevel = verbose;
24  }
25  InitStatus Init();
26  void Finish();
27 
28  void Exec(Option_t* opt);
29 
30 private:
31  std::vector<int> getHitIDSequence(unsigned int TrackID) const;
32  unsigned int getNumberOfIdenticalHits(const std::vector<int> &seq1,
33  const std::vector<int> &seq2) const;
34  int verboseLevel;
35 
36  // Input Data------------
37  TClonesArray* fTrkCandArray;
38  TClonesArray* fTrkArray;
39  TClonesArray* fTrkOutArray;
40 
41  TString fTrkCandName;
42  TString fTrkName;
43  TString fTrkOutName;
44  int fEventNr;
45  bool fUseKinematicsFilter;
46 
47  double fIPXMean; // beam shift in X
48  double fIPYMean; // beam shift in Y
49 
50  // mean and sigma are determined from parameterization (simulations)
51  double PhiDiffMean;
52  double PhiDiffSigma;
53  double MagnitudeRatioMean;
54  double MagnitudeRatioSigma;
55 
56  TH1D *RadialPhiDiffBefore;
57  TH1D *RadialMagnitudeRatioBefore;
58  TH1D *RadialPhiDiffAfter;
59  TH1D *RadialMagnitudeRatioAfter;
60  TH2D *RadialPhiDiffMagnitudeRatioBefore;
61  TH2D *RadialPhiDiffMagnitudeRatioAfter;
62 
63 ClassDef(PndLmdTrksFilterTask, 4)
64  ;
65 };
66 
67 #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)