/* $Id: CbmRichAnalysisHits.h,v 1.4 2005/12/19 19:04:31 friese Exp $ */ /* History of cvs commits: * * $Log: CbmRichAnalysisHits.h,v $ * Revision 1.4 2005/12/19 19:04:31 friese * New CbmTask design * * Revision 1.3 2005/07/18 09:55:08 kharlov * Track projection analysis is added * * Revision 1.2 2005/07/06 14:59:45 kharlov * Non-used histos are removed * */ // ------------------------------------------------------------------------- // ----- CbmRichAnalysisHits header file ----- // ----- Created 06/09/04 ----- // ------------------------------------------------------------------------- #ifndef CBMRICHANALYSISHITS_H #define CBMRICHANALYSISHITS_H #include "CbmTask.h" #include "CbmStack.h" class CbmStack; class TArrayD; class TH1F; class TH2F; class TH3F; class CbmRichAnalysisHits : public CbmTask { public: CbmRichAnalysisHits(); CbmRichAnalysisHits(const char *name, const char *title="Hit analysis"); virtual ~CbmRichAnalysisHits(); InitStatus Init(); void Exec(Option_t* option); void Finish(); void SetDebug(Option_t *debug="") {fDebug = debug;} void AnalyzePrimary(); void AnalyzeMCPoints(); void AnalyzeHits(); void AnalyzeRingGuidances(); void AnalyzeRings(); void AnalyzeAcceptanceElectrons(); void AnalyzeAcceptanceVectorMesons(); void SetEbyEgraph(Bool_t flag = kFALSE) {fEbyEgraph = flag;} void SetWhatToAnalyze(Option_t *opt="TPHRA") {fWhatToAnalyze = opt;} private: TClonesArray* fListStack; // List of particles in a stack TClonesArray* fListRICHpts; // RICH MC points TClonesArray* fListRICHhits; // RICH hits TClonesArray* fListRICHrings; // RICH ring guidances TClonesArray* fListLightSpots;// Light spots list TClonesArray* fProjectionCollection; // Projected tracks TClonesArray* fTrackCollection; // Extrapolated tracks Bool_t fEbyEgraph; // Flag to switch on/off event-by-event graphs with hits Int_t fEvent; // current event number Int_t fNprimary; // number of primary tracks Int_t fNHits; // number of hits TArrayD *fXHits; // array of hit x-coordinates TArrayD *fYHits; // array of hit y-coordinates Int_t fNrgs; // number of ring guidances Int_t fNrgstr; // number of extrapolated tracks Int_t fNrgscp; // number of projected tracks TArrayD *fXrgs; // array of ring guidance x-coordinates TArrayD *fYrgs; // array of ring guidance y-coordinates TArrayD *fXcp; // array of projections x-coordinates TArrayD *fYcp; // array of projections y-coordinates TArrayD *fXtr; // array of extrapolations x-coordinates TArrayD *fYtr; // array of extrapolations y-coordinates // Primary tracks histograms TH1F *fhPrimPabs; // Abs momentum distribution of primaries TH1F *fhPrimPt; // Transverse momentum distribution of primaries TH1F *fhPrimEta; // Pseudorapidity distribution of primaries TH1F *fhPrimTheta; // Polar angle distribution of primaries TH1F *fhPrimPhi; // Azymuth angle distribution of primaries TH2F *fhPrimPtEta; // Transverse momentum vs Eta of primaries // TH1F *fhPrimPabs_pi0; // Abs momentum distribution of primaries // TH1F *fhPrimPabs_pi; // Abs momentum distribution of primaries // TH1F *fhPPabs_pi0; // Abs momentum distribution of primaries // TH1F *fhPPabs_pi; // Abs momentum distribution of primaries // MC points histograms TH1F *fhNPhotonsPrim; // Number of cherenkov photons from 1 primary electron TH2F *fhPhotonsXYmcp; // (X,Y) coordinates of Cherenkov photons TH1F *fhPhotonsE; // Cherenkov photons energy TH2F *fhEtaVsX; // eta vs Cherenkov X TH2F *fhEtaVsY; // eta vs Cherenkov Y TH2F *fhEtaVsR; // eta vs Cherenkov R // Hits histograms TH1F *fhNpmt; // Number of fired PMTs TH2F *fhPhotonsXY; // (X,Y) coordinates of Cherenkov photons TH1F *fhNTracks; // Number of detected tracks TH1F *fhNPrimTracks; // Number of detected primary tracks TH1F *fhTrackZ; // Z-vertex of detected tracks TH1F *fhNphotPMT; // Number of photons per PMT TH1F *fhAmplitude; // PMT amplitude // Kinematics of detected tracks per their type TH1F *fhPtElectron; // Pt of detected e+e- TH1F *fhPtMuon; // Pt of detected mu+mu- TH1F *fhPtPion; // Pt of detected pi+pi- TH1F *fhPtKaon; // Pt of detected K+K- TH1F *fhPtProton; // Pt of detected p+p- TH1F *fhEtaElectron; // Eta of detected e+e- TH1F *fhEtaMuon; // Eta of detected mu+mu- TH1F *fhEtaPion; // Eta of detected pi+pi- TH1F *fhEtaKaon; // Eta of detected K+K- TH1F *fhEtaProton; // Eta of detected p+p- TH1F *fhPElectron; // P of detected e+e- TH1F *fhPMuon; // P of detected mu+mu- TH1F *fhPPion; // P of detected pi+pi- TH1F *fhPKaon; // P of detected K+K- TH1F *fhPProton; // P of detected p+p- // Light spot characteristics TH2F *fhNLSElectron; // Number of fired PMT per one light spot for e+- TH2F *fhRLSElectron; // Light spot radius vs p for e+- TH2F *fhNLSMuon; // Number of fired PMT per one light spot for mu+- TH2F *fhRLSMuon; // Light spot radius vs p for mu+- TH2F *fhNLSPion; // Number of fired PMT per one light spot for pi+- TH2F *fhRLSPion; // Light spot radius vs p for pi+- TH2F *fhNLSKaon; // Number of fired PMT per one light spot for K+- TH2F *fhRLSKaon; // Light spot radius vs p for K+- TH2F *fhNLSProton; // Number of fired PMT per one light spot for p+- TH2F *fhRLSProton; // Light spot radius vs p for p+- // Distance between light spot center and ring guidance TH1F *fhRtrueMatch; // Dist. between light spot and ring guidance from the same track TH1F *fhRfalseMatch; // Dist. between light spot and ring guidance from the diff tracks // Distance between light spot center and ring guidance for closest distance match TH1F *fhTrue; // Dist. between light spot and ring guidance from the same track TH1F *fhTrueElectron; // Dist. between light spot and ring guidance from the same track for electrons TH1F *fhTruePion; // Dist. between light spot and ring guidance from the same track for pions TH1F *fhFalse; // Dist. between light spot and ring guidance for false track TH1F *fhFalseElectronPi; // Dist. between light spot and ring guidance for false track (pi id as e) TH1F *fhFalseElectron; // Dist. between light spot and ring guidance for false track (any id as e) // Normalized distance between light spot center and ring guidance TH1F *fhPdfElectron; // Norm. dist. between light spot and ring guidance for electrons TH1F *fhPdfPi; // Norm. dist. between light spot and ring guidance for pions // Acceptance TH2F* fhPtYrap; // Pt and Y rapidity of primary particles TH2F* fhPtYrapSignal; // Pt and Y rapidity of signal particles TH2F* fhPtYrapAccept; // acceptance TH1F* fhDileptonMass; // Invariant mass of dilepton pair TH1F *fhNphotMCRing;// number of photons (MC Points) per MCLightSpot Option_t *fDebug; //! debug flag Option_t *fWhatToAnalyze; //! set analysis function you want to analyze ClassDef(CbmRichAnalysisHits,1) }; #endif