PandaRoot
BSEmcPhiRecoHitSplitter.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id:$
4 //
5 // Description:
6 // Class BSEmcPhiRecoHitSplitter
7 // Implementation of PhiRecoHitSplitter which splits clusters based on
8 // local maxima in the Phi Direction for use with Bremstrahlung correction
9 //
10 // Environment:
11 // Software developed for the BaBar Detector at the SLAC B-Factory.
12 //
13 // Adapted for the PANDA experiment at GSI
14 //
15 // Author List:
16 // Phil Strother
17 //
18 // Copyright Information:
19 // Copyright (C) 1997 Imperial College
20 //
21 // Modified:
22 // Binsong Ma, Ermias Atomssa
23 //------------------------------------------------------------------------
24 //#pragma once
25 #ifndef BSEMCPHIRECOHITSPLITTER_HH
26 #define BSEMCPHIRECOHITSPLITTER_HH
27 
28 // Path of file:
29 // ----- $pandaroot/emc/EmcReco
30 
31 #include <PndPersistencyTask.h>
32 #include <map>
33 #include <memory>
34 #include <vector>
35 
36 #include "Rtypes.h"
37 #include "RtypesCore.h"
38 
39 //---------------
40 // C++ Headers --
41 //---------------
42 #include "TObject.h"
43 #include "TString.h"
44 
45 #include "FairTask.h"
46 
47 #include "PndInputContainer.h"
48 #include "PndInputContainerI.h"
49 #include "PndOutputContainer.h"
50 #include "PndOutputContainerI.h"
51 
52 #include "BSEmcCluster.h"
54 #include "BSEmcDigi.h"
55 #include "BSEmcRecoHit.h"
56 
58 class TBuffer;
59 class TClass;
60 class TMemberInspector;
61 template <class T>
62 class PndInputContainerI;
63 template <class T>
65 //------------------------------------
66 // Collaborating Class Declarations --
67 //------------------------------------
68 
69 class BSEmcCluster;
70 class BSEmcRecoHit;
71 class BSEmcDigi;
72 
85  public:
86  // Constructor
87  BSEmcPhiRecoHitSplitter(Int_t t_verbose = 0);
88  // Destructor
89  virtual ~BSEmcPhiRecoHitSplitter();
90 
91  // Methods
92  virtual InitStatus Init() /*override*/;
93  virtual void Exec(Option_t *t_opt) /*override*/;
94  virtual void FinishTask() /*override*/;
95 
96  void SetStorageOfData(Bool_t t_p = kTRUE) { SetPersistency(t_p); };
97  void CreatePhiHits(const std::vector<const BSEmcDigi *> &t_digiArray, const std::vector<const BSEmcCluster *> &t_clusterArray, const TString &t_clusterBranchName,
98  BSEmcCrystalPositionPar *t_positionPar);
99 
100  protected:
102  virtual void SetParContainers() /*override*/;
104 
105  private:
106  // don't allow copying (-Weffc++)
107  BSEmcPhiRecoHitSplitter(const BSEmcPhiRecoHitSplitter &); // no implementation
108  BSEmcPhiRecoHitSplitter &operator=(const BSEmcPhiRecoHitSplitter &); // no implementation
109 
110  private:
120 
122  PndOutputContainerI<BSEmcRecoHit> *fPhiRecoHitArray{new PndOutputContainer<BSEmcRecoHit>{"Emc", kTRUE}};
123  BSEmcCrystalPositionPar *fBarrelPosition{nullptr};
124  BSEmcCrystalPositionPar *fFWECPosition{nullptr};
125  BSEmcCrystalPositionPar *fBWECPosition{nullptr};
126  BSEmcCrystalPositionPar *fShashlikPosition{nullptr};
127  ClassDef(BSEmcPhiRecoHitSplitter, 2);
128 };
129 #endif /*BSEMCPHIRECOHITSPLITTER_HH*/
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:31
BSEmcPhiRecoHitSplitter(Int_t t_verbose=0)
void SetStorageOfData(Bool_t t_p=kTRUE)
"Smart" container that figures out for you what underlying container needs to be fetched from FairRoo...
splits clusters based on local maxima in the Phi direction for use with Bremstrahlung correction...
"Smart" container that figures out for you what underlying container needs to be fetched from FairRoo...
virtual ~BSEmcPhiRecoHitSplitter()
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:54
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:47
virtual void SetParContainers()