PandaRoot
PndPosCorrectorTask.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 
13 #ifndef PndPosCorrectorTask_H
14 #define PndPosCorrectorTask_H
15 
16 #include "FairTask.h" // for FairTask, InitStatus
17 
18 #include "PndMapSorter.h"
19 
20 #include "Rtypes.h" // for Bool_t, Int_t, kTRUE, etc
21 #include "TString.h" // for TString
22 
23 class FairTimeStamp;
24 class TClonesArray;
25 
26 class PndPosCorrectorTask : public FairTask {
27  public:
30  : FairTask("SorterTask"), fPersistance(kTRUE), fInputBranch("MVDHitsPixelCorrectedSorted_event"), fInputArray(nullptr), fOutputBranch("MVDHitsPixelPosCorrected"), fFolder(),
31  fOutputArray(nullptr), fEntryNr(0)
32  {
33  SetVerbose(2);
34  }
35 
37  PndPosCorrectorTask(const char *name) : FairTask(name), fPersistance(kTRUE), fInputBranch(), fInputArray(nullptr), fOutputBranch(), fFolder(), fOutputArray(nullptr), fEntryNr(0)
38  {
39  SetVerbose(2);
40  }
41 
42  PndPosCorrectorTask(TString inputBranch, TString outputBranch, TString folderName)
43  : FairTask("Corrector"), fPersistance(kTRUE), fInputBranch(inputBranch), fInputArray(nullptr), fOutputBranch(outputBranch), fFolder(folderName), fOutputArray(nullptr),
44  fEntryNr(0)
45  {
46  SetVerbose(2);
47  }
48 
50  virtual ~PndPosCorrectorTask() {}
51 
53  virtual InitStatus Init();
54  virtual InitStatus ReInit();
55 
57  virtual void Exec(Option_t *opt);
58  virtual void FinishEvent();
59  virtual void FinishTask();
60 
61  void SetCorrectionValue(Int_t sensorId, Double_t xvalue, Double_t yvalue) { fPosCorrectionMap[sensorId] = std::make_pair(xvalue, yvalue); }
62 
63  virtual void SetParContainers(){};
64 
65  void SetPersistance(Bool_t p = kTRUE) { fPersistance = p; };
66  Bool_t GetPersistance() { return fPersistance; };
67 
68  protected:
70  Bool_t fPersistance;
72  TString fInputBranch;
73  TClonesArray *fInputArray;
75  TString fOutputBranch;
76  TString fFolder;
77  TClonesArray *fOutputArray;
78  Int_t fEntryNr;
79  std::map<Int_t, std::pair<Double_t, Double_t>> fPosCorrectionMap; //< first value is sensor ID, second parameter is correction values for x and y
82 
84 };
85 
86 #endif
virtual void SetParContainers()
virtual void FinishTask()
PndPosCorrectorTask & operator=(const PndPosCorrectorTask &)
virtual void FinishEvent()
ClassDef(PndPosCorrectorTask, 1)
virtual InitStatus ReInit()
virtual void Exec(Option_t *opt)
PndPosCorrectorTask(TString inputBranch, TString outputBranch, TString folderName)
PndPosCorrectorTask(const char *name)
void SetCorrectionValue(Int_t sensorId, Double_t xvalue, Double_t yvalue)
std::map< Int_t, std::pair< Double_t, Double_t > > fPosCorrectionMap
virtual InitStatus Init()
TClonesArray * fOutputArray
void SetPersistance(Bool_t p=kTRUE)
TClonesArray * fInputArray