#ifndef HKICKTRACKFB_H
#define HKICKTRACKFB_H
#include "hreconstructor.h"
#include "hgeomvector.h"
#include "hkickplane2.h"
#include "hkickmatchpar.h"
#include "htofhit.h"
#include "htofcluster.h"
#include "hshowerhit.h"
#include "hkickcandidate.h"
#include "hkickcandidateevaluator.h"
#include "hkickimpact.h"
#include "hkicktask.h"
#include "hmdcgetcontainers.h"
#include "hkickcandidatematrix.h"
#include "TObject.h"
#include "TFile.h"
#include "TNtuple.h"
class HCategory;
class HMdcSeg;
class HMdcGeomPar;
class HTofGeomPar;
class HTofClusterFPar;
class HTofinoGeomPar;
class HSpecGeomPar;
class HIterator;
class HKickTrackFPar;
class HRuntimeDb;
class HShowerGeometry;
class HKickTrack;
class HKickTrackB;
class HMetaMatch;
class HMdcTrkCand;
class HEvent;
class TH1F;
class HMdcTrackGSpline;
class HGeomTransform;
class HKickTrackFB : public HKickTask {
private:
static const Int_t kInactiveSector;
static const Int_t kLowResSector;
protected:
Cat_t fShowerCatId;
HLocation fSectorLoc;
HKickPlane2 *fKickPlane;
HKickMatchPar *fMatchPar;
HKickPlane2 *fKickPlaneList[2];
HKickMatchPar *fMatchParList[2];
HKickTrackFPar *fKickPar;
HMdcTrackGSpline *Spline;
HMdcGetContainers *fGetCont;
HGeomTransform *tRans[6];
TClonesArray *fImpacts;
Int_t fNImpacts;
HCategory *fInput;
HCategory *fTofHits;
HCategory *fTofClusters;
HCategory *fShowerHits;
HCategory *fCandidateOut;
HCategory *fCandidateOutOld;
TObjArray fOuterHitArray;
Int_t fNTofHits, fNShowerHits,fNTotalHits;
HIterator *fIter;
HIterator *fTofIter;
HIterator *fTofCIter;
HIterator *fShowerIter;
Double_t fMinMomentum;
Double_t fMaxXPull;
HMdcGeomPar *fMdcGeometry;
HTofGeomPar *fTofGeometry;
HTofClusterFPar *fTofClFPar;
HTofinoGeomPar *fTofinoGeometry;
HSpecGeomPar *fSpecGeometry;
HShowerGeometry *fShowerGeometry;
HKickCandidateMatrix fCandidates;
HKickCandidateEvaluator *fEvaluator;
Bool_t fHasTof, fHasShower;
Bool_t fConservativeMode;
Bool_t fTofClusterMode;
TArrayI fSectors;
Float_t fTimeOffset;
Bool_t fDebug;
Bool_t fControlHistograms;
TNtuple *fRecStat;
Float_t fTargetFlag;
Bool_t fUsingVertex;
Bool_t fMultipleTarget;
Bool_t fillOldKickTrackCat;
TClonesArray *fTofClustGarb;
HMetaMatch *pMetaMatch;
HMdcTrkCand *pMdcTrkCand;
HMdcSeg *segment0;
HIterator *fMetaMatchIter;
HCategory *fCatMdcSegSim;
HCategory *fCatMdcSeg;
HCategory *fCatMdcTrkCand;
HLocation sectorloc;
HCategory *fCatMetaMatch;
HCategory *fCatTof;
HLocation locMetaMatch;
HLocation segLoc;
TH1F *histCorELoss;
TH1F *histCorELossCut;
TH1F *histDiffMom;
TH1F *histDiffMomCut;
virtual void readHits(HLocation &loc);
virtual void readMetaHits(HLocation &loc);
void transform(HMdcSeg *hit,HGeomVector &r,HGeomVector &alpha);
Bool_t isUnique(Int_t i,Int_t j);
Int_t execute_mult(void);
virtual void fillControl(HKickCandidate &candidate, HKickImpact *imp);
virtual HKickTrack *fillDataInOldCat(HKickCandidate &candidate,HKickImpact *imp);
virtual HKickTrackB *fillData(HKickCandidate &candidate,HKickImpact *imp);
virtual HKickCandidateEvaluator *makeEvaluator(void);
void assignRemainingCombinations(void);
void clearImpactList();
void evaluateMetaCandidates(void);
Bool_t passesCuts(HKickCandidate &c);
void assignUniqueCombinations(void);
void selectTofClusters(Int_t i);
void checkTofClusterParticipants(Int_t i,Int_t j,Int_t sz);
void checkMETAoverlap(Int_t i,Int_t j);
virtual HKickTrack* makeOldTrack(void);
virtual HKickTrackB* makeTrack(void);
virtual HCategory *makeOutputCategory(HEvent *event);
virtual HCategory *makeOldOutputCategory(HEvent *event);
public:
HKickTrackFB(void) {}
HKickTrackFB(const Text_t name[],const Text_t title[]);
~HKickTrackFB(void);
Int_t execute(void);
Bool_t init(void);
Bool_t reinit(void);
Bool_t finalize(void);
Bool_t hasTof(void) { return fHasTof; }
Bool_t hasShower(void) { return fHasShower; }
void setConservativeMode(Bool_t m) { fConservativeMode=m; }
Bool_t getConservativeMode(void) { return fConservativeMode; }
void setTofClusterMode(Bool_t m) { fTofClusterMode = m; }
Bool_t getTofClusterMode(void) { return fTofClusterMode; }
void setDebug(Bool_t flag=kTRUE) { fDebug = flag; }
void enableControlHistograms() { fControlHistograms = kTRUE; }
Bool_t usingVertexAlgorithm(void) { return fUsingVertex; }
void setVertexAlgorithm(Bool_t f=kTRUE) { fUsingVertex=f; }
Bool_t hasMultipleTarget(void) { return fMultipleTarget; }
void setMultipleTarget(Bool_t f=kTRUE) { fMultipleTarget=f; }
void fillOldKickTrack(void) { fillOldKickTrackCat=kTRUE; }
Float_t CalcTarDist(HMdcSeg*);
ClassDef(HKickTrackFB,0)
};
#endif
Last change: Sat May 22 12:58:46 2010
Last generated: 2010-05-22 12:58
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.