FairRoot/PandaRoot
|
Task to cluster PndEmcDigis. More...
#include <PndEmcMakeCluster.h>
Public Member Functions | |
PndEmcMakeCluster (Int_t verbose=0, Bool_t storeclusters=kTRUE) | |
virtual | ~PndEmcMakeCluster () |
virtual InitStatus | Init () |
Init Task. More... | |
virtual void | Exec (Option_t *opt) |
Runs the task. More... | |
virtual void | ExecuteTasks (Option_t *option) |
Finish clusters after subtasks have been executed. More... | |
void | SetStorageOfData (Bool_t val) |
Method to specify whether clusters are stored or not. More... | |
void | StoreClusterBaseDigis (Bool_t val=kTRUE) |
Method to specify whether underlying digis are stored or not. More... | |
void | SetClusterActiveTime (Double_t time) |
Override EmcRecoPar cluster active time parameter ..to be set in ns!!! More... | |
void | SetPersistency (Bool_t val=kTRUE) |
Bool_t | GetPersistency () |
Protected Member Functions | |
virtual void | SetParContainers () |
virtual void | FinishClusters () |
Calls FinishCluster() for each cluster. More... | |
Private Member Functions | |
void | FinishCluster (PndEmcCluster *tmpcluster) |
Assign final parameters to cluster. More... | |
bool | HasExpired (PndEmcDigi *latestDigi, PndEmcCluster *theCluster, Int_t clusterIdx) |
Finishes clusters in timebased analysis. More... | |
void | cleansortmclist (std::vector< Int_t > &newlist, TClonesArray *mcTrackArray) |
Helper function, does not depend on class, identical to the one in PndEmcHitProducer. More... | |
PndEmcMakeCluster (const PndEmcMakeCluster &) | |
PndEmcMakeCluster & | operator= (const PndEmcMakeCluster &) |
Private Attributes | |
TClonesArray * | fDigiArray |
TClonesArray * | fHitArray |
TClonesArray * | fMCTrackArray |
TClonesArray * | fClusterArray |
active clusters More... | |
TClonesArray * | fWriteOutArray |
expired clusters More... | |
BinaryFunctor * | fDigiFunctor |
std::vector< PndEmcCluster * > | fClusterList |
Double_t | fDigiEnergyTresholdBarrel |
Double_t | fDigiEnergyTresholdFWD |
Double_t | fDigiEnergyTresholdBWD |
Double_t | fDigiEnergyTresholdShashlyk |
Double_t | fClusterActiveTime |
Defines how long clusters are kept open in timebased reconstruction. More... | |
std::vector< Double_t > | fClusterPosParam |
Int_t | fMapVersion |
PndEmcGeoPar * | fGeoPar |
PndEmcDigiPar * | fDigiPar |
PndEmcRecoPar * | fRecoPar |
Int_t | fVerbose |
Bool_t | fStoreClusters |
Bool_t | fStoreClusterBase |
TStopwatch | fTimer |
Static Private Attributes | |
static Int_t | fEventCounter =0 |
Task to cluster PndEmcDigis.
Task to cluster PndEmcDigis. In the eventbased version clusters are built within one event, all adjacent digis go in one cluster. The timebased version assigns an active time to every cluster. Once expired, no digis can be added any more to cluster. The spatial cluster condition remains the same as in the eventbased reconstruction
Definition at line 36 of file PndEmcMakeCluster.h.
PndEmcMakeCluster::PndEmcMakeCluster | ( | Int_t | verbose = 0 , |
Bool_t | storeclusters = kTRUE |
||
) |
Definition at line 49 of file PndEmcMakeCluster.cxx.
References fClusterList, fClusterPosParam, and PndPersistencyTask::SetPersistency().
|
virtual |
Definition at line 61 of file PndEmcMakeCluster.cxx.
|
private |
|
private |
Helper function, does not depend on class, identical to the one in PndEmcHitProducer.
Currently not used.
newlist | ... |
mcTrackArray | ... |
Definition at line 432 of file PndEmcMakeCluster.cxx.
References PndMCTrack::GetMotherID(), and pt().
|
virtual |
Runs the task.
The task loops over the digis and adds neighboring digis (PndEmcTwoCoordIndex::IsNeighbour()) to clusters.
opt | unused |
Definition at line 161 of file PndEmcMakeCluster.cxx.
References PndEmcCluster::addCluster(), PndEmcCluster::addDigi(), PndEmcCluster::AddTracksEnteringExiting(), fClusterActiveTime, fClusterArray, fDigiArray, fDigiEnergyTresholdBarrel, fDigiEnergyTresholdBWD, fDigiEnergyTresholdFWD, fDigiEnergyTresholdShashlyk, fDigiFunctor, fTimer, fVerbose, fWriteOutArray, PndEmcDigi::GetEnergy(), PndEmcDigi::GetModule(), PndEmcHit::GetTrackEntering(), PndEmcHit::GetTrackExiting(), HasExpired(), hit(), i, PndEmcCluster::isInCluster(), PndEmcCluster::SetTrackEntering(), and PndEmcCluster::SetTrackExiting().
|
inlinevirtual |
Finish clusters after subtasks have been executed.
Definition at line 48 of file PndEmcMakeCluster.h.
References FinishClusters().
|
private |
Assign final parameters to cluster.
Calculates properties of the cluster and sets them.
Assign final parameters to cluster. Subtasks might introduce changes in cluster composition. To keep track of them, function is called after subtasks have been executed
The calculated properties include the energy, position, timestamp and Zernike moments.
tmpclust | The cluster to work on |
Definition at line 310 of file PndEmcMakeCluster.cxx.
References PndEmcXClMoments::AbsZernikeMoment(), PndEmcClusterProperties::Energy(), fClusterPosParam, fDigiArray, fRecoPar, PndEmcRecoPar::GetEmcClusterPosMethod(), PndEmcCluster::GetTrackEntering(), PndEmcXClMoments::Lat(), PndEmcCluster::Maxima(), PndEmcCluster::SetEnergy(), PndEmcCluster::SetLatMom(), PndEmcCluster::SetPosition(), PndEmcCluster::SetZ20(), PndEmcCluster::SetZ53(), and PndEmcClusterProperties::Where().
Referenced by FinishClusters().
|
protectedvirtual |
Calls FinishCluster() for each cluster.
Definition at line 376 of file PndEmcMakeCluster.cxx.
References ctime, Double_t, fEventCounter, FinishCluster(), fTimer, fVerbose, fWriteOutArray, i, and rtime.
Referenced by ExecuteTasks().
|
inlineinherited |
Definition at line 32 of file PndPersistencyTask.h.
References PndPersistencyTask::fPersistency.
Referenced by PndLmdPixelHitProducerFast::GetPersistance(), PndMdtDigitization::Init(), PndMdtHitProducerIdeal::Init(), PndMdtClusterTask::Init(), PndFtsHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndSttHelixHitProducer::Init(), PndDiscTaskPID::Init(), PndIdealTrackFinder::Init(), PndSttMvdGemTracking::Init(), PndMdtTrkProducer::Init(), PndFtsHitProducerRealFull::Init(), PndLmdPixelClusterTask::Init(), PndSttHitProducerRealFull::Init(), PndLmdStripClusterTask::Init(), PndEmcApdHitProducer::Init(), PndMissingPzCleanerTask::Init(), PndEmcMakeRecoHit::Init(), PndEmcMakeClusterOnline::Init(), PndTrackSmearTask::Init(), PndEmcFWEndcapTimebasedWaveforms::Init(), PndSttHitProducerIdeal::Init(), PndEmcFWEndcapDigi::Init(), PndFtsHitProducerIdeal::Init(), Init(), PndMdtPointsToWaveform::Init(), PndDiscTaskDigitization::Init(), PndEmcMakeDigi::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndDrcHitFinder::Init(), PndRichHitFinder::Init(), PndEmcMakeCorr::Init(), PndFtofHitProducerIdeal::Init(), PndEmcHitsToWaveform::Init(), PndSciTDigiTask::Init(), PndDrcHitProducerIdeal::Init(), PndSdsHitProducerIdeal::Init(), PndSciTHitProducerIdeal::Init(), PndRecoMultiKalmanTask2::Init(), PndEmcHitProducer::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndRecoKalmanTask2::Init(), PndDrcTimeDigiTask::Init(), PndEmcExpClusterSplitter::Init(), PndFtsHoughTrackerTask::Init(), PndSdsNoiseProducer::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsIdealRecoTask::Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().
|
private |
Finishes clusters in timebased analysis.
Checks if the timestamp of latestDigi
is later than the active time of theCluster
. If yes, the cluster is written and true is returned.
latestDigi | Current digi to check timestamp of. |
theCluster | Current cluster for which the expiration is checked. |
clusterIdx | Index of theCluster in the cluster TClonesArray. |
true | Cluster has expired and was written. |
false | Cluster not expired. |
Definition at line 409 of file PndEmcMakeCluster.cxx.
References fClusterActiveTime, fClusterArray, and fWriteOutArray.
Referenced by Exec().
|
virtual |
Init Task.
Prepares the TClonesArray of PndEmcDigi for reading and of PndEmcCluster for writing.
kSUCCESS | success |
Definition at line 74 of file PndEmcMakeCluster.cxx.
References fClusterActiveTime, fClusterArray, fClusterPosParam, fDigiArray, fDigiEnergyTresholdBarrel, fDigiEnergyTresholdBWD, fDigiEnergyTresholdFWD, fDigiEnergyTresholdShashlyk, fDigiFunctor, fGeoPar, fHitArray, fMCTrackArray, fRecoPar, fStoreClusterBase, fWriteOutArray, PndEmcRecoPar::GetClusterActiveTime(), PndEmcRecoPar::GetEmcClusterPosMethod(), PndEmcRecoPar::GetEnergyThresholdBarrel(), PndEmcRecoPar::GetEnergyThresholdBWD(), PndEmcRecoPar::GetEnergyThresholdFWD(), PndEmcRecoPar::GetEnergyThresholdShashlyk(), PndEmcRecoPar::GetOffsetParmA(), PndEmcRecoPar::GetOffsetParmB(), PndEmcRecoPar::GetOffsetParmC(), PndPersistencyTask::GetPersistency(), PndEmcGeoPar::InitEmcMapper(), and PndEmcStructure::Instance().
|
private |
|
inline |
Override EmcRecoPar cluster active time parameter ..to be set in ns!!!
Definition at line 62 of file PndEmcMakeCluster.h.
References fClusterActiveTime.
|
protectedvirtual |
Get parameter containers
Definition at line 466 of file PndEmcMakeCluster.cxx.
References fDigiPar, fGeoPar, fRecoPar, and run.
|
inlineinherited |
Definition at line 31 of file PndPersistencyTask.h.
References PndPersistencyTask::fPersistency, and val.
Referenced by barrelTrackFinder(), digi_complete(), digi_complete_newSTT(), digiOnly_complete(), PndBarrelTrackFinder::PndBarrelTrackFinder(), PndCATracking::PndCATracking(), PndDrcHitFinder::PndDrcHitFinder(), PndEmc2DLocMaxFinder::PndEmc2DLocMaxFinder(), PndEmcExpClusterSplitter::PndEmcExpClusterSplitter(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcFWEndcapDigi::PndEmcFWEndcapDigi(), PndEmcFWEndcapTimebasedWaveforms::PndEmcFWEndcapTimebasedWaveforms(), PndEmcHitProducer::PndEmcHitProducer(), PndEmcHitsToWaveform::PndEmcHitsToWaveform(), PndEmcMakeBump::PndEmcMakeBump(), PndEmcMakeCluster(), PndEmcMakeClusterOnline::PndEmcMakeClusterOnline(), PndEmcMakeDigi::PndEmcMakeDigi(), PndEmcMakeRecoHit::PndEmcMakeRecoHit(), PndEmcMultiWaveformToCalibratedDigi::PndEmcMultiWaveformToCalibratedDigi(), PndEmcPhiBumpSplitter::PndEmcPhiBumpSplitter(), PndEmcTmpWaveformToDigi::PndEmcTmpWaveformToDigi(), PndEmcWaveformToCalibratedDigi::PndEmcWaveformToCalibratedDigi(), PndEmcWaveformToDigi::PndEmcWaveformToDigi(), PndFtofHitProducerIdeal::PndFtofHitProducerIdeal(), PndFtsCATracking::PndFtsCATracking(), PndFtsHitProducerIdeal::PndFtsHitProducerIdeal(), PndFtsHitProducerRealFast::PndFtsHitProducerRealFast(), PndFtsHitProducerRealFull::PndFtsHitProducerRealFull(), PndFtsHoughTrackerTask::PndFtsHoughTrackerTask(), PndGemDigitize::PndGemDigitize(), PndGemFindHits::PndGemFindHits(), PndIdealTrackFinder::PndIdealTrackFinder(), PndLmdPixelClusterTask::PndLmdPixelClusterTask(), PndLmdPixelHitProducerFast::PndLmdPixelHitProducerFast(), PndMdtClusterTask::PndMdtClusterTask(), PndMdtDigitization::PndMdtDigitization(), PndMdtHitProducerIdeal::PndMdtHitProducerIdeal(), PndMdtPointsToWaveform::PndMdtPointsToWaveform(), PndMdtTrkProducer::PndMdtTrkProducer(), PndMissingPzCleanerTask::PndMissingPzCleanerTask(), PndMvdGemTrackFinderOnHits::PndMvdGemTrackFinderOnHits(), PndMvdHitProducerIdeal::PndMvdHitProducerIdeal(), PndMvdPixelClusterTask::PndMvdPixelClusterTask(), PndMvdTimeWalkCorrTask::PndMvdTimeWalkCorrTask(), PndMvdToPix4ClusterTask::PndMvdToPix4ClusterTask(), PndRecoKalmanTask::PndRecoKalmanTask(), PndRecoKalmanTask2::PndRecoKalmanTask2(), PndRecoMultiKalmanTask::PndRecoMultiKalmanTask(), PndRecoMultiKalmanTask2::PndRecoMultiKalmanTask2(), PndRichHitFinder::PndRichHitFinder(), PndRichHitProducer::PndRichHitProducer(), PndSciTDigiTask::PndSciTDigiTask(), PndSciTHitProducerIdeal::PndSciTHitProducerIdeal(), PndSdsHitProducerIdeal::PndSdsHitProducerIdeal(), PndSdsHybridHitProducer::PndSdsHybridHitProducer(), PndSdsIdealClusterTask::PndSdsIdealClusterTask(), PndSdsIdealRecoTask::PndSdsIdealRecoTask(), PndSdsNoiseProducer::PndSdsNoiseProducer(), PndSdsPixelClusterTask::PndSdsPixelClusterTask(), PndSdsStripClusterTask::PndSdsStripClusterTask(), PndSdsStripHitProducer::PndSdsStripHitProducer(), PndSdsTimeWalkCorrTask::PndSdsTimeWalkCorrTask(), PndSttFindTracks::PndSttFindTracks(), PndSttHelixHitProducer::PndSttHelixHitProducer(), PndSttHitProducerIdeal::PndSttHitProducerIdeal(), PndSttHitProducerRealFast::PndSttHitProducerRealFast(), PndSttHitProducerRealFull::PndSttHitProducerRealFull(), PndSttMatchTracks::PndSttMatchTracks(), PndSttMvdGemTracking::PndSttMvdGemTracking(), PndTrackSmearTask::PndTrackSmearTask(), PndTrkTracking2::PndTrkTracking2(), reco(), reco_complete(), reco_complete_gf2(), reco_complete_newSTT(), reco_complete_sec(), recoideal_complete(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndLmdPixelHitProducerFast::SetPersistance(), PndSdsHitProducerIdeal::SetPersistance(), PndSttMvdGemTracking::SetPersistenc(), PndMdtClusterTask::SetPersistence(), PndSttHelixHitProducer::SetPersistence(), PndMissingPzCleanerTask::SetPersistence(), PndFtsHitProducerRealFast::SetPersistence(), PndFtsHitProducerRealFull::SetPersistence(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcMakeClusterOnline::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcMakeDigi::SetStorageOfData(), PndMdtPointsToWaveform::SetStorageOfData(), PndEmc2DLocMaxFinder::SetStorageOfData(), SetStorageOfData(), PndEmcHitsToWaveform::SetStorageOfData(), PndEmcMakeBump::SetStorageOfData(), PndEmcTmpWaveformToDigi::SetStorageOfData(), PndEmcWaveformToDigi::SetStorageOfData(), PndEmcWaveformToCalibratedDigi::SetStorageOfData(), PndEmcMultiWaveformToCalibratedDigi::SetStorageOfData(), PndEmcExpClusterSplitter::SetStorageOfData(), PndEmcPhiBumpSplitter::SetStorageOfData(), standard_tracking(), and PndEmcFullDigiTask::StoreDigi().
void PndEmcMakeCluster::SetStorageOfData | ( | Bool_t | val | ) |
Method to specify whether clusters are stored or not.
Definition at line 485 of file PndEmcMakeCluster.cxx.
References PndPersistencyTask::SetPersistency().
Referenced by digi_sttcombi(), emc(), emc_complete(), emc_complete_corr(), emc_correction_data_production(), emc_correction_QA_data_production(), and RecoComplete().
|
inline |
Method to specify whether underlying digis are stored or not.
Restoring digis makes only sense if reconstruction is done timebased
Definition at line 60 of file PndEmcMakeCluster.h.
References fStoreClusterBase, and val.
Referenced by emc_reco(), run_reco(), and run_reco_timebased().
|
private |
Defines how long clusters are kept open in timebased reconstruction.
Definition at line 101 of file PndEmcMakeCluster.h.
Referenced by Exec(), HasExpired(), Init(), and SetClusterActiveTime().
|
private |
active clusters
Output array of PndEmcClusters
Definition at line 91 of file PndEmcMakeCluster.h.
Referenced by Exec(), HasExpired(), and Init().
|
private |
Definition at line 95 of file PndEmcMakeCluster.h.
Referenced by PndEmcMakeCluster().
|
private |
Definition at line 103 of file PndEmcMakeCluster.h.
Referenced by FinishCluster(), Init(), and PndEmcMakeCluster().
|
private |
Input array of CbmDigis
Definition at line 84 of file PndEmcMakeCluster.h.
Referenced by Exec(), FinishCluster(), and Init().
|
private |
Definition at line 97 of file PndEmcMakeCluster.h.
|
private |
Definition at line 99 of file PndEmcMakeCluster.h.
|
private |
Definition at line 98 of file PndEmcMakeCluster.h.
|
private |
Definition at line 100 of file PndEmcMakeCluster.h.
|
private |
Definition at line 94 of file PndEmcMakeCluster.h.
|
private |
Geometry parameter container
Definition at line 109 of file PndEmcMakeCluster.h.
Referenced by SetParContainers().
|
staticprivate |
Definition at line 106 of file PndEmcMakeCluster.h.
Referenced by FinishClusters().
|
private |
Definition at line 108 of file PndEmcMakeCluster.h.
Referenced by Init(), and SetParContainers().
|
private |
Input array of Hits and MC Tracks ... needed for MC
Definition at line 87 of file PndEmcMakeCluster.h.
Referenced by Init().
|
private |
Definition at line 104 of file PndEmcMakeCluster.h.
|
private |
Definition at line 88 of file PndEmcMakeCluster.h.
Referenced by Init().
|
private |
Digitisation parameter container
Definition at line 110 of file PndEmcMakeCluster.h.
Referenced by FinishCluster(), Init(), and SetParContainers().
|
private |
Definition at line 116 of file PndEmcMakeCluster.h.
Referenced by Init(), and StoreClusterBaseDigis().
|
private |
Definition at line 115 of file PndEmcMakeCluster.h.
|
private |
Definition at line 118 of file PndEmcMakeCluster.h.
Referenced by Exec(), and FinishClusters().
|
private |
Reconstruction parameter container Verbosity level
Definition at line 113 of file PndEmcMakeCluster.h.
Referenced by Exec(), and FinishClusters().
|
private |
expired clusters
Definition at line 92 of file PndEmcMakeCluster.h.
Referenced by Exec(), FinishClusters(), HasExpired(), and Init().