PandaRoot
PndGemFindHits.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 //* $Id: */
14 
15 // -------------------------------------------------------------------------
16 // ----- PndGemFindHits header file -----
17 // ----- Created 15/02/2009 by R. Karabowicz -----
18 // -------------------------------------------------------------------------
19 
30 #ifndef PNDGEMFINDHITS_H
31 #define PNDGEMFINDHITS_H 1
32 
33 #include <PndPersistencyTask.h>
34 #include "TStopwatch.h"
35 #include "TH2F.h"
36 #include "TVector3.h"
37 
38 #include <map>
39 #include <set>
40 #include <vector>
41 
42 class TH1F;
43 class TClonesArray;
44 class PndGemMonitor;
45 class PndGemDigiPar;
46 class PndGemSensor;
47 class PndGemStation;
48 class PndGemCluster;
49 class PndGemDigitize;
50 
52 
53  public:
56 
58  PndGemFindHits(Int_t iVerbose);
59 
61  PndGemFindHits(const char *name, Int_t iVerbose);
62 
64  virtual ~PndGemFindHits();
65  void ConfirmHits(); // why in public??
66  void ActivateDigis(); // why in public??
67 
69  virtual void Exec(Option_t *opt);
70 
71  void SetUseClusters(Bool_t bt = kTRUE) { fUseClusters = bt; }
72 
73  void RunTimeBased(Bool_t bt = kTRUE) { fTimeOrderedDigi = bt; }
74 
75  Bool_t GetTimeBased() const { return fTimeOrderedDigi; }
76 
77  void SetHitWindow(Double_t dd = 1.5) { fHitWindow = dd; }
78 
79  private:
80  PndGemMonitor *fMonitor;
81  PndGemDigiPar *fDigiPar;
82  TClonesArray *fDigis;
83  TClonesArray *fHits;
84  TClonesArray *fHitsTemp;
85  std::map<PndGemSensor *, std::set<Int_t>> fDigiMapF;
86  std::map<PndGemSensor *, std::set<Int_t>> fDigiMapB;
88  Int_t fMCPointBranchId;
89  Bool_t fUseClusters;
90  Bool_t fTimeOrderedDigi;
91 
92  Double_t fPrepTime;
93  Double_t fSortTime;
94  Double_t fCreateTime;
95  Double_t fConfirmTime;
96  Double_t fActivateTime;
97  Double_t fAllTime;
98  Double_t fHitWindow;
99 
100  Int_t fTNofEvents;
101  Int_t fTNofDigis;
102  Int_t fTNofHits;
103  Int_t fTNofHitsTemp;
104 
105  TStopwatch fTimer;
106 
108  virtual void SetParContainers();
109 
111  virtual InitStatus Init();
112 
114  virtual InitStatus ReInit();
115 
117  void MakeSets();
118 
120  void SortDigis();
121 
123  Int_t FindHits(PndGemSensor *sensor, std::set<Int_t> &fSet, std::set<Int_t> &bSet);
124 
126  Int_t FindHits2(PndGemSensor *sensor, std::set<Int_t> &fSet, std::set<Int_t> &bSet);
127 
129  void ConfirmHits2();
130 
132  virtual void Finish();
133 
134  ClassDef(PndGemFindHits, 1);
135 };
136 
137 #endif
void SetUseClusters(Bool_t bt=kTRUE)
void SetHitWindow(Double_t dd=1.5)
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
void ConfirmHits()
Bool_t GetTimeBased() const
virtual ~PndGemFindHits()
virtual void Exec(Option_t *opt)
Digitization Parameter Class for GEM part.
Definition: PndGemMonitor.h:47
void ActivateDigis()
void RunTimeBased(Bool_t bt=kTRUE)