PandaRoot
PndEmcOnlineBumpSplitter.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 PndEmcOnlineBumpSplitter
19 // Implementation of OnlineBumpSplitter which splits clusters based on
20 // local maxima, determined in a 0th order approximation, i.e. by looking
21 // for the two most energetic digis and checking if they are neighbours.
22 //
23 // Environment:
24 // Software developed for the PANDA experiment at GSI.
25 //
26 // Author List:
27 // Marcel Tiemens
28 //------------------------------------------------------------------------
29 //#pragma once
30 #ifndef PNDEMCONLINEBUMPSPLITTER_H
31 #define PNDEMCONLINEBUMPSPLITTER_H
32 
33 // Path of file:
34 // ----- $pandaroot/emc/EmcReco
35 
36 //---------------
37 // C++ Headers --
38 //---------------
39 #include <vector>
40 #include <map>
41 
42 #include "FairTask.h"
43 #include "TObject.h"
44 #include "TClonesArray.h"
45 #include "PndEmcDataTypes.h"
46 //#include "PndEmcDigiCalibrator.h"
47 //------------------------------------
48 // Collaborating Class Declarations --
49 //------------------------------------
50 
51 class PndEmcCluster;
52 class PndEmcBump;
53 class PndEmcDigi;
55 
56 class PndEmcGeoPar;
57 class PndEmcDigiPar;
58 class PndEmcRecoPar;
59 
60 class PndEmcSharedDigi;
61 
67 class PndEmcOnlineBumpSplitter : public FairTask {
68  public:
69  // Constructor
70  PndEmcOnlineBumpSplitter(Int_t verbose = 0);
71  // Destructor
72  virtual ~PndEmcOnlineBumpSplitter();
73 
74  // Methods
75  virtual InitStatus Init();
76  virtual void Exec(Option_t *opt);
77  virtual void FinishTask();
78 
79  void SetStorageOfData(Bool_t p = kTRUE) { fPersistance = p; };
81  void SetMinimumSeedEnergy(Double_t minE) { fSeedEnergyThreshold = minE; };
82  void SingleBumpCluster(PndEmcCluster *, Int_t);
83 
84  protected:
86  virtual void SetParContainers();
87 
88  private:
89  // don't allow copying (-Weffc++)
90  PndEmcOnlineBumpSplitter(const PndEmcOnlineBumpSplitter &); // no implementation
91  PndEmcOnlineBumpSplitter &operator=(const PndEmcOnlineBumpSplitter &); // no implementation
92 
93  private:
95  TClonesArray *fDigiArray;
96  TClonesArray *fEmcDigi;
97  TClonesArray *fClusterArray;
98 
100  TClonesArray *fBumpArray;
101 
102  PndEmcGeoPar *fGeoPar; //< Geometry parameter container
103  PndEmcDigiPar *fDigiPar; //< Digitisation parameter container
104  PndEmcRecoPar *fRecoPar; //< Reconstruction parameter container
105 
106  std::vector<Double_t> fClusterPosParam;
107 
108  Double_t fSeedEnergyThreshold;
109 
110  Bool_t fPersistance;
111 
112  /* Verbosity level */
113  // Int_t fVerbose; //do not shadow FairTask::fVerbose
114 
115  // added for time information
116  // PndEmcDigiCalibrator digiCalibrator;
117  // Int_t HowManyDidis;
118 
119  ClassDef(PndEmcOnlineBumpSplitter, 1);
120 };
121 #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:24
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:46
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:25