PandaRoot
PndMvdIdealRecoTask.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 // -------------------------------------------------------------------------
14 // ----- PndMvdIdealRecoTask header file -----
15 // ----- Created 20/03/07 by R.Kliemt -----
16 // -------------------------------------------------------------------------
17 
25 #ifndef PNDMVDIDEALRECOTASK_H
26 #define PNDMVDIDEALRECOTASK_H
27 
28 // Root includes
29 #include "TVector3.h"
30 #include "TRandom.h"
31 #include "TString.h"
32 #include "TGeoManager.h"
33 
34 // framework includes
35 #include "FairTask.h"
36 
37 // PndMvd includes
38 #include "PndSdsMCPoint.h"
39 #include "PndGeoHandling.h"
40 
41 class TClonesArray;
42 
43 class PndMvdIdealRecoTask : public FairTask {
44  public:
47 
48  PndMvdIdealRecoTask(Double_t sx, Double_t sy, Double_t sz);
49 
51  virtual ~PndMvdIdealRecoTask();
52 
53  PndMvdIdealRecoTask(const PndMvdIdealRecoTask &) = delete;
55 
57  virtual void SetParContainers();
58  virtual InitStatus Init();
59 
61  virtual void Exec(Option_t *opt);
62 
63  void SetPersistance(Bool_t p = kTRUE) { fPersistance = p; };
64  Bool_t GetPersistance() { return fPersistance; };
65 
66  private:
67  Bool_t fPersistance; // switch to turn on/off storing the arrays to a file
68 
69  TString fBranchName;
70  PndGeoHandling *fGeoH;
72  TClonesArray *fPointArray;
73  TClonesArray *fMctruthArray;
74 
76  TClonesArray *fHitOutputArray;
78  Double_t fSigmaX; // Variance vector of sensor smearing
79  Double_t fSigmaY; // Variance vector of sensor smearing
80  Double_t fSigmaZ; // Variance vector of sensor smearing
81  PndSdsMCPoint *fCurrentPndMvdMCPoint;
82  TGeoHMatrix *fCurrentTransMat;
83  TMatrixT<Double_t> fHitCovMatrix;
85  void InitTransMat();
86  void smear(TVector3 &pos);
87  void smearLocal(TVector3 &pos);
88  void CalcDetPlane(TVector3 &o, TVector3 &u, TVector3 &v);
89 
90  void Register();
91 
92  void Reset();
93 
94  void ProduceHits();
95 
96  ClassDef(PndMvdIdealRecoTask, 1);
97 };
98 
99 #endif
virtual InitStatus Init()
virtual void Exec(Option_t *opt)
virtual ~PndMvdIdealRecoTask()
__m128 v
Definition: P4_F32vec4.h:15
Class to access the naming information of the MVD.
virtual void SetParContainers()
void SetPersistance(Bool_t p=kTRUE)
PndMvdIdealRecoTask & operator=(const PndMvdIdealRecoTask &)=delete