PandaRoot
PndEmcOnlineBumpSplitter.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id:$
4 //
5 // Description:
6 // Class PndEmcOnlineBumpSplitter
7 // Implementation of OnlineBumpSplitter which splits clusters based on
8 // local maxima, determined in a 0th order approximation, i.e. by looking
9 // for the two most energetic digis and checking if they are neighbours.
10 //
11 // Environment:
12 // Software developed for the PANDA experiment at GSI.
13 //
14 // Author List:
15 // Marcel Tiemens
16 //------------------------------------------------------------------------
17 //#pragma once
18 #ifndef PNDEMCONLINEBUMPSPLITTER_H
19 #define PNDEMCONLINEBUMPSPLITTER_H
20 
21 // Path of file:
22 // ----- $pandaroot/emc/EmcReco
23 
24 //---------------
25 // C++ Headers --
26 //---------------
27 #include <vector>
28 #include <map>
29 
30 #include "FairTask.h"
31 #include "TObject.h"
32 #include "TClonesArray.h"
33 #include "PndEmcDataTypes.h"
34 //#include "PndEmcDigiCalibrator.h"
35 //------------------------------------
36 // Collaborating Class Declarations --
37 //------------------------------------
38 
39 class PndEmcCluster;
40 class PndEmcBump;
41 class PndEmcDigi;
43 
44 class PndEmcGeoPar;
45 class PndEmcDigiPar;
46 class PndEmcRecoPar;
47 
48 class PndEmcSharedDigi;
49 
55 class PndEmcOnlineBumpSplitter : public FairTask {
56  public:
57  // Constructor
58  PndEmcOnlineBumpSplitter(Int_t verbose = 0);
59  // Destructor
60  virtual ~PndEmcOnlineBumpSplitter();
61 
62  // Methods
63  virtual InitStatus Init();
64  virtual void Exec(Option_t *opt);
65  virtual void FinishTask();
66 
67  void SetStorageOfData(Bool_t p = kTRUE) { fPersistance = p; };
69  void SetMinimumSeedEnergy(Double_t minE) { fSeedEnergyThreshold = minE; };
70  void SingleBumpCluster(PndEmcCluster *, Int_t);
71 
72  protected:
74  virtual void SetParContainers();
75 
76  private:
77  // don't allow copying (-Weffc++)
78  PndEmcOnlineBumpSplitter(const PndEmcOnlineBumpSplitter &); // no implementation
79  PndEmcOnlineBumpSplitter &operator=(const PndEmcOnlineBumpSplitter &); // no implementation
80 
81  private:
83  TClonesArray *fDigiArray;
84  TClonesArray *fEmcDigi;
85  TClonesArray *fClusterArray;
86 
88  TClonesArray *fBumpArray;
89 
90  PndEmcGeoPar *fGeoPar; //< Geometry parameter container
91  PndEmcDigiPar *fDigiPar; //< Digitisation parameter container
92  PndEmcRecoPar *fRecoPar; //< Reconstruction parameter container
93 
94  std::vector<Double_t> fClusterPosParam;
95 
96  Double_t fSeedEnergyThreshold;
97 
98  Bool_t fPersistance;
99 
100  /* Verbosity level */
101  // Int_t fVerbose; //do not shadow FairTask::fVerbose
102 
103  // added for time information
104  // PndEmcDigiCalibrator digiCalibrator;
105  // Int_t HowManyDidis;
106 
107  ClassDef(PndEmcOnlineBumpSplitter, 1);
108 };
109 #endif
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
stores crystal index coordinates (x,y) or (theta,phi)
virtual void SetParContainers()
void SetStorageOfData(Bool_t p=kTRUE)
PndEmcOnlineBumpSplitter(Int_t verbose=0)
virtual ~PndEmcOnlineBumpSplitter()
used to share PndEmcDigis between bumps
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
PndEmcBump * AddBump()
void SetMinimumSeedEnergy(Double_t minE)
virtual void FinishTask()
splits clusters based on local maxima in the Phi direction for use with Bremstrahlung correction...
void SingleBumpCluster(PndEmcCluster *, Int_t)
represents a reconstructed (splitted) emc cluster
Definition: PndEmcBump.h:34
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12