#ifndef HGEANTKINEANA_H
#define HGEANTKINEANA_H
#include "TH2.h"
#include "TH3.h"
#include "TFile.h"
#include "TEventList.h"
#include "TObjArray.h"
#include "TString.h"
#include "hreconstructor.h"
class HGeantKine;
class HParSet;
class HCategory;
class HIterator;
class HGeantKine;
class HRichHitSim;
class HGeantKineAna : public HReconstructor {
public:
	HGeantKineAna();
        HGeantKineAna(const Text_t *name,const Text_t *title);
        HGeantKineAna(const Text_t *name,const Text_t *title,const Char_t* filename,const Char_t *evtgen);
	~HGeantKineAna();
        Bool_t init();
        Bool_t finalize();
        Int_t execute();
        Bool_t reconPionFromGammaConversionLeptons(TObjArray*);
        Int_t findAcceptedDalitzLeptons(TObjArray&);
        void  checkAcceptedDalitzLeptons(TObjArray&);
        Int_t getTracksForRings(TObjArray&,TObjArray&);
        Int_t getPairsForTracks(TObjArray&,TObjArray&);
        Int_t fillDalitzPairs(TObjArray&,TObjArray&);
        Int_t matchGEANTwithFoundPair(TObjArray&,TObjArray&);
        Int_t matchGEANTwithFoundTracks(TObjArray&,TObjArray&);
        Int_t matchFoundPairwithGEANT(TObjArray&,TObjArray&);
        Int_t matchFoundTrackswithGEANT(TObjArray&,TObjArray&);
        void dumpKine(HGeantKine*);
        void histoKine(HGeantKine*);
        void histoLepton(HGeantKine*,TH2D*);
        void histoLeptonPair(TObjArray&,TH2D*);
        void histoGammas(HGeantKine*,HGeantKine*);
        void findPionDalitzLeptons();
        TObjArray* getPionGammaConversionLeptons();
        void findPionGammaConversionLeptons();
        void showLeptonsFromPi0Decays(const Char_t*);
        void showGammasFromPi0Decays();
        HRichHitSim* checkRings(HGeantKine*);
        Int_t checkTrackPairs(TObjArray&,TObjArray&);
        Int_t checkForPair(TObjArray&,const Char_t*);
        Int_t checkRingCorrelation(HRichHitSim*,TObjArray&);
        void calcParticleAnglesT(HGeantKine*,Float_t&,Float_t&);
        void calcParticleAnglesV(HGeantKine*,Float_t&,Float_t&);
        Float_t calcOpeningAngleT(Float_t,Float_t,Float_t,Float_t);
        Float_t calcOpeningAngleV(HGeantKine*,HGeantKine*);
        void iniCounters();
        void iniSwitches();
        void iniControlHistos();
        HCategory* getGeantKineCat(){return fGeantKineCat;}
        void setGeantKineCat(HCategory* cat){fGeantKineCat = cat;}
        HCategory* getGeantMirrCat(){return fGeantRichMirrorCat;}
        void setGeantMirrCat(HCategory* cat){fGeantRichMirrorCat = cat;}
        HCategory* getGeantMDCCat(){return fGeantMdcCat;}
        void setGeantMDCCat(HCategory* cat){fGeantMdcCat = cat;}
        HCategory* getHitMatchCat(){return pHitMatchCat;}
        void setHitMatchCat(HCategory* cat){pHitMatchCat = cat;}
        HCategory* getDiHitMatchCat(){return pDiHitMatchCat;}
        void setDiHitMatchCat(HCategory* cat){pDiHitMatchCat = cat;}
        HGeantKine* findParent(HGeantKine*);
        void setGeoPar(HParSet* p){pGeoPar = p;};
        HCategory* getRichHitCat(){return fRichPID;};
        void saveHistos();
protected:
    
    HCategory *fGeantKineCat; 
    HIterator *iter_kine; 
    HCategory *fGeantRichMirrorCat; 
    HIterator *iter_mirror; 
    HCategory *fGeantMdcCat; 
    HIterator *iter_mdcgeant; 
    HCategory *fRichPID; 
    HIterator *fRichIter; 
    HCategory *pHitMatchCat; 
    HIterator *pIterMatchHit; 
    HCategory *pDiHitMatchCat; 
    HIterator *pIterDiHitMatch; 
    HParSet *pGeoPar; 
    
    TFile *pFileOut;
    
    TObjArray *pHistArray;
    TH2D *pHistElePosMomConv;
    TH1F *pHistOpenAngle;
    TH2D *pHistConvEleMom;
    TH2D *pHistConvPosMom;
    TH2D *pHistConvGammaMom;
    TH1F *pHistConvPairSource;
    TH3D *pHistElePosMomThetaConv;
    TH3D *pHistConvPairVertex;
    TH1F *g_conv_opangle;
    TH2F *deltaP_opangle;
    TH1D *med_conv;
    TH1D *mech_conv;
    TH1D *par_conv;
    TH2D *par_med_conv;
    TH2D *par_mech_conv;
    TH2D *mech_mom_conv;
    TH1D *med_dalitz;
    TH1D *mech_dalitz;
    TH1D *par_dalitz;
    TH2D *par_med_dalitz;
    TH2D *par_mech_dalitz;
    TH2D *mech_mom_dalitz;
    
    TH1D *hidkine ;
    TH1D *hmedkine ;
    TH1D *hmechkine ;
    TH1D *hmomkine ;
    TH2D *hmomthetakine;
    TH2D *hmompairkine;
    TH2D *hthetapairkine;
    TH1D *hparentkine ;
    TH3D *hvertexkine ;
    TH1D *hcntdistx; 
    TH1D *hcntdisty; 
    TH2D *hcntdistxy; 
    TH1D *hweight;
    TH2D *hweightdist;
    TH1D *hpi0invmass;
    TH1D *hdalitzopang;
    TH1D *hdalitzinvmass;
    
    TH2D *hgammathetatheta; 
    TH2D *hgammamommom; 
    TH2D *hgammamom1theta2; 
    TH2D *hgammamomtheta; 
    
    TH2D *hmomthetaallsingle; 
    TH2D *hmomthetareconsingle; 
    TH2D *hmomthetaallpair; 
    TH2D *hmomthetareconpair; 
    
    TH2D *hpolpol; 
    TH2D *hpoldiffinvmass; 
    TH2D *hmomdiffpoldiff; 
    
    TEventList *el; 
    
    Int_t nEvtsProcessed;
    Int_t nbRings; 
    Int_t nbLeptons; 
    Int_t nbDalitzPairs; 
    Int_t nbDalitzSingle; 
    Int_t nbTracks; 
    Int_t nbTrackPairs; 
    Int_t nbgMatchedPairs; 
    Int_t nbgMatchedTracks; 
    Int_t nbgMatchedGPairs; 
    Int_t nbgMatchedGTracks; 
    
    
    Bool_t kDumpIt;
    
    TString pFileName;
    
    TString pEvtGen;
    ClassDef(HGeantKineAna,1)
};
#endif //HGEANTKINEANA_H
Last change: Sat May 22 12:55:55 2010
Last generated: 2010-05-22 12:55
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.