#include "hkicktrackfb.h"

HKickTrackFB


class description - source file - inheritance tree (.pdf)

class HKickTrackFB : public HKickTask

Inheritance Chart:
TObject
<-
TNamed
<-
HTask
<-
HReconstructor
<-
HKickTask
<-
HKickTrackFB
<-
HKickTrackFBSim

    protected:
void assignRemainingCombinations() void assignUniqueCombinations() void checkMETAoverlap(Int_t i, Int_t j) void checkTofClusterParticipants(Int_t i, Int_t j, Int_t sz) void clearImpactList() void evaluateMetaCandidates() Int_t execute_mult() virtual void fillControl(HKickCandidate& candidate, HKickImpact* imp) virtual HKickTrackB* fillData(HKickCandidate& candidate, HKickImpact* imp) virtual HKickTrack* fillDataInOldCat(HKickCandidate& candidate, HKickImpact* imp) Bool_t isUnique(Int_t i, Int_t j) virtual HKickCandidateEvaluator* makeEvaluator() virtual HCategory* makeOldOutputCategory(HEvent* event) virtual HKickTrack* makeOldTrack() virtual HCategory* makeOutputCategory(HEvent* event) virtual HKickTrackB* makeTrack() Bool_t passesCuts(HKickCandidate& c) virtual void readHits(HLocation& loc) virtual void readMetaHits(HLocation& loc) void selectTofClusters(Int_t i) void transform(HMdcSeg* hit, HGeomVector& r, HGeomVector& alpha) public:
HKickTrackFB() HKickTrackFB(Text_t* name, Text_t* title) ~HKickTrackFB() Float_t CalcTarDist(HMdcSeg*) static TClass* Class() void enableControlHistograms() virtual Int_t execute() void fillOldKickTrack() virtual Bool_t finalize() Bool_t getConservativeMode() Bool_t getTofClusterMode() Bool_t hasMultipleTarget() Bool_t hasShower() Bool_t hasTof() virtual Bool_t init() virtual TClass* IsA() const virtual Bool_t reinit() void setConservativeMode(Bool_t m) void setDebug(Bool_t flag = kTRUE) void setMultipleTarget(Bool_t f = kTRUE) void setTofClusterMode(Bool_t m) void setVertexAlgorithm(Bool_t f = kTRUE) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) Bool_t usingVertexAlgorithm()

Data Members

    private:
static const Int_t kInactiveSector Sector is not active static const Int_t kLowResSector Sector has not outer chambers protected:
Cat_t fShowerCatId HLocation fSectorLoc ! HKickPlane2* fKickPlane The kick plane HKickMatchPar* fMatchPar HKickPlane2* fKickPlaneList[2] HKickMatchPar* fMatchParList[2] HKickTrackFPar* fKickPar Finder parameters HMdcTrackGSpline* Spline HMdcGetContainers* fGetCont HGeomTransform* tRans[6] TClonesArray* fImpacts !List of impacts in kick plane. Int_t fNImpacts Nb of valid impacts HCategory* fInput !Input category HCategory* fTofHits !TOF hits HCategory* fTofClusters !TOF clusters HCategory* fShowerHits ! HCategory* fCandidateOut ! Output category HCategory* fCandidateOutOld ! Output category TObjArray fOuterHitArray Int_t fNTofHits Int_t fNShowerHits Int_t fNTotalHits HIterator* fIter Iterator in fInput HIterator* fTofIter Iterator in fInput HIterator* fTofCIter Iterator in fInput HIterator* fShowerIter ! Double_t fMinMomentum Double_t fMaxXPull Max pull in x HMdcGeomPar* fMdcGeometry !Geometry transformation HTofGeomPar* fTofGeometry !TOF geometry HTofClusterFPar* fTofClFPar HTofinoGeomPar* fTofinoGeometry ! Tofino Geometry HSpecGeomPar* fSpecGeometry HShowerGeometry* fShowerGeometry HKickCandidateMatrix fCandidates HKickCandidateEvaluator* fEvaluator Bool_t fHasTof Bool_t fHasShower Bool_t fConservativeMode Bool_t fTofClusterMode TArrayI fSectors Sectors to be analized. Float_t fTimeOffset Bool_t fDebug Bool_t fControlHistograms flag for control histograms TNtuple* fRecStat ! Reconstruction statistics Float_t fTargetFlag Flag indicating which target was used. Bool_t fUsingVertex Wheter to use or not to use vertex algorithm Bool_t fMultipleTarget Bool_t fillOldKickTrackCat TClonesArray* fTofClustGarb !List of HTofClusters objects created in this task 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

