FairRoot/PandaRoot
PndEmcMakeCluster.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: $
4 // Software developed for the PANDA Detector at GSI.
5 // Author List:
6 // Jan Zhong
7 //---------------------------------------------------------------------
8 //#pragma once
9 #ifndef PNDEMCMAKECLUSTER_H
10 #define PNDEMCMAKECLUSTER_H
11 
12 #include <PndPersistencyTask.h>
13 #include <vector>
14 
15 #include "FairTSBufferFunctional.h"
16 #include "TStopwatch.h"
17 
18 class TClonesArray;
19 class TObjectArray;
20 class PndEmcDigi;
21 class PndEmcCluster;
22 class PndEmcGeoPar;
23 class PndEmcDigiPar;
24 class PndEmcRecoPar;
25 class BinaryFunctor;
26 
27 
37 {
38 public:
39  // Constructors
40  PndEmcMakeCluster(Int_t verbose=0, Bool_t storeclusters=kTRUE);
41  // Destructor
42  virtual ~PndEmcMakeCluster( );
43 
44  virtual InitStatus Init();
45  virtual void Exec(Option_t* opt);
46 
48  virtual void ExecuteTasks(Option_t* option) {
49  PndPersistencyTask::ExecuteTasks(option);
51  }
52 
54 
61 
63 
64 protected:
66  virtual void SetParContainers();
67  virtual void FinishClusters();
68 
69 private:
75  void FinishCluster(PndEmcCluster* tmpcluster);
76  bool HasExpired(PndEmcDigi* latestDigi, PndEmcCluster* theCluster, Int_t clusterIdx);
77  void cleansortmclist( std::vector <Int_t> &newlist,TClonesArray* mcTrackArray);
78  // don't allow copying (-Weffc++)
79  PndEmcMakeCluster(const PndEmcMakeCluster&); // no implementation
80  PndEmcMakeCluster& operator= (const PndEmcMakeCluster&); // no implementation
81 
82 private:
84  TClonesArray* fDigiArray;
85 
87  TClonesArray* fHitArray;
88  TClonesArray* fMCTrackArray;
89 
91  TClonesArray* fClusterArray;
92  TClonesArray* fWriteOutArray;
93 
94  BinaryFunctor* fDigiFunctor;
95  std::vector<PndEmcCluster*> fClusterList;
96 
102 
103  std::vector<Double_t> fClusterPosParam;
104  Int_t fMapVersion;
105 
106  static Int_t fEventCounter;
107 
113  Int_t fVerbose;
114 
116  Bool_t fStoreClusterBase; //restore digis in case of a timebased run
117 
118  TStopwatch fTimer;
119 
120  ClassDef(PndEmcMakeCluster,2)
121 };
122 #endif // PNDEMCMAKECLUSTER_HH
virtual void SetParContainers()
void SetStorageOfData(Bool_t val)
Method to specify whether clusters are stored or not.
PndEmcDigiPar * fDigiPar
Double_t fDigiEnergyTresholdBWD
virtual void FinishClusters()
Calls FinishCluster() for each cluster.
Double_t fDigiEnergyTresholdShashlyk
static Int_t fEventCounter
Double_t fClusterActiveTime
Defines how long clusters are kept open in timebased reconstruction.
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
PndEmcMakeCluster(Int_t verbose=0, Bool_t storeclusters=kTRUE)
TClonesArray * fClusterArray
active clusters
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
#define verbose
TClonesArray * fHitArray
PndEmcRecoPar * fRecoPar
virtual void Exec(Option_t *opt)
Runs the task.
virtual void ExecuteTasks(Option_t *option)
Finish clusters after subtasks have been executed.
TClonesArray * fDigiArray
void cleansortmclist(std::vector< Int_t > &newlist, TClonesArray *mcTrackArray)
Helper function, does not depend on class, identical to the one in PndEmcHitProducer.
Double_t fDigiEnergyTresholdFWD
Double_t
void StoreClusterBaseDigis(Bool_t val=kTRUE)
Method to specify whether underlying digis are stored or not.
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
void FinishCluster(PndEmcCluster *tmpcluster)
Assign final parameters to cluster.
a cluster (group of neighboring crystals) of hit emc crystals
Definition: PndEmcCluster.h:29
std::vector< PndEmcCluster * > fClusterList
Task to cluster PndEmcDigis.
void SetClusterActiveTime(Double_t time)
Override EmcRecoPar cluster active time parameter ..to be set in ns!!!
std::vector< Double_t > fClusterPosParam
virtual InitStatus Init()
Init Task.
Double_t fDigiEnergyTresholdBarrel
BinaryFunctor * fDigiFunctor
PndEmcGeoPar * fGeoPar
bool HasExpired(PndEmcDigi *latestDigi, PndEmcCluster *theCluster, Int_t clusterIdx)
Finishes clusters in timebased analysis.
TClonesArray * fMCTrackArray
TClonesArray * fWriteOutArray
expired clusters
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
PndEmcMakeCluster & operator=(const PndEmcMakeCluster &)