#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.