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 #include "TArrayD.h"
35 #include "TVector3.h"
36 
37 #include "TObject.h"
38 #include "PndEmcDataTypes.h"
39 #include "PndEmcDigiCalibrator.h"
40 //------------------------------------
41 // Collaborating Class Declarations --
42 //------------------------------------
43 
44 class PndEmcCluster;
45 class PndEmcBump;
46 class PndEmcDigi;
47 class PndEmcSharedDigi;
49 
50 class PndEmcGeoPar;
51 class PndEmcDigiPar;
52 class PndEmcRecoPar;
53 
54 
60 {
61 public:
62  // Constructor
63  PndEmcExpClusterSplitter(Int_t verbose=0);
64  // Destructor
65  virtual ~PndEmcExpClusterSplitter( );
66 
67  // Methods
68  virtual InitStatus Init();
69  virtual void Exec(Option_t* opt);
70  virtual void FinishTask();
71 
72  void SetStorageOfData(Bool_t p = kTRUE) {SetPersistency(p);};
74  PndEmcSharedDigi* AddSharedDigi(PndEmcDigi*, Double_t weight);
75  Double_t LateralDevelopment(const Double_t TotEnergy, const TVector3 *DetPos, const TVector3 *SeedPos, const TVector3 *ShowerCenter, const Double_t RM);
76 
77 protected:
79  virtual void SetParContainers();
80 
81 private:
82  // don't allow copying (-Weffc++)
83  PndEmcExpClusterSplitter(const PndEmcExpClusterSplitter&); // no implementation
84  PndEmcExpClusterSplitter& operator= (const PndEmcExpClusterSplitter&); // no implementation
85 
86 private:
88  TClonesArray* fDigiArray;
89  TClonesArray* fClusterArray;
90 
92  TClonesArray* fBumpArray;
93  TClonesArray* fSharedDigiArray;
94 
95  PndEmcGeoPar* fGeoPar;
96  PndEmcDigiPar* fDigiPar;
97  PndEmcRecoPar* fRecoPar;
98 
99  std::vector<Double_t> fClusterPosParam;
100 
101  Bool_t fPersistance; // switch to turn on/off storing the arrays to a file
102  // Data members
103  Double_t fMoliereRadius;
104  Double_t fMoliereRadiusShashlyk;
105  Double_t fExponentialConstant;
106  TArrayD fParArray1;
107  TArrayD fParArray2;
108  TArrayD fParArray3;
109  TArrayD fParArray4;
110 
111  Int_t fMaxIterations;
112  Double_t fCentroidShift;
113  Int_t fMaxBumps;
114  Double_t fMinDigiEnergy;
115 
116  /* Verbosity level */
117  // Int_t fVerbose; //do not shadow PndPersistencyTask::fVerbose
118 
119  //added for time information
120  PndEmcDigiCalibrator digiCalibrator;
121  Int_t HowManyDidis;
122 
123  ClassDef(PndEmcExpClusterSplitter,2);
124 };
125 #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)
Double_t LateralDevelopment(const Double_t TotEnergy, const TVector3 *DetPos, const TVector3 *SeedPos, const TVector3 *ShowerCenter, const Double_t RM)
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:13
virtual void Exec(Option_t *opt)