#ifndef HPIDEFFICIENCYCALCULATION_H
#define HPIDEFFICIENCYCALCULATION_H
#include "hsudummyrec.h"
#include "TString.h"
#define MAX_VARS 200
#define EFF_NTUPLE_VARS_1 "E_track_number:E_parent_track_number:E_geant_id"
#define EFF_NTUPLE_VARS_2 "E_medium:E_mechanism:E_isPartOfATrack:E_isFullyReconstructed"
#define EFF_NTUPLE_VARS_3 "E_system:E_charge:E_rec_mom:E_beta:E_sector:E_theta:E_phi"
#define EFF_NTUPLE_VARS_4 "E_rec_mom_kick:E_rec_mom_spline:E_rec_mom_rk:E_geant_mom"
#define EFF_NTUPLE_VARS_5 "E_geant_flag:E_inner_chi2:E_outer_chi2:E_rich_corr_kick"
#define EFF_NTUPLE_VARS_6 "E_rich_corr_spline:E_rich_corr_rk:E_rich_flag:E_rec_id:E_isIdentified"
#define EFF_NTUPLE_VARS_7 "E_geant_mom_x:E_geant_mom_y:E_geant_mom_z"
#define EFF_NTUPLE_VARS_8 "E_isAccepted:E_isCloseToOtherParticle:E_isEmbeddedTrack:E_geant_theta:E_geant_phi"
#define EFF_NTUPLE_VARS_9 "E_firstShowerIndex:E_firstTofIndex:E_isCloseToEmbeddedParticle:E_isRemovedByActivePairCut"
#define EFF_NTUPLE_VARS_10 "E_isLegOfPair:E_isLegOfSurvivingPair:E_innerSegmentIndex"
#define EFF_NTUPLE_VARS_11 "E_ringIndex:E_metaIndex:E_PidTrackCandIndex:E_RKIndex:E_KickIndex:E_matchIndex:E_isRemovedByCPCandidateCutH:E_isRemovedByCPCandidateCutL:E_outerSegmentIndex"
class TNtuple;
class HIterator;
class HCategory;
class HGeantKine;
class HPidTrackCand;
class HPidCandidate;
class HPidParticleSim;
class HPidParticle;
class HPidGeantTrackSet;
class HPairSim;
class HShowerHitTof;
class HTofHit;
class HKickTrack;
class HPidHitData;
class HPidTrackData;
class HPidEfficiencyCalculation : public HSUDummyRec{
public:
HPidEfficiencyCalculation(Int_t SELECTED_MOMENTUM_ALG,
Int_t o_sourceID, Int_t o_targetmedium,
const Char_t *pOutFileName="eff_ntuple_out.root");
~HPidEfficiencyCalculation();
virtual Bool_t init(void);
virtual Int_t execute(void);
virtual Bool_t finalize(void);
Int_t checkGeantTrackSet(const HPidGeantTrackSet* pGTS);
static Bool_t isHiddenLepton(const HPidGeantTrackSet* pPart);
private:
void clearMembers();
void resetNtuple();
Bool_t isInAcceptance(HGeantKine* pKine);
Bool_t isCloseToOtherParticle(HGeantKine* pKine, Bool_t b_UseEmbeddedParticlesOnly=kFALSE);
Bool_t isCloseToEmbeddedParticle(HGeantKine* pKine);
Bool_t isEmbeddedTrack(HGeantKine* pKine);
Bool_t isEmbeddedTrack(Int_t geantTrackNumber);
Bool_t isBackgroundTrack(Int_t geantTrackNumber);
Int_t findCorrespondingMDCSegment(Int_t geantTrackNumber,Bool_t bInnerSeg);
Int_t findCorrespondingMETAHit(Int_t geantTrackNumber);
Int_t findCorrespondingRichRing(Int_t geantTrackNumber);
Bool_t isDileptonPair(HPairSim* pPairSim);
Bool_t isRemovedByActivePairCut(HGeantKine* pKine);
Int_t isPairedWithBackgroundTrack(HPairSim* pPair, HGeantKine* pKine);
Int_t isPairedWithBackgroundLepton(HPairSim* pPair, HGeantKine* pKine);
Float_t calcOpeningAngleKine(HGeantKine *kine1,HGeantKine *kine2);
Bool_t isSeenInSingleDetector(Int_t correlationFlag);
Bool_t isRemovedByCPCandidateCut(HPidParticle* pPart,Bool_t bSelectLepton);
HIterator *pItPart;
HIterator *pItGeant;
HIterator *pItGeant1;
HIterator *pItPairs;
HIterator *pItMdcTrkCand;
HIterator *pItMetaMatch;
HIterator *pItPidTrackCand;
HIterator *pItMdcSeg;
HIterator *pItRichHit;
HIterator *pItTOFHit;
HIterator *pItShowerHitTof;
HIterator *pItMdcGeant;
HIterator *pItTOFGeant;
HIterator *pItShowerGeant;
TNtuple *effNtuple;
TString sOutFileName;
Int_t selectedMomAlg;
Int_t sourceID;
Int_t targetmedium;
Float_t eNtupleVars[MAX_VARS];
enum enumLeaves{
E_track_number,E_parent_track_number,E_geant_id,
E_medium,E_mechanism,E_isPartOfATrack,E_isFullyReconstructed,
E_system, E_charge, E_rec_mom, E_beta, E_sector, E_theta, E_phi,
E_rec_mom_kick, E_rec_mom_spline, E_rec_mom_rk, E_geant_mom,
E_geant_flag, E_inner_chi2, E_outer_chi2, E_rich_corr_kick,
E_rich_corr_spline, E_rich_corr_rk, E_rich_flag, E_rec_id, E_isIdentified,
E_geant_mom_x,E_geant_mom_y,E_geant_mom_z,
E_isAccepted, E_isCloseToOtherParticle, E_isEmbeddedTrack,
E_geant_theta, E_geant_phi, E_firstShowerIndex, E_firstTofIndex, E_isCloseToEmbeddedParticle,
E_isRemovedByActivePairCut, E_isLegOfPair, E_isLegOfSurvivingPair,E_innerSegmentIndex,
E_ringIndex,E_metaIndex,E_PidTrackCandIndex,E_RKIndex,E_KickIndex,E_matchIndex,
E_isRemovedByCPCandidateCutH,E_isRemovedByCPCandidateCutL,E_outerSegmentIndex
};
ClassDef(HPidEfficiencyCalculation,0)
};
#endif /*!HPIDEFFICIENCYCALCULATION_H*/
Last change: Sat May 22 13:07:02 2010
Last generated: 2010-05-22 13:07
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.