StFtpcTrackEvaluator


class description - source file - inheritance tree

class StFtpcTrackEvaluator : public TObject

    private:
void CalcSplitTracks() void CreateHistos() void DeleteHistos() void EvaluateGoodness(Int_t t_Counter) void FastSimHitInit(St_ffs_gepoint* ffs_hit) void GeantHitInit(St_g2t_ftp_hit* g2t_ftp_hit) void GeantTrackInit(St_g2t_track* g2t_track, St_g2t_ftp_hit* g2t_ftp_hit) void ParentTrackInit() void Setup(TDataSet* geant, TDataSet* ftpc_data) void SetupFile(Char_t* filename, Char_t* write_permission) void SetupHistos() public:
StFtpcTrackEvaluator StFtpcTrackEvaluator() StFtpcTrackEvaluator StFtpcTrackEvaluator(TDataSet* geant, TDataSet* ftpc_data, StFtpcVertex* main_vertex, St_fcl_fppoint* fcl_fppoint, St_fpt_fptrack* fpt_fptrack, Char_t* filename = 0, Char_t* write_permission = 0) StFtpcTrackEvaluator StFtpcTrackEvaluator(TDataSet* geant, TDataSet* ftpc_data, StFtpcVertex* main_vertex, TClonesArray* hits, TClonesArray* tracks, Char_t* filename = 0, Char_t* write_permission = 0) StFtpcTrackEvaluator StFtpcTrackEvaluator(StFtpcTrackEvaluator&) virtual void ~StFtpcTrackEvaluator() static TClass* Class() void ClusterInfo() void DivideHistos() void FillCutHistos() void FillEventHistos() void FillFCutHistos() void FillFoundHitsOnTrack() void FillGCutHistos() void FillHitsOnTrack(TClonesArray* trackarray, Char_t c) void FillHitsOnTrack() void FillMomentumHistos() void FillMomentumHistos(Int_t t_counter) void FillParentHistos() void FillParentHistos(Int_t t_counter) void GeantInfo() MIntArray* GetClusterArr() TClonesArray* GetFastSimHits() TClonesArray* GetFoundHits() TClonesArray* GetFoundTracks() TClonesArray* GetGeantHits() TClonesArray* GetGeantTracks() Int_t GetMaxClusters() Int_t GetNumElectronTracks() Int_t GetNumFastSimHits() Int_t GetNumFoundHits() Int_t GetNumFoundNonVertexTracks() Int_t GetNumFoundTracks() Int_t GetNumFoundVertexTracks() Int_t GetNumGeantHits() Int_t GetNumGeantTracks() Int_t GetNumGoodFoundPoints() Int_t GetNumGoodFoundTracks() Int_t GetNumGoodGeantPoints() Int_t GetNumGoodGeantTracks() Int_t GetNumLongTrackClusters() Int_t GetNumLongTracks() Int_t GetNumLookLikeGoodTracks() Int_t GetNumNonVertexTracks() Int_t GetNumShortTrackClusters() Int_t GetNumShortTracks() Int_t GetNumSplitGoodTracks() Int_t GetNumSplitTracks() Int_t GetNumUncleanTracks() MIntArray* GetSplitGoodTracksArr() MIntArray* GetSplitTracksArr() MIntArray* GetUncleanTracksArr() void Info() virtual TClass* IsA() const Bool_t IsCleanTrack(Int_t track_num) Bool_t IsGoodMainVertexTrack(StFtpcTrack* track) Bool_t IsGoodNonVertexTrack(StFtpcTrack* track) Bool_t IsGoodTrack(StFtpcTrack* track) Bool_t IsUncleanTrack(Int_t track_num) void Loop() void ProblemsInfo() virtual void ShowMembers(TMemberInspector& insp, char* parent) void ShowTracks() virtual void Streamer(TBuffer& b) void TrackerInfo() void WriteHistos()

Data Members

