PandaRoot
PndMCTrackInfoAnaTask.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 
21 #pragma once
22 
23 #include "PndPersistencyTask.h"
24 #include "PndMCTrackInfo.h"
25 #include "PndMCTrack.h"
26 
27 #include "PndEventRequirements.h"
28 #include "PndEventCheck.h"
29 
30 #include "TClonesArray.h"
31 
32 #include <string>
33 #include <vector>
34 #include <map>
35 
36 class TClonesArray;
37 
39  public:
42 
44  virtual ~PndMCTrackInfoAnaTask();
45 
46  virtual void SetParContainers();
47  virtual InitStatus Init();
48  virtual InitStatus ReInit();
49 
51  virtual void Exec(Option_t *opt);
52 
57  void SetEventRequirements(PndEventRequirements eventRequirements) { fEventCheck.SetRequirements(eventRequirements); }
58 
59  protected:
60  void Register();
61  void Reset();
62  void FinishTask();
64 
65  void AssignTClonesArrays(std::map<TString, TClonesArray *> &map);
66  void AnalyseResult(PndEventCheck &eventCheck);
67  int GetPointOfFailure(std::vector<int> result);
68  void AddPointOfFailure(int requirement, int position);
69  void InitPointOfFailure();
70  void InitInterestingEvents();
71  std::vector<std::vector<std::vector<int>>> GetInterestingEvents() const { return fInterestingEvents; }
72 
73  private:
74  PndEventCheck fEventCheck;
75  TClonesArray *fMCTracks = nullptr;
76  TClonesArray *fMCTrackInfo = nullptr;
77  TList *fBranchList = nullptr;
78  std::vector<int> fReqResult;
79  std::vector<std::vector<int>> fPointOfFailure;
80  std::vector<std::vector<std::vector<int>>> fInterestingEvents;
81 
82  ClassDef(PndMCTrackInfoAnaTask, 1);
83 };
84 
std::vector< std::vector< std::vector< int > > > GetInterestingEvents() const
particle, requirement, list of events with failure
void SetRequirements(PndEventRequirements &req)
Definition: PndEventCheck.h:53
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()