PandaRoot
PndEmc2DLocMaxFinder.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 // Description:
15 // Class EmcERatioLocMaxMaxFinder./
16 // Searches for local maxima in a cluster based on the ratio
17 // between the energy of the maxima crystal and that of
18 // its neighbours
19 //
20 // Environment:
21 // Software developed for the BaBar Detector at the SLAC B-Factory.
22 //
23 // Adapted for the PANDA experiment at GSI
24 //
25 // Author List:
26 // Phil Strother
27 // Helmut Schmuecker Ruhr-Uni Bochum
28 //
29 // Copyright Information:
30 // Copyright (C) 1997 Imperial College
31 // Modified:
32 // M. Babai
33 //------------------------------------------------------------------------
34 //#pragma once
35 #ifndef PNDEMC2DLOCALMAXFINDER_H
36 #define PNDEMC2DLOCALMAXFINDER_H
37 
38 #include <PndPersistencyTask.h>
39 #include "TObject.h"
40 #include "TClonesArray.h"
41 #include "PndEmcDataTypes.h"
42 
43 class PndEmcDigi;
44 class PndEmcCluster;
46 class PndEmcGeoPar;
47 class PndEmcDigiPar;
48 class PndEmcRecoPar;
49 
55  public:
56  // Constructors
57  PndEmc2DLocMaxFinder(Int_t verbose = 0);
58  // Destructor
59  virtual ~PndEmc2DLocMaxFinder();
60 
61  virtual InitStatus Init();
62  virtual void Exec(Option_t *opt);
63 
64  void SetStorageOfData(Bool_t p = kTRUE) { SetPersistency(p); };
65 
66  protected:
68  virtual void SetParContainers();
72  virtual bool isALocalMax(const PndEmcDigi *const, const PndEmcCluster *const, const PndEmcCoordIndexSet &amongstTheseNeighbours) const;
73 
74  private:
75  // Methods
76  void getNeighbourDigis(PndEmcCoordIndexSet &, PndEmcCoordIndexSet &, int, std::map<Int_t, Int_t>) const;
77  // don't allow copying (-Weffc++)
78  PndEmc2DLocMaxFinder(const PndEmc2DLocMaxFinder &); // no implementation
79  PndEmc2DLocMaxFinder &operator=(const PndEmc2DLocMaxFinder &); // no implementation
80 
82  TClonesArray *fClusterArray;
84  TClonesArray *fDigiArray;
85 
86  PndEmcGeoPar *fGeoPar;
87  PndEmcDigiPar *fDigiPar;
88  PndEmcRecoPar *fRecoPar;
89 
90  // Data members
91  Double_t fMaxECut;
92  Double_t fNeighbourECut;
93  Double_t fCutSlope;
94  Double_t fCutOffset;
95  Double_t fERatioCorr;
96  Int_t fTheNeighbourLevel;
97 
98  /* Verbosity level */
99  // Int_t fVerbose; //do not shadow PndPersistencyTask::fVerbose
100 
101  ClassDef(PndEmc2DLocMaxFinder, 2);
102 };
103 #endif // PNDEMC2DLOCALMAXFINDER_HH
virtual bool isALocalMax(const PndEmcDigi *const, const PndEmcCluster *const, const PndEmcCoordIndexSet &amongstTheseNeighbours) const
void SetStorageOfData(Bool_t p=kTRUE)
void SetPersistency(Bool_t val=kTRUE)
stores crystal index coordinates (x,y) or (theta,phi)
virtual ~PndEmc2DLocMaxFinder()
virtual void SetParContainers()
virtual InitStatus Init()
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:24
std::set< PndEmcTwoCoordIndex * > PndEmcCoordIndexSet
PndEmc2DLocMaxFinder(Int_t verbose=0)
virtual void Exec(Option_t *opt)
Searches for local maxima in a cluster.
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:25