PandaRoot
PndTrackSmearTask.h
Go to the documentation of this file.
1 /*
2  * PndTrackSmearTask.h
3  *
4  * \brief Task to flag or to remove tracks with missing Pz information
5  *
6  * This task takes as an input any PndTrack branch. It goes through all the tracks. For those tracks only consisting of STTHits
7  * and with a ParamFirst::pz value between 0.015 and 0.025 it either sets the PndTrack::fFlag to -30 or deletes the track.
8  * What action is taken is selected by SetRemoveTrack(). If SetRemoveTrack is set to kTRUE the track is deleted otherwise flaged.
9  * The filtered PndTracks are written in an output branch either with a given name by SetOutputTrackBranch() of, if no branch name is
10  * given by InputTrackBranchName + "_filtered".
11  *
12  * Created on: 22.3.2017
13  * Author: t.stockmanns
14  */
15 
16 #ifndef PndTrackSmearTask_H_
17 #define PndTrackSmearTask_H_
18 
19 #include "PndPersistencyTask.h"
20 #include "TString.h"
21 #include "TVector3.h"
22 #include "FairTrackParP.h"
23 
24 class TClonesArray;
25 
27  public:
28  PndTrackSmearTask() : PndPersistencyTask("Missing Pz Track Cleaner Task"), fInputTrackBranches(), fOutputTrackBranches(), fTracks(0), fMomSigma(0.03, 0.03, 0.03)
29  {
30  SetPersistency(kTRUE);
31  };
32 
33  PndTrackSmearTask(const TString &branchName)
34  : PndPersistencyTask("Missing Pz Track Cleaner Task"), fInputTrackBranches(), fOutputTrackBranches(), fTracks(0), fMomSigma(0.03, 0.03, 0.03)
35  {
36  SetPersistency(kTRUE);
37  AddInputTrackBranch(branchName);
38  };
39 
40  virtual ~PndTrackSmearTask(){};
41 
43  virtual void SetParContainers();
44  virtual InitStatus Init();
45 
47  virtual void Exec(Option_t *opt);
48  virtual void FinishEvent();
49  virtual void Finish();
50 
51  void SetMomSmearing(TVector3 dpop) { fMomSigma = dpop; }
52  void AddInputTrackBranch(const TString &name)
53  {
54  fInputTrackBranches.push_back(name);
55  fOutputTrackBranches.push_back(name + "_fakeonline");
56  }
57  void SetPersistence(const Bool_t &val) { SetPersistency(val); }
58 
59  private:
60  FairTrackParP SmearTrackPar(FairTrackParP par);
61  void SmearMom(TVector3 &vec, Double_t Cov66[6][6]);
62 
63  std::vector<TString> fInputTrackBranches;
64  std::vector<TString> fOutputTrackBranches;
65  std::vector<TClonesArray *> fTracks;
66  std::vector<TClonesArray *> fOutputTracks;
67 
68  TVector3 fMomSigma;
69 
70  ClassDef(PndTrackSmearTask, 1);
71 };
72 
73 #endif /* PndTrackSmearTask_H_ */
virtual void Exec(Option_t *opt)
virtual ~PndTrackSmearTask()
PndTrackSmearTask(const TString &branchName)
void SetPersistency(Bool_t val=kTRUE)
virtual void FinishEvent()
void SetPersistence(const Bool_t &val)
void AddInputTrackBranch(const TString &name)
virtual void SetParContainers()
virtual InitStatus Init()
virtual void Finish()
void SetMomSmearing(TVector3 dpop)