#ifndef __EEQuickPi0Finder_h__ #define __EEQuickPi0Finder_h__ #include #include #include "EEezUtils.h" #include "eeSinglePeak.h" #include "eeDoublePeak.h" class EEezPi0nCandidate; class EEezCluster; class EEmcEventHeader; class EEstarTrig; class TH1F; class TCanvas; class EEmcSmdMap; class EEPi0TreeItem : public TObject { public: EEPi0TreeItem() { /* nada */ }; ~EEPi0TreeItem() { /* nada */ }; //-- Event ID so we can get info from ezTree about //-- the event... Int_t eventID; // from header Int_t eztreeID; // entry number //-- Initialization of the fit // eeSinglePeakParam_t u1Init,v1Init,u2Init,v2Init; Float_t usuml, usumr, vsuml, vsumr; Float_t umin1, umax1, umin2, umax2; Float_t vmin1, vmax1, vmin2, vmax2; //-- Results of the two-peak fit Float_t u1yield,u1mean,u1sigma,u1ryield,u1rsigma; Float_t u2yield,u2mean,u2sigma,u2ryield,u2rsigma; Float_t uchi2, undf; Float_t v1yield,v1mean,v1sigma,v1ryield,v1rsigma; Float_t v2yield,v2mean,v2sigma,v2ryield,v2rsigma; Float_t vchi2, vndf; //-- Some cluster parameters Float_t eCluster, eSeed; Int_t sector, subsector, etabin; //-- The histograms for later use... TH1F *uprofile; TH1F *vprofile; //-- Calculated kinematic quantities Float_t zgg, dgg, phigg; Float_t zggu, dggu, zggv, dggv; Float_t mass, xf, pt, phi, eta; ClassDef(EEPi0TreeItem,1); }; class EEQuickPi0Finder : public TDirectory { public: EEQuickPi0Finder( const Char_t *name ); ~EEQuickPi0Finder() { /* nada */ }; Int_t Find( EEezCluster *cluster ); void setHeader( EEmcEventHeader *h ) { mEEHead = h; } void setTrig( EEstarTrig *t ) { mEETrig = t; } void setSmdSeedThreshold ( Float_t t ) { mSmdSeedThreshold = t; } private: protected: EEezUtils *mEzUtils; TH1F *mProfileU; TH1F *mProfileV; TH1F *mResidualU; TH1F *mResidualV; Float_t mSmdSeedThreshold; EEmcEventHeader *mEEHead; EEstarTrig *mEETrig; EEmcSmdMap *mSmdMap; void doSinglePeakFit(EEezCluster*); void doDoublePeakFit(EEezCluster*); void doKinematics(EEezCluster*); TCanvas *mSingleFitCanvas; TCanvas *mResidualFitCanvas; TCanvas *mDoubleFitCanvas; Float_t Integrate( TH1F *histo, Float_t min, Float_t max ); TTree *mPi0Tree; EEPi0TreeItem *mPi0TreeItem; eeSinglePeakParam_t mUinit[2]; eeSinglePeakParam_t mVinit[2]; ClassDef(EEQuickPi0Finder,1); }; #endif