#ifndef __EEezClAnalysis_h__ #define __EEezClAnalysis_h__ // // EEmc EZ cluster maker // #include #include #include #include #include #include // Storage classes #include "EEezTower.h" #include "EEezStrip.h" #include "EEezCluster.h" // Define a map used to sort seed towers by energy typedef std::map EEezTowerMap_t; typedef EEezTowerMap_t::iterator EEezTowerMapIter_t; class EEezAnalysis; class TH2F; class TH1F; ///////////////////////////////////////////////////////////////////////////// class EEezClAnalysis : public TObject { public: EEezClAnalysis(); ~EEezClAnalysis(){ /* nada */ }; Int_t Make( EEezAnalysis *analy ); Int_t MakeCluster(); Int_t Init(); void Clear( Option_t *opts="" ); void Save ( EEezClAnalysis *c, EEezAnalysis *a ); TH2F *getHistClusterE() { return m_ClusterE; } TList histograms; void setEnergyCut(Float_t c=0.){ m_EnergyCut = c; } Float_t getEnergyCut() { return m_EnergyCut; } EEezClusterVec_t getClusters() { return m_Clusters; } // safer, a copy EEezClusterVec_t *getPointerToClusters() { return &m_Clusters; } // faster, a pointer TObjArray getClusterArray() { return m_ClusterArray; } Int_t getNClusters() { return m_Clusters.size(); } Int_t getNClusters( Int_t sec ) { return m_NumClusters[sec]; } // Expects 0-11, returns nclusters in specified sector EEezCluster getCluster( Int_t c ) { return m_Clusters[c]; } EEezCluster *getClusterPtr( Int_t c ) { return &m_Clusters[c]; } void setShapeLimit( Float_t s ){ m_ShapeLimit = s; } private: TH2F *m_ClusterE; // eta vs phi plot of cluster energies (offset by 1/2 bin) TH2F *m_SeedsVsHits; TH2F *m_SeedEvsClustE; // Local copy of seed towers and struck towers EEezTowerPtrVec_t m_SeedTowers; EEezTowerPtrVec_t m_HitTowers; EEezClusterVec_t m_Clusters; // Vector of clusters Int_t m_NumClusters[12]; // N clusters per sector TObjArray m_ClusterArray; // store clusters TObjArray m_FailedArray; // store "clusters" which failed shape limit Float_t m_EnergyCut; // lowest energy tower allowed in cluster Float_t m_ShapeLimit; // Minimum eSeed/eCluster protected: ClassDef(EEezClAnalysis,1); // EEMC cluster finder }; ///////////////////////////////////////////////////////////////////////////// #endif