#include "hrichhistofiller.h"

HRichHistoFiller


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

class HRichHistoFiller : public HReconstructor

Inheritance Chart:
TObject
<-
TNamed
<-
HTask
<-
HReconstructor
<-
HRichHistoFiller

    protected:
void appendName(TString&, const char*) TString* buildArrName(const char*, TObjArray*, const char*) TString* buildCutStateId(TObjArray*, Char_t*) Int_t countCutsInSubset(const char*) Int_t fillDetHistosFromTracklets(TObjArray*, const Char_t*) void fillHistos(TObjArray*, char*) Int_t fillPairHistosFromPairs(TObjArray*, const Char_t*) void fillTH1F(const char*, const char*, Float_t, Float_t weight = 1.) void fillTH2F(const char*, const char*, Float_t, Float_t, Float_t weight1 = 1.) Int_t fillTrackHistosFromPairs(TObjArray*, const Char_t*) Int_t fillTrackHistosFromTracklets(TObjArray*, const Char_t*) TObjArray* filterPairs(TObjArray*, Int_t*) HCategory* getHitDiMatchCat() HCategory* getHitMatchCat() TObjArray* getSet(const TObjArray*, const char*) void initCuts() void initHistos() Bool_t isNewSubset(TString&, TObjArray*) void makeCutCombinatorics(TObjArray*, Int_t, char*) void prependName(TString&, const char*) void reconPi0Mass() TObjArray* selectPairs(const char*, TObjArray*, Bool_t bar = kFALSE) TObjArray* selectTracklets(const char*, TObjArray*, Bool_t bar = kFALSE) void setCuts(Char_t*, TObjArray*, Char_t*) void setHistNameAddition(TString&, const Char_t*, const Char_t*) TObjArray* splitSubsetName(TString&) public:
HRichHistoFiller() HRichHistoFiller(Text_t* name, Text_t* title, Char_t*, Char_t*, Char_t*) ~HRichHistoFiller() static TClass* Class() virtual Int_t execute() virtual Bool_t finalize() virtual Bool_t init() virtual TClass* IsA() const void setCutCombinatorics(Int_t s) void setDataLvlRecursionDepth(Int_t d) void setDetHitsFullSectorSplit(Int_t s) void setHistogramCycling(Int_t s) void setHistoMinCutLvl(Int_t level) void setPairCombiCut(Int_t s) void setPairCutLvlCombiDepth(Int_t level) void setPairCutObjectName(Char_t* p) void setPairCuts(Char_t* cuts) void setStrictPairCutP(Int_t s) void setStrictPairCutT(Int_t s) void setTrackletCombiCut(Int_t s) void setTrackletCutLvlCombiDepth(Int_t level) void setTrackletCutObjectName(Char_t* t) void setTrackletCuts(Char_t* cuts) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Int_t nCounterProcessedNbEvents HCategory* pHitMatchCat ! HIterator* pIterMatchHit ! HCategory* pHitDiMatchCat ! HIterator* pIterDiMatchHit ! TObjArray* pHistArray ! array with histograms TObjArray* cuts ! array with cut objects TObjArray* cutIdArrT ! TObjStrings with cut names TObjArray* cutIdArrP ! char* pFileName ! char* pInFileName ! TFile* pFileOut ! histogram file TFile* pFileCutIn ! TTree* tree ! HHitMatch* testhit ! HHitMatchSim* testhitsim ! TString* trackletcut ! name for used cut object TString* paircut ! default or from file Bool_t kMakeSave ! auto save histograms every n evts Bool_t kDetHPairs ! auto creation of det hit histos from pairs Bool_t kTrackHPairs ! auto creation of tracklet histos from pairs Bool_t kDetHTracks ! auto creation of det hit histos from tracks Bool_t kSplitSector ! auto split detector histos sector-wise Bool_t isSim ! simulation or real data world Bool_t kCombiCutT ! process a list of cut tracklets as one Bool_t kCombiCutP ! process a list of pair tracklets as one Int_t userDefTrackletCutLevelDepth ! iteratively combine cuts up to n cuts per histo Int_t userDefPairCutLevelDepth ! Int_t userDefDataLvlRecDepth ! steers auto creation of lower lvl histograms Bool_t userDefCutCombinatorics ! switch on/off iterative combining of cuts Int_t userDefHistoMinCutLvl ! min number of cuts for histo to be filled Int_t nMakeSave ! save histograms every n evts Bool_t kAntiHistos ! Bool_t kStrictPairCutP ! discard all pairs w/ tracks cont in pair discarded due to pair cut Bool_t kStrictPairCutT ! discard all pairs w/ tracks cont in pair discarded due to track cut