Class Description

 HKickTrackFB

  This class is intended to match Mdc segments before and after de
  magnet associating the matching pairs a momentum The momentum
  calculation and matching is done using
  a kick plane technique to parametrize the deflection of tracks
  in the HADES inhomogeneous magnet.

 Additional documentation available <a href="http://www-hades.gsi.de/persons/sanchez/hadesdocs/kickdoc.ps.gz">here</a>

  ToF hits clustering implemented. Use option "tofclust" in HKickTaskSet
  to invoke this functionality.

  ----------------( Modification scince 01.06.2004 )--------------
  This modification involves an output into HBaseTrack
  and it also establish a link to HMetaMatch so one
  will be able to use it from HMetaMatch
  This is done to satisfy "GeneralizedTrackingProject"

  To find correspondence of low resolution HKickTrack
  with HMetaMatch we tooke a simplest way - we did no rewrite
  Manuel's class HKickTrackF but rather changed its name
  into HKickTrackFB . To then we compared Manuel's track candidate
  components {HMdcSeg, Shower/TOFINO-hit, TOF(hit/cluster)}
  with the coresponding HMetaMatch track components
  {HMdcSeg, Shower/TOFINO-hit, TOF(hit/cluster)} and if
  such coincidence was found we simply provided HKickTrackB
  object into HMetaMatch. As the result user has HKickTrack
  (with the HKickTrackB output stile) into HMetaMatch

  Warning - now user has to use HKickTrackB task !AFTER!
  HMetaMatch task - becouse HKickTrackB uses HMetaMatch
  information, and writes itself into HMetaMatch



HKickTrackFB(Text_t name[],Text_t title[]) : HKickTask(name,title),fOuterHitArray(1000)
Default constructor.

~HKickTrackFB(void)
Guess it?

Int_t execute(void)
Launchs reconstruction

Int_t execute_mult(void)
This is the brain of this class. It directs the reconstruction for each event

void fillControl(HKickCandidate &candidate, HKickImpact *imp)
Fills control variables, histograms....


void evaluateMetaCandidates(void)
 Loops on all identified candidates evaluating each of them.
 That is, calculating its associated momentum and other useful variables
 for the algorithm

void checkMETAoverlap(Int_t i,Int_t j)

Bool_t passesCuts(HKickCandidate &c)
Checks if a given candidate passes all cuts to be considered a good candidate

void assignRemainingCombinations(void)

void assignUniqueCombinations(void)
Match those candidates which pass all cuts and verifying that
neither the META hit or the MDC hit are used in other valid candidates.
In case such a conflict is detected, this method tries to find a solution.

HKickTrack* makeOldTrack(void)

HCategory* makeOldOutputCategory(HEvent *event)

Float_t CalcTarDist(HMdcSeg *seg)

HKickTrack* fillDataInOldCat(HKickCandidate &candidate, HKickImpact *imp)
Fills output data in the output category

HKickTrackB* makeTrack(void)

HCategory* makeOutputCategory(HEvent *event)

HKickTrackB* fillData(HKickCandidate &candidate, HKickImpact *imp)
Fills output data in the output category

Bool_t isUnique(Int_t i,Int_t j)
Checks if a candidate is unique. The mechanism for solving conflicts is implemented
here

HKickCandidateEvaluator* makeEvaluator(void)
Creates a candidate evaluator. Factory method

void checkTofClusterParticipants(Int_t i,Int_t j,Int_t sz)
 Tof hits clustering auxiliary function.
 It checks the pair of tracks composed from hits
 on their momentum difference and polarity and on
 energy deposited in ToF wall corrected on path
 length of the track in ToF wall.
 In case that the kick-candidate composed from
 cluster-candidate and mdc segment was not accepted
 by clustering conditions the fClAccept flag is set to 0.
 In case that it was accepted the fClAccept flags for
 appropriate kick-candidates composed from hits participating on the
 cluster and mdc segment are set to 0.

void selectTofClusters(Int_t i)
 Body of the ToF hits clustering mechanism.
 It calls function checkTofClusterParticipants
 for each combination cluster - mdc segment.

Bool_t init(void)
Initializes

Bool_t reinit(void)

Bool_t finalize(void)
Finalization code

void clearImpactList(void)

void readMetaHits(HLocation &loc)
Reads hits from MDC and TOF detectors

void readHits(HLocation &loc)
Loops on the input category reading objects and adding objects to
the list of candidates fImpacts.

void transform(HMdcSeg *hit, HGeomVector &r,HGeomVector &alpha)
Calculates position and direction vector for a HMdcHit



Inline Functions


        HKickTrackFB HKickTrackFB(Text_t* name, Text_t* title)
              Bool_t hasTof()
              Bool_t hasShower()
                void setConservativeMode(Bool_t m)
              Bool_t getConservativeMode()
                void setTofClusterMode(Bool_t m)
              Bool_t getTofClusterMode()
                void setDebug(Bool_t flag = kTRUE)
                void enableControlHistograms()
              Bool_t usingVertexAlgorithm()
                void setVertexAlgorithm(Bool_t f = kTRUE)
              Bool_t hasMultipleTarget()
                void setMultipleTarget(Bool_t f = kTRUE)
                void fillOldKickTrack()
             TClass* Class()
             TClass* IsA() const
                void ShowMembers(TMemberInspector& insp, char* parent)
                void Streamer(TBuffer& b)
                void StreamerNVirtual(TBuffer& b)


Author: M.Sanchez (24.05.2000)
Last update: M.Sanchez(24.05.2000)
Copyright GENP


ROOT page - Class index - Class Hierarchy - Top of the page

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.