PandaRoot
BSEmcPhiRecoHitSplitter.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 //--------------------------------------------------------------------------
14 // File and Version Information:
15 // $Id:$
16 //
17 // Description:
18 // Class BSEmcPhiRecoHitSplitter
19 // Implementation of PhiRecoHitSplitter which splits clusters based on
20 // local maxima in the Phi Direction for use with Bremstrahlung correction
21 //
22 // Environment:
23 // Software developed for the BaBar Detector at the SLAC B-Factory.
24 //
25 // Adapted for the PANDA experiment at GSI
26 //
27 // Author List:
28 // Phil Strother
29 //
30 // Copyright Information:
31 // Copyright (C) 1997 Imperial College
32 //
33 // Modified:
34 // Binsong Ma, Ermias Atomssa
35 //------------------------------------------------------------------------
36 //#pragma once
37 #ifndef BSEMCPHIRECOHITSPLITTER_HH
38 #define BSEMCPHIRECOHITSPLITTER_HH
39 
40 // Path of file:
41 // ----- $pandaroot/emc/EmcReco
42 
43 #include <PndPersistencyTask.h>
44 #include <map>
45 #include <memory>
46 #include <vector>
47 
48 #include "Rtypes.h"
49 #include "RtypesCore.h"
50 
51 //---------------
52 // C++ Headers --
53 //---------------
54 #include "TObject.h"
55 #include "TString.h"
56 
57 #include "FairTask.h"
58 
59 #include "PndTCAConstContainer.h"
60 #include "PndTCAMutableContainer.h"
61 
62 #include "BSEmcCluster.h"
64 #include "BSEmcDigi.h"
65 #include "BSEmcRecoHit.h"
66 
68 class TBuffer;
69 class TClass;
70 class TMemberInspector;
71 template <class T>
73 template <class T>
75 //------------------------------------
76 // Collaborating Class Declarations --
77 //------------------------------------
78 
79 class BSEmcCluster;
80 class BSEmcRecoHit;
81 class BSEmcDigi;
82 
95  public:
96  // Constructor
97  BSEmcPhiRecoHitSplitter(Int_t t_verbose = 0);
98  // Destructor
99  virtual ~BSEmcPhiRecoHitSplitter();
100 
101  // Methods
102  virtual InitStatus Init() /*override*/;
103  virtual void Exec(Option_t *t_opt) /*override*/;
104  virtual void FinishTask() /*override*/;
105 
106  void SetStorageOfData(Bool_t t_p = kTRUE) { SetPersistency(t_p); };
107  void CreatePhiHits(const std::vector<const BSEmcDigi *> &t_digiArray, const std::vector<const BSEmcCluster *> &t_clusterArray, const TString &t_clusterBranchName,
108  BSEmcCrystalPositionPar *t_positionPar);
109 
110  protected:
112  virtual void SetParContainers() /*override*/;
114 
115  private:
116  // don't allow copying (-Weffc++)
117  BSEmcPhiRecoHitSplitter(const BSEmcPhiRecoHitSplitter &); // no implementation
118  BSEmcPhiRecoHitSplitter &operator=(const BSEmcPhiRecoHitSplitter &); // no implementation
119 
120  private:
130 
133  BSEmcCrystalPositionPar *fBarrelPosition{nullptr};
134  BSEmcCrystalPositionPar *fFWECPosition{nullptr};
135  BSEmcCrystalPositionPar *fBWECPosition{nullptr};
136  BSEmcCrystalPositionPar *fShashlikPosition{nullptr};
137  ClassDef(BSEmcPhiRecoHitSplitter, 2);
138 };
139 #endif /*BSEMCPHIRECOHITSPLITTER_HH*/
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:43
BSEmcPhiRecoHitSplitter(Int_t t_verbose=0)
void SetStorageOfData(Bool_t t_p=kTRUE)
splits clusters based on local maxima in the Phi direction for use with Bremstrahlung correction...
virtual ~BSEmcPhiRecoHitSplitter()
Input and Output Container implementation of PndMutableContainerI using an underlying TClonesArray...
void SetPersistency(Bool_t val=kTRUE)
void CreatePhiHits(const std::vector< const BSEmcDigi *> &t_digiArray, const std::vector< const BSEmcCluster *> &t_clusterArray, const TString &t_clusterBranchName, BSEmcCrystalPositionPar *t_positionPar)
virtual void FinishTask()
BSEmcRecoHit * AddPhiRecoHit()
a cluster (group of neighboring crystals) of hit emc crystals
Definition: BSEmcCluster.h:66
Parameter for crystal positions.
virtual InitStatus Init()
virtual void Exec(Option_t *t_opt)
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:59
virtual void SetParContainers()
Input and Output Container implementation of PndConstContainerI using an underlying TClonesArray...