#if !defined (__CINT__) || defined (__MAKECINT__) #include "TH1.h" #include "TH2.h" #include "TProfile.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include #endif class TPhotonMonitor: public TStnModule { public: struct Hist_t { TH1F* fNpho; TH1F* fDet; TH1F* fEt; TH1F* fPhi; TH1F* fDteta; TH1F* fCo4; TH1F* fCo4PJW; TH1F* fHadem; TH1F* fHademT; TH1F* fPhoZv; TH1F* fSeedPhi; TH1F* fSeedEta; TH1F* fTowEt; TH1F* fTowPhi; TH1F* fTowEta; TH1F* fTowIso; TH1F* fNTowerC; TH1F* fNTowerP; TH1F* fTowPatC; TH1F* fTowPatP; TH1F* fEtC; TH1F* fLshr; TH1F* fN3d; TH1F* fPt; TH1F* fSumpt4; TH1F* fChi; TH1F* fCese; TH1F* fCeseRat; TH1F* fCeseRatStr; TH1F* fCesx; TH1F* fCesz; TH1F* fCeseW2; TH1F* fCeseS2; TH1F* fCeseSW; TH1F* fCpr5ps; TH1F* fCpr5ph; TH1F* fCescprx; TH1F* fCescprq; TH1F* fCprWht; TH1F* fCesWht; TH1F* fCesCprDiff; TH1F* fCprTrk; TH1F* fNCpr2; TH1F* fQCpr2; TH1F* fPCpr2; TH1F* fNEmtTdc; TH1F* fEmtTdc; TH1F* fNEmtTime; TH1F* fEmtTime; TH1F* fHadTime; TH2F* fEmMap; TH2F* fHadMap; TH1F* fEmtDet; TH2F* fEmtEmMap; TH2F* fEmtHadMap; TH1F* fRRHadEm; TH1F* fRRCo4; TH1F* fRRChi; TH1F* fRRSumpt4; TH1F* fEtP; TH1F* f3x3; TH1F* fPesE; TH1F* fPesERat; TH1F* fPesX; TH1F* fPesY; TH1F* fPesPhi; TH1F* fPesR; TH1F* fPesDeltaR; TH1F* fPes5x9U; TH1F* fPes5x9V; TH1F* fPPRE; TH1F* fL1Bits; TH1F* fL1BitsPho; TH1F* fL2Bits; TH1F* fL2BitsPho; TH1F* fL3Bits; TH1F* fL3BitsPho; TH1F* fVtxN; TH1F* fVtxZv; TH1F* fCeseRat2; TH1F* fCeseRat3; TH1F* fTimeC; TH1F* fTimeP; TH1F* fCrackN; TH1F* fCrackE; TH1F* fStub; TH1F* fCosStub; TH1F* fCosStubPho; TH1F* fLikeC; TH1F* fLikeP; TH1F* fSiExpC; TH1F* fSiExpPhiC; TH1F* fSiExpConeC; TH1F* fSiExpP; TH1F* fSiExpPhiP; TH1F* fSiExpConeP; }; protected: // pointers to the data blocks used, // header block is always available via // TStnModule::GetHeaderBlock() TStnHeaderBlock* fHeaderBlock; TCalDataBlock* fCalDataBlock; TCcrDataBlock* fCcrDataBlock; TCesDataBlock* fCesDataBlock; TCprDataBlock* fCprDataBlock; TEmtDataBlock* fEmtDataBlock; TStnEmTimingBlock* fEmTimingBlock; TStnJetBlock* fJetBlock; TStnMetBlock* fMetBlock; TStnTrackBlock* fTrackBlock; TStnClusterBlock* fClusterBlock; TStnPhotonBlock* fPhotonBlock; TStnElectronBlock* fElectronBlock; TStnMuonBlock* fMuonBlock; TStnTriggerBlock* fTriggerBlock; // TDcasDataBlock* fDcasDataBlock; TStnVertexBlock* fVertexBlock; // histograms filled Hist_t fHist; // stub finder public: TPhotonMonitor(const char* name="PhotonAna", const char* title="PhotonAna"); ~TPhotonMonitor(); // ****** accessors Hist_t* GetHist () { return &fHist; } TStnHeaderBlock* GetHeaderBlock() { return fHeaderBlock; } TCalDataBlock* GetCalDataBlock() { return fCalDataBlock; } TCcrDataBlock* GetCcrDataBlock() { return fCcrDataBlock; } TCesDataBlock* GetCesDataBlock() { return fCesDataBlock; } TCprDataBlock* GetCprDataBlock() { return fCprDataBlock; } TStnJetBlock* GetJetBlock() { return fJetBlock; } TStnMetBlock* GetMetBlock() { return fMetBlock; } TStnTrackBlock* GetTrackBlock() { return fTrackBlock; } TStnClusterBlock* GetClusterBlock() { return fClusterBlock; } TStnPhotonBlock* GetPhotonBlock() { return fPhotonBlock; } TStnElectronBlock* GetElectronBlock(){ return fElectronBlock; } TStnMuonBlock* GetMuonBlock() { return fMuonBlock; } TStnTriggerBlock* GetTriggerBlock() { return fTriggerBlock; } // TDcasDataBlock* GetDcasBlock() { return fDcasDataBlock; } TStnVertexBlock* GetVertexBlock() { return fVertexBlock; } // ****** setters // ****** overloaded methods of // TStnModule int BeginJob(); int BeginRun(); int Event (int ientry); int EndJob (); // ****** other methods void BookHistograms(); int TrgAna(); int PhoAna(int ientry); int PrintLinks(TStnPhotonBlock* blk, int pho); void Plot(int page=0); void SetMode(int m) { mode = m; } int mode; int nevent; ClassDef(TPhotonMonitor,0) };