#ifndef HEMCNEUTRALCANDFINDER_H #define HEMCNEUTRALCANDFINDER_H #include "hreconstructor.h" class HCategory; class HVirtualCandSim; class HEmcNeutralCandFinder : public HReconstructor { private: HCategory* pKine; //! Kine category for sim HCategory* pEmcCluster; //! input clusters HCategory* pParticleCand; //! Kine category for sim HCategory* pEmcNeutralCand; //! Output array of candidates Bool_t isSimulation; //! flag to mark simulation run Float_t fTimeMin; //! cut on the TOF window min value Float_t fTimeMax; //! cut on the TOF window max value Float_t femcMQCut; //! cut in emc MetaQA for trusted emc matches with particlecand Float_t fPhotonBetaCutMin; //! cut on beta (lower boundary) to identify as photon Float_t fPhotonBetaCutMax; //! cut on beta (upper boundear) to identify as photon Float_t calcMomentum(Float_t length, Float_t tof, Float_t mass); void initVariables(); Bool_t fillVirtualCandSimInfo(HVirtualCandSim* part, HCategory* pKine, Int_t track); public: HEmcNeutralCandFinder(const Text_t* name = "HEmcNeutralCandFinder", const Text_t* title = "HEmcNeutralCandFinder"); virtual ~HEmcNeutralCandFinder(); void setTrustedCandCut(Float_t mqcut) { femcMQCut = mqcut; } void setPhotonCuts(Float_t lcut, Float_t ucut) { fPhotonBetaCutMin = lcut; fPhotonBetaCutMax = ucut; } void setTimeCuts(Float_t lcut, Float_t ucut) { fTimeMin = lcut; fTimeMax = ucut; } virtual Bool_t init(); virtual Bool_t reinit(); virtual Int_t execute(); virtual Bool_t finalize(); ClassDef(HEmcNeutralCandFinder,0) }; #endif /* HEMCNEUTRALCANDFINDER_H */