diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index fac73bc31373756ad711d4a001ff84e8f020af37..5f8d8484af0dafffe782921601e5398ef5369e96 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -303,8 +303,10 @@ Int_t THcShowerArray::DefineVariables( EMode mode ) {"p", "Dynamic ADC Pedestal", "fP"}, {"a_p", "Sparsified, ped-subtracted ADC Amplitudes", "fA_p"}, { "nhits", "Number of hits", "fNhits" }, + { "nclust", "Number of clusters", "fNclust" }, {"e", "Energy Depositions per block", "fE"}, {"earray", "Energy Deposition in array", "fEarray"}, + { "ntracks", "Number of shower tracks", "fNtracks" }, { 0 } }; @@ -318,6 +320,8 @@ void THcShowerArray::Clear( Option_t* ) fADCHits->Clear(); fNhits = 0; + fNclust = 0; + fNtracks = 0; for (THcShowerClusterListIt i=fClusterList->begin(); i!=fClusterList->end(); ++i) { @@ -379,6 +383,40 @@ Int_t THcShowerArray::CoarseProcess( TClonesArray& tracks ) } } + // Fill list of clusters. + + fParent->ClusterHits(HitSet, fClusterList); + + fNclust = (*fClusterList).size(); //number of clusters + + if (fParent->fdbg_clusters_cal) { + + cout << " Clustered hits. Number of clusters: " << fNclust << endl; + + UInt_t i = 0; + for (THcShowerClusterListIt ppcl = (*fClusterList).begin(); + ppcl != (*fClusterList).end(); ppcl++) { + + cout << " Cluster #" << i++ + <<": E=" << clE(*ppcl) + << " Epr=" << clEpr(*ppcl) + << " X=" << clX(*ppcl) + << " Z=" << clZ(*ppcl) + << " size=" << (**ppcl).size() + << endl; + + Int_t j=0; + for (THcShowerClusterIt pph=(**ppcl).begin(); pph!=(**ppcl).end(); + pph++) { + cout << " hit " << j++ << ": "; + (**pph).show(); + } + + } + + cout << "---------------------------------------------------------------\n"; + } + return 0; } diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index 3f39a740da9bae8753e70fdfa198d13403b09ee0..42dc71d5c9b0cfcac1b4d96d445faa1780591bc7 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -120,6 +120,9 @@ protected: Double_t fEarray; // Total Energy deposition in the array. Int_t fNhits; // Total number of hits + Int_t fNclust; // Number of clusters + Int_t fNtracks; // Number of shower tracks, i.e. number of + // cluster-to-track association THcShowerClusterList* fClusterList; // List of hit clusters