PandaRoot
PndMCTrackInfoAnaTask.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include "PndPersistencyTask.h"
12 #include "PndMCTrackInfo.h"
13 #include "PndMCTrack.h"
14 
15 #include "PndEventRequirements.h"
16 #include "PndEventCheck.h"
17 
18 #include "TClonesArray.h"
19 
20 #include <string>
21 #include <vector>
22 #include <map>
23 
24 class TClonesArray;
25 
27  public:
30 
32  virtual ~PndMCTrackInfoAnaTask();
33 
34  virtual void SetParContainers();
35  virtual InitStatus Init();
36  virtual InitStatus ReInit();
37 
39  virtual void Exec(Option_t *opt);
40 
45  void SetEventRequirements(PndEventRequirements eventRequirements) { fEventCheck.SetRequirements(eventRequirements); }
46 
47  protected:
48  void Register();
49  void Reset();
50  void FinishTask();
52 
53  void AssignTClonesArrays(std::map<TString, TClonesArray *> &map);
54  void AnalyseResult(PndEventCheck &eventCheck);
55  int GetPointOfFailure(std::vector<int> result);
56  void AddPointOfFailure(int requirement, int position);
57  void InitPointOfFailure();
58  void InitInterestingEvents();
59  std::vector<std::vector<std::vector<int>>> GetInterestingEvents() const { return fInterestingEvents; }
60 
61  private:
62  PndEventCheck fEventCheck;
63  TClonesArray *fMCTracks = nullptr;
64  TClonesArray *fMCTrackInfo = nullptr;
65  TList *fBranchList = nullptr;
66  std::vector<int> fReqResult;
67  std::vector<std::vector<int>> fPointOfFailure;
68  std::vector<std::vector<std::vector<int>>> fInterestingEvents;
69 
70  ClassDef(PndMCTrackInfoAnaTask, 1);
71 };
72 
std::vector< std::vector< std::vector< int > > > GetInterestingEvents() const
particle, requirement, list of events with failure
void SetRequirements(PndEventRequirements &req)
Definition: PndEventCheck.h:41
virtual ~PndMCTrackInfoAnaTask()
int GetPointOfFailure(std::vector< int > result)
void AssignTClonesArrays(std::map< TString, TClonesArray *> &map)
void AnalyseResult(PndEventCheck &eventCheck)
Analyses PndMCTrackInfo objects to determine at which reconstruction stage a reconstruction of a part...
virtual void SetParContainers()
virtual InitStatus ReInit()
void AddPointOfFailure(int requirement, int position)
virtual void Exec(Option_t *opt)
void SetEventRequirements(PndEventRequirements eventRequirements)
virtual InitStatus Init()