PandaRoot
PndEmcExpClusterSplitter.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id:$
4 //
5 // Description:
6 // Class PndEmcExpClusterSplitter.
7 // Concrete implementation of EmcAbsClusterSplitter which splits
8 // on the basis of exponential distance from the bump centroid.
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 // M. Babai
23 //------------------------------------------------------------------------
24 //#pragma once
25 #ifndef PNDEMCEXPCLUSTERSPLITTER_H
26 #define PNDEMCEXPCLUSTERSPLITTER_H
27 
28 //---------------
29 // C++ Headers --
30 //---------------
31 #include <PndPersistencyTask.h>
32 #include <vector>
33 #include <map>
34 
35 #include "TObject.h"
36 #include "PndEmcDataTypes.h"
37 #include "PndEmcDigiCalibrator.h"
38 //------------------------------------
39 // Collaborating Class Declarations --
40 //------------------------------------
41 
42 class PndEmcCluster;
43 class PndEmcBump;
44 class PndEmcDigi;
45 class PndEmcSharedDigi;
47 
48 class PndEmcGeoPar;
49 class PndEmcDigiPar;
50 class PndEmcRecoPar;
51 
52 
58 {
59 public:
60  // Constructor
61  PndEmcExpClusterSplitter(Int_t verbose=0);
62  // Destructor
63  virtual ~PndEmcExpClusterSplitter( );
64 
65  // Methods
66  virtual InitStatus Init();
67  virtual void Exec(Option_t* opt);
68  virtual void FinishTask();
69 
70  void SetStorageOfData(Bool_t p = kTRUE) {SetPersistency(p);};
72  PndEmcSharedDigi* AddSharedDigi(PndEmcDigi*, Double_t weight);
73 
74 protected:
76  virtual void SetParContainers();
77 
78 private:
79  // don't allow copying (-Weffc++)
80  PndEmcExpClusterSplitter(const PndEmcExpClusterSplitter&); // no implementation
81  PndEmcExpClusterSplitter& operator= (const PndEmcExpClusterSplitter&); // no implementation
82 
83 private:
85  TClonesArray* fDigiArray;
86  TClonesArray* fClusterArray;
87 
89  TClonesArray* fBumpArray;
90  TClonesArray* fSharedDigiArray;
91 
92  PndEmcGeoPar* fGeoPar;
93  PndEmcDigiPar* fDigiPar;
94  PndEmcRecoPar* fRecoPar;
95 
96  std::vector<Double_t> fClusterPosParam;
97 
98  Bool_t fPersistance; // switch to turn on/off storing the arrays to a file
99  // Data members
100  Double_t fMoliereRadius;
101  Double_t fMoliereRadiusShashlyk;
102  Double_t fExponentialConstant;
103  Int_t fMaxIterations;
104  Double_t fCentroidShift;
105  Int_t fMaxBumps;
106  Double_t fMinDigiEnergy;
107 
108  /* Verbosity level */
109  // Int_t fVerbose; //do not shadow PndPersistencyTask::fVerbose
110 
111  //added for time information
112  PndEmcDigiCalibrator digiCalibrator;
113  Int_t HowManyDidis;
114 
115  ClassDef(PndEmcExpClusterSplitter,2);
116 };
117 #endif // EMCABSCLUSTERSPLITTER_HH
virtual void FinishTask()
PndEmcSharedDigi * AddSharedDigi(PndEmcDigi *, Double_t weight)
PndEmcExpClusterSplitter(Int_t verbose=0)
virtual InitStatus Init()
void SetPersistency(Bool_t val=kTRUE)
stores crystal index coordinates (x,y) or (theta,phi)
virtual ~PndEmcExpClusterSplitter()
virtual void SetParContainers()
PndEmcBump * AddBump()
used to share PndEmcDigis between bumps
splits clusters on the basis of exponential distance from the bump centroid
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
void SetStorageOfData(Bool_t p=kTRUE)
represents a reconstructed (splitted) emc cluster
Definition: PndEmcBump.h:34
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
virtual void Exec(Option_t *opt)