private:
Bool_t mObjArraysCreated flag to know which destructor to be called TClonesArray* mGeantHits ClonesArray of geant hits TClonesArray* mFastSimHits ClonesArray of fast simulated hits TClonesArray* mFoundHits ClonesArray of found hits TClonesArray* mGeantTracks ClonesArray of geant tracks TClonesArray* mFoundTracks ClonesArray of found tracks MIntArray* mFtpcTrackNum array of numbers of found Ftpc tracks, [geant track] Int_t mFoundVertexTracks Number of found main vertex tracks Int_t mFoundNonVertexTracks Number of found non main vertex tracks Int_t mGoodGeantPoints Number of points on good geant tracks Int_t mGoodFoundPoints Number of points on good found tracks Int_t mLookLikeGoodTracks Number of tracks which look like good tracks but aren't Int_t mElectronTracks Number of electrons Int_t mNonVertexTracks Number of non main vertex tracks Int_t mGoodGTracks Number of good geant tracks (all tracks - - short tracks - electrons - non vertex tracks) Int_t mGoodFTracks Number of good found tracks (all tracks - - short tracks - electrons - non vertex tracks) Int_t mSplitTracks Number of split tracks Int_t mSplitGoodTracks Number of split good tracks Int_t mUncleanTracks Number of tracks which have picked up wrong clusters Int_t mLongTracks Number of tracks with more than 10 points Int_t mLongTrackClusters Number of clusters on long tracks Int_t mShortTracks Number of tracks with less than 5 points Int_t mShortTrackClusters Number of clusters on short tracks Int_t mMaxClusters Max. number of clusters on a track StFtpcVertex* mVertex pointer ro the main vertex TH1F* mNumGeantHits number of geant hits per event TH1F* mNumFoundHits number of found hits per event TH1F* mNumGeantTracks number of geant tracks per event TH1F* mNumFoundTracks number of found tracks per event TH1F* mNumFoundVertexTracks number of found main vertex tracks per event TH1F* mNumFoundNonVertexTracks number of found non main vertex tracks per event TH1F* mNumElectronTracks number of electrons per event TH1F* mNumNonVertexTracks number of non main vertex tracks per event TH1F* mNumLookLikeGoodTracks number of tracks which look good but aren't TH1F* mNumGoodGTracks number of good geant tracks per event TH1F* mNumGoodFTracks number of good found tracks per event TH1F* mNumSplitTracks number of split tracks per event TH1F* mNumSplitGoodTracks number of split good tracks per event TH1F* mNumUncleanTracks number of unclean tracks per event TH1F* mNumLongTracks number of tracks with more than 10 points per event TH1F* mNumLongTrackClusters number of hits belonging to long tracks per event TH1F* mNumShortTracks number of tracks with less than 5 points per event TH1F* mNumShortTrackClusters number of hits belonging to short tracks per event TH1F* mGHitsOnTrack number of geant hits per track TH1F* mFHitsOnTrack number of found hits per track TH1F* mNumParents number of parent tracks per track TH1F* mNumWrongHitsAll number of wrong clusters per track TH2F* mNumWrongHits number of wrong clusters per track TH1F* mGoodRatio number of good found tracks divided by the number of good geant tracks TH1F* mContamination number of found tracks looking good divided by the number of found main vertex tracks TH1F* mContaWoSplit number of found tracks looking good minus split tracks divided by the number of found main vertex tracks TH1F* mNumGoodGeantPoints number of points on good geant tracks TH1F* mNumGoodFoundPoints number of points on good found tracks TH1F* mGoodPointRatio ration of points on good geant tracks to points on good found tracks TH2F* mPtot found total momentum vs. geant total momentum TH2F* mPt found transverse momentum vs. geant transverse momentum TH2F* mPx found x momentum vs. geant x momentum TH2F* mPy found y momentum vs. geant y momentum TH2F* mPz found z momentum vs. geant z momentum TH1F* mPtotDiff relative difference of total momentum TH1F* mPtDiff relative difference of transverse momentum TH1F* mPxDiff relative difference of momentum in x direction TH1F* mPyDiff relative difference of momentum in y direction TH1F* mPzDiff relative difference of momentum in z direction TH1F* mPtotAcc relative accuracy of total momentum TH1F* mPtAcc relative accuracy of transverse momentum TH1F* mPxAcc relative accuracy of momentum in x direction TH1F* mPyAcc relative accuracy of momentum in y direction TH1F* mPzAcc relative accuracy of momentum in z direction TH2F* mEtaNghits pseudorapidity vs. number of geant clusters on track TH2F* mEtaNfhits pseudorapidity vs. number of found clusters on track TH2F* mPtEtaF transverse momentum vs. pseudorapidity of found tracks TH2F* mPtEtaFMes measured transverse momentum vs. pseudorapidity of found tracks TH2F* mPtEtaGood transverse momentum vs. pseudorapidity of good found tracks divided by all found tracks TH2F* mPtEtaBad transverse momentum vs. pseudorapidity of bad found tracks divided by all found tracks TH2F* mPtEtaUnclean transverse momentum vs. pseudorapidity of unclean (found) tracks TH2F* mPtEtaMesUnclean measured transverse momentum vs. measured pseudorapidity of unclean (found) tracks TH2F* mPtEtaGoodG transverse momentum vs. pseudorapidity of good geant tracks TH2F* mPtEtaGoodF transverse momentum vs. pseudorapidity of good found tracks TH2F* mPtEtaGoodRatio transverse momentum vs. pseudorapidity of good found tracks divided by good geant tracks TH2F* mPtEtaBadG transverse momentum vs. pseudorapidity of bad geant tracks TH2F* mPtEtaBadF transverse momentum vs. pseudorapidity of bad found tracks TH2F* mPtEtaBadRatio transverse momentum vs. pseudorapidity of bad found tracks divided by bad geant tracks TH2F* mPtEtaFVtx transverse momentum vs. pseudorapidity of found tracks with main vertex tag TH2F* mPtEtaLookLikeGood transverse momentum vs. pseudorapidity of found tracks which look like good tracks but aren't TH2F* mPtEtaContamination transverse momentum vs. pseudorapidity of found tracks which look like good tracks but aren't divided by found tracks with main vertex tag TH2F* mGLengthDistTrackAng length distance vs. track angle of geant tracks TH2F* mGCircleDistTrackAng circle distance vs. track angle of geant tracks TH2F* mFLengthDistTrackAng length distance vs. track angle of found tracks TH2F* mFCircleDistTrackAng circle distance vs. track angle of found tracks TH1F* mGTracklAngAll tracklet angle of geant tracks TH1F* mGTrackAngAll track angle of geant tracks TH1F* mGCircleDistAll circle distance of geant tracks TH1F* mGLengthDistAll length distance of geant tracks TH2F* mGTrackAng track angle of geant tracks TH2F* mGCircleDist circle distance of geant tracks TH2F* mGLengthDist length distance of geant tracks TH2F* mGCircleLength circle distance vs. length distance of geant tracks TH1F* mFTracklAngAll tracklet angle of found tracks TH1F* mFTrackAngAll track angle of found tracks TH1F* mFCircleDistAll circle distance of found tracks TH1F* mFLengthDistAll length distance of found tracks TH1F* mDcaFMainVertex distance of closest approach for found main vertex tracks TH1F* mDcaFNonVertex distance of closest approach for found non vertex tracks TH1F* mDcaGMainVertex distance of closest approach for geant main vertex tracks TH1F* mDcaGNonVertex distance of closest approach for geant non vertex tracks TH2F* mFTrackAng track angle of found tracks TH2F* mFCircleDist circle distance of found tracks TH2F* mFLengthDist length distance of found tracks TH2F* mFCircleLength circle distance vs. length distance of found tracks TH2F* mPRatioDist point ratio vs. distance of track pairs TH2F* mPRatioDistSplit point ratio vs. distance of split track pairs MIntArray* mParentTrack array of numbers of parent tracks for each cluster, [found track # * 10 + # of cluster on track] MIntArray* mParentTracks array of numbers of different parent tracks, [found track # * 10 + # of cluster on track] MIntArray* mNumParentTracks array of number of different parent tracks, [found track # * 10 + # of cluster on track] MIntArray* mParent array of number of the actual parent track for each found track MIntArray* mClusterArr array to specify the quality of the found clusters (0 = unused, 1 = used, -1 = used wrong) MIntArray* mUncleanTracksArr array of numbers of unclean tracks MIntArray* mSplitTracksArr array of numbers of split tracks MIntArray* mSplitGoodTracksArr array of numbers of split good tracks Bool_t* mUnclean array of boolean values: indicates if a found track is a unclean track or not public:
Char_t* mFilename Name of the data file. Char_t* mWritePermission Write permission of the data file. TFile* mFile Pointer to the data file.

Class Description

                                                                                
 StFtpcTrackEvaluator class - evaluates found tracks by comparison to the input 
                              GEANT clusters and tracks.                        
                                                                                
 As input this class gets the pointers to the ClonesArrays of found hits and    
 tracks and the pointers of the input (to the tracker) geant hits and tracks.   
 The class should tell then which tracks are found and where are the remaining  
 problems.                                                                      
                                                                                


StFtpcTrackEvaluator()
 Default constructor.
 Sets the pointers.

StFtpcTrackEvaluator(TDataSet *geant, TDataSet *ftpc_data, StFtpcVertex *main_vertex, TClonesArray *hits, TClonesArray *tracks, Char_t *filename, Char_t *write_permission)
 Usual used constructor if conformal mapping tracker output available.

StFtpcTrackEvaluator(TDataSet *geant, TDataSet *ftpc_data, StFtpcVertex *main_vertex, St_fcl_fppoint *fcl_fppoint, St_fpt_fptrack *fpt_fptrack, Char_t *filename, Char_t *write_permission)
 Usual used constructor if the output of the tracker was written in STAF tables only.

~StFtpcTrackEvaluator()
 Destructor.
 Deletes ClonesArrays and Histograms.

void DeleteHistos()
 Deletes the histograms

void SetupFile(Char_t *filename, Char_t *write_permission)
 Opens the data file.

void Setup(TDataSet *geant, TDataSet *ftpc_data)
 Does all the setup which is common to all constructors.

void SetupHistos()
 Sets up the histograms.

void CreateHistos()
 Create histograms.

void GeantHitInit(St_g2t_ftp_hit *g2t_ftp_hit)
 Initializes Geant hits.

void GeantTrackInit(St_g2t_track *g2t_track, St_g2t_ftp_hit *g2t_ftp_hit)
 Initializes Geant tracks. Therefore the Geant hits are also needed.

void FastSimHitInit(St_ffs_gepoint *ffs_hit)
 Initializes fast simulated hits.

void ParentTrackInit()
 Initializes the parents of all tracks.

void EvaluateGoodness(Int_t t_counter)
 Evaluates if the parent track of the found track no. t_counter is a good track or not.

void DivideHistos()
 Divides Histograms to get the efficiency.

void FillCutHistos()
 Fills histograms for cuts. This is done for Geant tracks and found tracks.

void FillGCutHistos()
 Evaluates the cuts by looking into the distibution od the cut-variables in GEANT tracks.

void FillFCutHistos()
 Fills cut histograms for found tracks.

void Loop()
 Usual used loop to loop over tracks and clusters.
 This is just an example to make it easier to develop new routines.

void WriteHistos()
 Writes histograms to file.

void FillMomentumHistos()
 Fill the relative momentum of the found track in comparison to the geant track in histograms.

void FillMomentumHistos(Int_t t_counter)
 Fill the relative momentum of the found track in comparison to the geant track in histograms.

void FillParentHistos()
 Fill the number of parents per track in histogram.

void FillParentHistos(Int_t t_counter)
 Fill the number of parents per track in histogram.

void FillHitsOnTrack()
 Fill hits on all tracks in histograms.

void FillFoundHitsOnTrack()
 Fill hits on found tracks in histograms.

void FillHitsOnTrack(TClonesArray *trackarray, Char_t c)
 Fills histogram with the number of points on tracks.
 If c is set to 'g' it fills the 'geant histo', otherwise the 'found histo'.

void CalcSplitTracks()
 Calculates the number of split tracks and returns it.

Bool_t IsGoodTrack(StFtpcTrack* track)
 Returns true if the given track fulfills all requirements to be a "good" track.

Bool_t IsGoodMainVertexTrack(StFtpcTrack* track)
 Returns true if the given track fulfills all requirements to be a "good" track.

Bool_t IsGoodNonVertexTrack(StFtpcTrack* track)
 Returns true if the given track fulfills all requirements to be a "good" track.

void FillEventHistos()
 Fill the histograms which are filled only once per event.

void ShowTracks()
 Displays the geant and/or found tracks.

void GeantInfo()
 Shows information abaout GEANT output.

void ClusterInfo()
 Shows information abaout GEANT clusters.

void ProblemsInfo()
 Shows information about problems.

void TrackerInfo()
 Shows information about tracker output.

void Info()
 Shows all information.



Inline Functions


               TClonesArray* GetGeantHits()
               TClonesArray* GetGeantTracks()
               TClonesArray* GetFastSimHits()
               TClonesArray* GetFoundHits()
               TClonesArray* GetFoundTracks()
                  MIntArray* GetClusterArr()
                  MIntArray* GetSplitTracksArr()
                  MIntArray* GetSplitGoodTracksArr()
                  MIntArray* GetUncleanTracksArr()
                       Int_t GetNumFoundVertexTracks()
                       Int_t GetNumFoundNonVertexTracks()
                       Int_t GetNumLookLikeGoodTracks()
                       Int_t GetNumElectronTracks()
                       Int_t GetNumNonVertexTracks()
                       Int_t GetNumGoodGeantTracks()
                       Int_t GetNumGoodFoundTracks()
                       Int_t GetNumSplitTracks()
                       Int_t GetNumSplitGoodTracks()
                       Int_t GetNumUncleanTracks()
                       Int_t GetNumLongTracks()
                       Int_t GetNumLongTrackClusters()
                       Int_t GetNumShortTracks()
                       Int_t GetNumShortTrackClusters()
                       Int_t GetMaxClusters()
                       Int_t GetNumGoodGeantPoints()
                       Int_t GetNumGoodFoundPoints()
                       Int_t GetNumFoundTracks()
                       Int_t GetNumGeantTracks()
                       Int_t GetNumFoundHits()
                       Int_t GetNumFastSimHits()
                       Int_t GetNumGeantHits()
                      Bool_t IsUncleanTrack(Int_t track_num)
                      Bool_t IsCleanTrack(Int_t track_num)
                     TClass* Class()
                     TClass* IsA() const
                        void ShowMembers(TMemberInspector& insp, char* parent)
                        void Streamer(TBuffer& b)
        StFtpcTrackEvaluator StFtpcTrackEvaluator(StFtpcTrackEvaluator&)


Author: Markus D. Oldenburg
Last update: 07.06.2000
Copyright © MDO Production 2000


ROOT page - Home page - Class index - 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.