/****************************************************************************** * $Id: CbmRichRingQa.h,v 1.1 2006/04/10 08:21:04 hoehne Exp $ * * Class : CbmRichRingQa * Description : Quality checks or ring finders: * efficiency calculation etc. * * Author : Simeon Lebedev * ******************************************************************************* * $Log: CbmRichRingQa.h,v $ * Revision 1.1 2006/04/10 08:21:04 hoehne * routine for checking the ring finders (quality, efficiency) * initial version * * * *******************************************************************************/ #ifndef CBMRICHRINGQA_H #define CBMRICHRINGQA_H #include "TH1D.h" #include "TH2D.h" #include "CbmTask.h" #include "map.h" class CbmRichRingQa : public CbmTask{ TClonesArray* fRings; // Array of CbmRichRings TClonesArray* fPoints; // Array of CbmMCPoints TClonesArray* fTracks; // Array of CbmMCTracks TClonesArray* fHits; // Array of CbmRichHits TClonesArray* fMatches; // Array of CbmRichRingMatch TClonesArray* fProj; // Array of CbmRichRingMatch TClonesArray* fTrackMatch; //Array of STSTrackMatch TClonesArray* gTrackArray; // Array of Global Tracks map fRingMap; Int_t nevents; Int_t fNormType; public: /** Default constructor **/ CbmRichRingQa(); /** Standard Constructor with name, title, and verbosity level *@param verbose verbosity level (0=quiet, 1=event level, 2=track level, 3=debug) */ CbmRichRingQa(const char *name, const char *title, Int_t verbose, Int_t normType); /** Destructor **/ virtual ~CbmRichRingQa(); /** Initialization of the task **/ virtual InitStatus Init(); /** Executed task **/ virtual void Exec(Option_t* option); /** Finish task **/ virtual void Finish(); void EfficiencyCalc(); void DiffFakeTrue(); //Histogramms TH1D* fh_nAllRings; //number of all MC rings TH1D* fh_n5HitsAllRings;//number of MC rings with 5 or more hits TH1D* fh_n10HitsAllRings;//number of MC rings with 10 or more hits TH1D* fh_n15HitsAllRings;//number of MC rings with 15 or more hits TH1D* fh_nERings; //number of all electron MC rings TH1D* fh_n5HitsERings;//number of electron MC rings with 5 or more hits TH1D* fh_n10HitsERings;//number of electron MC rings with 10 or more hits TH1D* fh_n15HitsERings;//number of electron MC rings with 15 or more hits TH1D* fh_nPiRings; //number of all pion MC rings TH1D* fh_n5HitsPiRings;//number of pion MC rings with 5 or more hits TH1D* fh_n10HitsPiRings;//number of pion MC rings with 10 or more hits TH1D* fh_n15HitsPiRings;//number of pion MC rings with 15 or more hits //------------------------------------------------------------------------------------------------------------- TH1D* fh_n6StsAllRings; //number of all MC rings with 6 STS points TH1D* fh_n5Hits6StsAllRings;//number of MC rings with 5 or more hits and 6 STS points TH1D* fh_n10Hits6StsAllRings;//number of MC rings with 10 or more hits and 6 STS points TH1D* fh_n15Hits6StsAllRings;//number of MC rings with 15 or more hits and 6 STS points TH1D* fh_n6StsERings; //number of all electron MC rings 6 STS points TH1D* fh_n5Hits6StsERings;//number of electron MC rings with 5 or more hits and 6 STS points TH1D* fh_n10Hits6StsERings;//number of electron MC rings with 10 or more hits and 6 STS points TH1D* fh_n15Hits6StsERings;//number of electron MC rings with 15 or more hits and 6 STS points TH1D* fh_n6StsPiRings; //number of all pion MC rings and 6 STS points TH1D* fh_n5Hits6StsPiRings;//number of pion MC rings with 5 or more hits and 6 STS points TH1D* fh_n10Hits6StsPiRings;//number of pion MC rings with 10 or more hits and 6 STS points TH1D* fh_n15Hits6StsPiRings;//number of pion MC rings with 15 or more hits and 6 STS points //------------------------------------------------------------------------------------------------------------ TH1D* fh_n6StsProjAllRings; //number of all MC rings with 6 STS points and projection TH1D* fh_n5Hits6StsProjAllRings;//number of MC rings with 5 or more hits and 6 STS points and projection TH1D* fh_n10Hits6StsProjAllRings;//number of MC rings with 10 or more hits and 6 STS points and projection TH1D* fh_n15Hits6StsProjAllRings;//number of MC rings with 15 or more hits and 6 STS points and projection TH1D* fh_n6StsProjERings; //number of all electron MC rings 6 STS points and projection TH1D* fh_n5Hits6StsProjERings;//number of electron MC rings with 5 or more hits and 6 STS po and projectionints TH1D* fh_n10Hits6StsProjERings;//number of electron MC rings with 10 or more hits and 6 STS points and projection TH1D* fh_n15Hits6StsProjERings;//number of electron MC rings with 15 or more hits and 6 STS points and projection TH1D* fh_n6StsProjPiRings; //number of all pion MC rings and 6 STS points and projection TH1D* fh_n5Hits6StsProjPiRings;//number of pion MC rings with 5 or more hits and 6 STS points and projection TH1D* fh_n10Hits6StsProjPiRings;//number of pion MC rings with 10 or more hits and 6 STS points and projection TH1D* fh_n15Hits6StsProjPiRings;//number of pion MC rings with 15 or more hits and 6 STS points and projection TH1D* fh_percOfTrueMCHitsAll;//Percent of true hits. Normalized by Number of MC hits TH1D* fh_percOfTrueHitsAll;//Percent of true hits. Normalized by Number of found hits TH1D* fh_percOfTrueMCHitsE;//Percent of true hits. Normalized by Number of MC hits. Electron. Proj TH1D* fh_percOfTrueHitsE;//Percent of true hits. Normalized by Number of found hits. Electron. Proj TH1D* fh_percOfTrueMCHitsPi;//Percent of true hits. Normalized by Number of MC hits. Pion. Proj TH1D* fh_percOfTrueHitsPi;//Percent of true hits. Normalized by Number of found hits. Pion. Proj TH1D* fh_True10HitsFoundRingsMomAll;//Number of found rings vs momentum TH1D* fh_10HitsMCRingsMomAll;//Number of MC rings vs momentum TH1D* fh_True10HitsFoundRingsMomE;//Number of found rings vs momentum. Electron. Proj TH1D* fh_10HitsMCRingsMomE;//Number of MC rings vs momentum. Electron. Proj TH1D* fh_True10HitsFoundRingsMomPi;//Number of found rings vs momentum. Pion. Proj TH1D* fh_10HitsMCRingsMomPi;//Number of MC rings vs momentum. Pion. Proj TH2D* fh_FakeFoundRingsXYAll; TH1D* fh_Fake7RingsNhits; TH1D* fh_Fake8RingsNhits; TH1D* fh_TrueRingsNhitsE; TH1D* fh_TrueRingsNhitsPi; TH1D* fh_Fake7RingTrackDist;//Distance between track and ring center.Fake rings TH1D* fh_Fake8RingTrackDist;//Distance between track and ring center.Fake E ring TH1D* fh_TrueRingTrackDistE;//Distance between track and ring center. Electron. >= 10 hits. Projection TH1D* fh_TrueRingTrackDistPi;//Distance between track and ring center. Pion. >= 10 hits. Projection TH1D* fh_Fake7Angle;//Biggest angle.Fake rings TH1D* fh_Fake8Angle;//Biggest angle.Fake E rings TH1D* fh_TrueAngleE;//Biggest angle. Electron. >= 10 hits. Projection TH1D* fh_TrueAnglePi;//Biggest angle. Pion. >= 10 hits. Projection TH1D* fh_Fake7RingsTBsum; TH1D* fh_TrueRingsTBsumPi; TH1D* fh_TrueRingsTBsumE; TH1D* fh_Fake8RingsTBsum; TH1D* fh_Fake7RingsTBsumNhits; TH1D* fh_TrueRingsTBsumNhitsPi; TH1D* fh_TrueRingsTBsumNhitsE; TH1D* fh_Fake8RingsTBsumNhits; TH1D* fh_Fake7RingsChi2; TH1D* fh_TrueRingsChi2Pi; TH1D* fh_TrueRingsChi2E; TH1D* fh_Fake8RingsChi2; TH2D* fh_RvsMomFake; TH2D* fh_RvsMomTrue; TH2D* fh_HitsXY;//hits distribution (x,y) TH2D* fh_TrueFoundRingsXYE;// (x,y) of true electron rings TH2D* fh_TrueFoundRingsXYPi; // (x,y) of true pions rings TH1D* fh_NhitsPerEvent;//Nof hits per event TH1D* fh_NprojPerEvent;//Nof projections/ event TH1D* fh_CloneMom;//number of clone rings vs momentum TH1D* fh_NClonesPerEvent; TH1D* fh_NFakesPerEvent; TH1D* fh_MomSlice1GeVE; TH1D* fh_MomSlice7GeVE; TH1D* fh_MomSlice9GeVE; TH1D* fh_MomSlice1GeVPi; TH1D* fh_MomSlice7GeVPi; TH1D* fh_MomSlice9GeVPi; ClassDef(CbmRichRingQa,1) }; #endif