PandaRoot
PndMcClonerMulti.h
Go to the documentation of this file.
1 
17 #pragma once
18 
19 #include "FairTask.h"
20 #include "PndMCTrack.h"
21 #include <map>
22 
23 using namespace std;
24 
25 class TClonesArray;
26 
27 class PndMcClonerMulti : public FairTask {
28 
29  public:
32 
35 
37  virtual InitStatus Init();
38 
40  virtual void Exec(Option_t *);
41 
42  void SetCleanMc(Bool_t opt = kTRUE) { fCleanMC = opt; }
43  void SetOutputBranch(TString branch) { fTrackBranchNamePidHypo = branch; }
44 
45  protected:
46  void FindUsedMCIndices();
47  void CloneMCTracks();
48  void CloneAndCleanMCTrack();
49  void CorrectMotherIndices();
50  void CorrectPidIndices();
51  void CloneMcTrack(Int_t mcidx = -1);
52  void MarkMcTree(Int_t mcindex = -1);
53 
55  TClonesArray *fInputArray;
56 
58  TClonesArray *fPidChargedArray[5];
59 
61  TClonesArray *fPidNeutralArray;
62 
64  TClonesArray *fOutputArray;
65 
66  map<Int_t, Int_t> fMmapMCIndex; // Map <old mc index, new mc index>
67 
68  Bool_t fCleanMC; // Flag to clean the MCTrack from unused indices
69 
70  TString fPidHypoStr[5];
71 
73 
74  ClassDef(PndMcClonerMulti, 2);
75 };
76 
TClonesArray * fPidNeutralArray
void SetCleanMc(Bool_t opt=kTRUE)
STL namespace.
map< Int_t, Int_t > fMmapMCIndex
void SetOutputBranch(TString branch)
TClonesArray * fOutputArray
TString fTrackBranchNamePidHypo
TClonesArray * fInputArray