Class Description


HRichHistoFiller(Text_t *name,Text_t *title, Char_t* filename,Char_t* cutfilein,Char_t* world) : HReconstructor(name,title)

HRichHistoFiller()

~HRichHistoFiller(void)

Bool_t init()

void initCuts()

Bool_t finalize()

Int_t execute()

TObjArray* selectTracklets(const char* cutStateIdentifier,TObjArray *t,Bool_t kBar)

TObjArray* selectPairs(const char* cutStateIdentifier,TObjArray *t,Bool_t kBar)

void fillHistos(TObjArray *subsets,char * catIdentifier)

Int_t fillDetHistosFromTracklets(TObjArray* trackArray,const Char_t *cNameTrackSample)
 input is subset of tracklets, propagate creation history o subset with cNameTrackSample
 retrieve objects (det hits) contained in tracklet and fill respective predefined property histos

Int_t fillTrackHistosFromTracklets(TObjArray* trackArray,const Char_t *cNameTrackSample)
 function takes array with selected tracks and fills fixed histograms.
 function makes sure that track is not used twice and that components
 of a track are not used twice
 N.B.: if track was created using the COMPLEX MODE (HRichCorrelator), a check for the unique nature
 of a kick track is not sufficient, as there will be tracks that have no kicktrack

Int_t fillTrackHistosFromPairs(TObjArray *pairs,const Char_t *cNamePairSample)

Int_t fillPairHistosFromPairs(TObjArray *t,const Char_t *cNamePairSample)

void fillTH1F(const char *basename,const char *addtohistname,Float_t val,Float_t weight)

void fillTH2F(const char *basename,const char *addtohistname,Float_t val1,Float_t val2,Float_t weight)

void setHistNameAddition(TString &str,const Char_t* histname,const Char_t* samplename)

void appendName(TString &s,const char*c)

void prependName(TString &s,const char*c)

TObjArray* getSet(const TObjArray* superset,const char *subsetIdentifier)

void setCuts(Char_t * cuts,TObjArray *t,Char_t *fieldseperator)

void makeCutCombinatorics(TObjArray* t,Int_t level,char* catId)
 t : array with single cut subsets
 level: depth of combination, 2 e.g. means that the maximum cut will be the combination of
 single cuts
 catId: Identifier for data to cut on, e.g. "T" tracklets or "P" pairs

Bool_t isNewSubset(TString &s,TObjArray *t)

Int_t countCutsInSubset(const char *n)
 as each two cuts are seperated by a "." by def.
 count nb of "." and add one

TObjArray* splitSubsetName(TString &s)
 return array with strings of cutnames

TString* buildArrName(const char* cutStateIdentifier,TObjArray *t,const char* cutCatIdentifier)

TString* buildCutStateId(TObjArray* t,Char_t* cutCatId)

void reconPi0Mass(void)
 function should not be here

TObjArray* filterPairs(TObjArray *in,Int_t *list)
 input is an array of pairs and an array of integers
 all pairs which contain a track with an index in the list are discarded
 this is done by creating a new pair array in which the pairs are copied
 that have passed the test.



Inline Functions


               void setTrackletCutObjectName(Char_t* t)
               void setPairCutObjectName(Char_t* p)
               void setTrackletCuts(Char_t* cuts)
               void setPairCuts(Char_t* cuts)
               void setTrackletCutLvlCombiDepth(Int_t level)
               void setPairCutLvlCombiDepth(Int_t level)
               void setHistoMinCutLvl(Int_t level)
               void setDataLvlRecursionDepth(Int_t d)
               void setDetHitsFullSectorSplit(Int_t s)
               void setStrictPairCutP(Int_t s)
               void setStrictPairCutT(Int_t s)
               void setCutCombinatorics(Int_t s)
               void setTrackletCombiCut(Int_t s)
               void setPairCombiCut(Int_t s)
               void setHistogramCycling(Int_t s)
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
               void initHistos()
         HCategory* getHitMatchCat()
         HCategory* getHitDiMatchCat()


Last update: Fri Jan 26 12:27:44 2007


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.