GFDstarAnalyseMc


class description - source file - inheritance tree

class GFDstarAnalyseMc : public GFDstarAnalyse


    protected:
void CreateHistsAccept() void CreateHistsBranching() virtual void CreateHistsD0() virtual void CreateHistsDm(GFHistArray*& dmHist, GFHistArray*& dmHist83, GFHistArray*& dmHist84, const TString& nameAdd) void CreateHistsDsDiJetPurStab() void CreateHistsDsDiJetTrig() void CreateHistsDsJetPurStab() void CreateHistsDsJetQuark() void CreateHistsDsJetTrig() virtual void CreateHistsDstarDiJet() void CreateHistsDstarDiJetGen() virtual void CreateHistsDstarJets() void CreateHistsDstarJetsGen() void CreateHistsEflow() void CreateHistsGen() void CreateHistsHadronisation() void CreateHistsHadronisationDsDiJet() virtual void CreateHistsJetMult() void CreateHistsJetQuark() virtual void CreateHistsL4Eff2() virtual void CreateHistsSumEt() virtual void CreateHistsTracks() void CreateHistsTrig() void CreateHistsWeight() void CreateHistsYjbRes(const char* namAdd = "0") void FillHistsGen(const H1PartMC* genDstar, const TObjArray* jets, GFHistArray* hists, Double_t weight) const void FillHistsJetQuark(const GFHistArray* jetQuarkHists, const H1PartJet* jet1, const H1PartJet* jet2, const H1PartMC* quark1, const H1PartMC* quark2) Double_t GetEffCorrFactor(const H1PartDstar* ds) const Double_t GetEffCorrFactor(Double_t pt, Double_t theta) const Double_t GetMeanAccept44(Double_t y) virtual Double_t GetWeight(Int_t trigger, const H1PartDstar* ds) const virtual Float_t GetWgammaP33() const virtual Float_t GetWgammaP44() const virtual Float_t GetY33() const virtual Float_t GetY44() const void HatSelectYear(const TString& year) public:
GFDstarAnalyseMc() virtual ~GFDstarAnalyseMc() static Double_t Associate(const H1Part* ref1, const H1Part* ref2, H1PartMC*& outCloseTo1, H1PartMC*& outCloseTo2) static TClass* Class() virtual Bool_t DstarCutLoose(const H1PartDstar* ds) const Bool_t DstarCutLoose(const H1PartMC* ds) const Bool_t DstarIsGenerated(const H1PartDstar* ds) const virtual void EndJob() void FillHistsBranching() void FillHistsDsDiJetPurStab(const H1PartDstar* ds) void FillHistsDsDiJetTrig(const H1PartDstar* trigDstar) void FillHistsDsJetPurStab(const H1PartDstar* ds, Bool_t all) void FillHistsDsJetQuark(const H1PartDstar* ds) void FillHistsDsJetTrig(const H1PartDstar* trigDstar) void FillHistsDstarDiJetGen(const H1PartMC* genDstar) void FillHistsDstarJetsGen(const H1PartMC*) Bool_t FillHistsEffTrigAccept(const H1PartDstar* trigDstar) void FillHistsEflow(const H1PartDstar* ds) void FillHistsGen(const H1PartMC* genDstar) void FillHistsHadronisation(const H1PartMC* dstar) void FillHistsHadronisationDsDiJet(const H1PartMC* dstar) void FillHistsJetQuark(const H1PartDstar* ds) void FillHistsPurStab(Double_t varRec, Double_t varGen, GFHistArray* hists, Double_t weight = 1., const Bool_t* fill = 0) const virtual void FillHistsTest(const H1PartDstar* dstar) void FillHistsWeight(TObjArray* dstars, TObjArray* genParts) virtual void FillHistsYjbRes(const H1PartDstar* dstar) const H1PartMC* GetCloseGenDsKpipi(const H1Part* ds, Option_t* opt) const H1PartJet* GetDstarPartonJet(const TObjArray* partJets, const H1PartMC* ds, const TObjArray* allPartMc) const Bool_t GetGenDiJets(const H1PartMC* dstar, const H1PartJet*& dsJet, const H1PartJet*& oJet) const Double_t GetGenEnergies(Double_t& forwBeam, Double_t& forward, Double_t& forwardBar, Double_t& barrel, Double_t& spacal) const TObjArray GetGenJets() const Bool_t GetHeavyQuarks(H1PartMC*& quark, H1PartMC*& antiQuark) const Int_t GetNonDstarGenJets(const H1PartMC* dstar, TObjArray& jets) const Bool_t GetPartDiJets(const H1PartMC* dstar, const H1PartJet*& dsJet, const H1PartJet*& oJet, const TObjArray* allPartMc) const TObjArray GetPartonJets() const Double_t GetQ2gen() const Float_t GetWgammaPgen() const Double_t GetXgammaMass(const H1PartMC* dstar, const H1PartJet* jet, Double_t yHfs) const Double_t GetXgammaMassDiJet(const H1PartMC* dstar, const H1PartJet* dsJet, const H1PartJet* othJet, Double_t yHfs) const virtual Double_t GetXgammaMassDiJetHelp(const H1Part* dstar, const H1PartJet* dsJet, const H1PartJet* othJet) const virtual Double_t GetXgammaMassHelp(const H1Part* dstar, const H1PartJet* jet) const Double_t GetXpMass(const H1PartMC* dstar, const H1PartJet* jet) const virtual Double_t GetXpMassHelp(const H1Part* dstar, const H1PartJet* jet) const Double_t GetYgen() const Double_t GetYgenVis() const Double_t GetYjbGen() const Double_t GetZgen(const H1PartMC* genDs) const Bool_t HasOffShellParton(const TObjArray* allPartMc) const virtual TClass* IsA() const Bool_t IsAncestor(const H1PartMC *const ancest, const H1PartMC* part, const TObjArray* allMc) const virtual Bool_t IsL4Found(Int_t hqsel45bit, const H1PartDstar* ds, Int_t hqselMode = -2) const virtual Bool_t IsL4Ref(Int_t trigger) const virtual Bool_t IsS83(const H1PartDstar* dstar = 0) const virtual Bool_t IsS83Gen(const H1PartMC* dstar = 0) const virtual Bool_t IsS83NoL1Check(const H1PartDstar* dstar) const virtual Bool_t IsS83NoL4Check(const H1PartDstar* dstar) const virtual Bool_t IsS84(const H1PartDstar* dstar = 0) const virtual Bool_t IsS84Gen(const H1PartMC* dstar = 0) const virtual Bool_t IsS84NoL1Check(const H1PartDstar* dstar) const virtual Bool_t IsS84NoL4Check(const H1PartDstar* dstar) const virtual void OpenTree() virtual void PrepareEvent() Bool_t SetWeight() virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void StartJob() virtual void StartRun(Int_t run) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void SwitchOffExtraW()

Data Members


    protected:
Double_t fEventCutQ2Gen GFHistArray* fTrigHistsS83 rec and trig (TE 31 && 19) GFHistArray* fTrigHistsS84 GFHistArray* fNonTrigHistsS83 rec but maybe not trig GFHistArray* fNonTrigHistsS84 GFHistArray* fTrigHists19S83 rec and TE 19 GFHistArray* fTrigHists19S84 GFHistArray* fTrigHists31S83 rec and TE 31 GFHistArray* fTrigHists31S84 GFHistArray* fGenHistsS83 GFHistArray* fGenHistsS84 GFHistArray* fDetAccHistsS83 GFHistArray* fAcceptHistsS83 GFHistArray* fAcceptHistsS84 GFHistArray* fGenAcceptHistsS83 GFHistArray* fGenAcceptHistsS84 GFHistArray* fGenNoAccWeightHistsS83 GFHistArray* fGenNoAccWeightHistsS84 GFHistArray* fGenWeightHistsS83 GFHistArray* fGenWeightHistsS84 GFHistArray* fWeightHistsS83 GFHistArray* fWeightHistsS84 GFHistArray* fYjbResHists hists for y_jb resolution hists GFHistArray* fYjbResHistsS83 hists for y_jb resolution hists GFHistArray* fYjbResHistsS84 hists for y_jb resolution hists GFHistArray* fEflowHistsS83 hists for energy flow in different detector regions GFHistArray* fEflowHistsS84 hists for energy flow in different detector regions GFHistArray* fJetQuarkHists GFHistArray* fJetQuarkHistsS83 GFHistArray* fJetQuarkHistsS84 Int_t fNumJetQuarkHistsPerJet GFHistArray* fDsJetQuarkHistsS83 GFHistArray* fDstar1JetHistsGS83 just count GFHistArray* fDstar1JetHistsGAS83 acceptance weighted GFHistArray* fDstar1JetHistsGWS83 weighted GFHistArray* fDstar1JetHistsGNAWS83 weighted w/o acceptance part GFHistArray* fDstarBack1JetHistsGS83 now for eta(D*) < eta(jet) GFHistArray* fDstarBack1JetHistsGAS83 GFHistArray* fDstarBack1JetHistsGWS83 GFHistArray* fDstarBack1JetHistsGNAWS83 GFHistArray* fDstarForw1JetHistsGS83 now for eta(D*) > eta(jet) GFHistArray* fDstarForw1JetHistsGAS83 GFHistArray* fDstarForw1JetHistsGWS83 GFHistArray* fDstarForw1JetHistsGNAWS83 GFHistArray* fDstar1JetHistsGS84 now for S84 GFHistArray* fDstar1JetHistsGAS84 GFHistArray* fDstar1JetHistsGWS84 GFHistArray* fDstar1JetHistsGNAWS84 GFHistArray* fDstarBack1JetHistsGS84 GFHistArray* fDstarBack1JetHistsGAS84 GFHistArray* fDstarBack1JetHistsGWS84 GFHistArray* fDstarBack1JetHistsGNAWS84 GFHistArray* fDstarForw1JetHistsGS84 GFHistArray* fDstarForw1JetHistsGAS84 GFHistArray* fDstarForw1JetHistsGWS84 GFHistArray* fDstarForw1JetHistsGNAWS84 GFHistArray* fDstarDiJetHistsGS83 GFHistArray* fDstarDiJetHistsGAS83 GFHistArray* fDstarDiJetHistsGWS83 GFHistArray* fDstarDiJetHistsGNAWS83 GFHistArray* fDstarDiJetHistsGS84 GFHistArray* fDstarDiJetHistsGAS84 GFHistArray* fDstarDiJetHistsGWS84 GFHistArray* fDstarDiJetHistsGNAWS84 GFHistArray* fNonTrigDs1JetHistsS83 rec but maybe not trig GFHistArray* fNonTrigDs1JetHistsS84 GFHistArray* fTrigDs1JetHistsS83 rec and trig (TE 31 && 19) GFHistArray* fTrigDs1JetHistsS84 GFHistArray* fTrig19Ds1JetHistsS83 rec and TE 19 GFHistArray* fTrig19Ds1JetHistsS84 GFHistArray* fTrig31Ds1JetHistsS83 rec and TE 31 GFHistArray* fTrig31Ds1JetHistsS84 GFHistArray* fNonTrigDs1JetBackHistsS83 GFHistArray* fNonTrigDs1JetBackHistsS84 GFHistArray* fTrigDs1JetBackHistsS83 GFHistArray* fTrigDs1JetBackHistsS84 GFHistArray* fTrig19Ds1JetBackHistsS83 GFHistArray* fTrig19Ds1JetBackHistsS84 GFHistArray* fTrig31Ds1JetBackHistsS83 GFHistArray* fTrig31Ds1JetBackHistsS84 GFHistArray* fNonTrigDs1JetForwHistsS83 GFHistArray* fNonTrigDs1JetForwHistsS84 GFHistArray* fTrigDs1JetForwHistsS83 GFHistArray* fTrigDs1JetForwHistsS84 GFHistArray* fTrig19Ds1JetForwHistsS83 GFHistArray* fTrig19Ds1JetForwHistsS84 GFHistArray* fTrig31Ds1JetForwHistsS83 GFHistArray* fTrig31Ds1JetForwHistsS84 GFHistArray* fNonTrigDsDiJetHistsS83 rec but maybe not trig GFHistArray* fNonTrigDsDiJetHistsS84 GFHistArray* fTrigDsDiJetHistsS83 rec and trig (TE 31 && 19) GFHistArray* fTrigDsDiJetHistsS84 GFHistArray* fTrig19DsDiJetHistsS83 rec and TE 19 GFHistArray* fTrig19DsDiJetHistsS84 GFHistArray* fTrig31DsDiJetHistsS83 rec and TE 31 GFHistArray* fTrig31DsDiJetHistsS84 GFHistArray* fDsJetPurStabHists GFHistArray* fDsJetPurStabHistsDphi GFHistArray* fDsJetPurStabHistsDeta GFHistArray* fDsJetPurStabHistsDeltaR GFHistArray* fDsJetPurStabHistsXgam GFHistArray* fDsJetPurStabHistsDsPt GFHistArray* fDsJetPurStabHistsJetPt GFHistArray* fDsJetPurStabHistsJetEta GFHistArray* fDsJetPurStabHistsJetPhi GFHistArray* fDsJetPurStabHistsJetDaugh GFHistArray* fDsJetPurStabHistsChFrac GFHistArray* fDsJetPurStabHistsDsJetPt GFHistArray* fDsJetPurStabHistsPtDsJetOrth GFHistArray* fDsJetPurStabHistsDsJetM GFHistArray* fDsJetPurStabHistsCosTh GFHistArray* fDsJetPurStabHistsS83 GFHistArray* fDsJetPurStabHistsDphiS83 GFHistArray* fDsJetPurStabHistsDetaS83 GFHistArray* fDsJetPurStabHistsDeltaRS83 GFHistArray* fDsJetPurStabHistsXgamS83 GFHistArray* fDsJetPurStabHistsDsPtS83 GFHistArray* fDsJetPurStabHistsJetPtS83 GFHistArray* fDsJetPurStabHistsJetEtaS83 GFHistArray* fDsJetPurStabHistsJetPhiS83 GFHistArray* fDsJetPurStabHistsJetDaughS83 GFHistArray* fDsJetPurStabHistsChFracS83 GFHistArray* fDsJetPurStabHistsDsJetPtS83 GFHistArray* fDsJetPurStabHistsDsJetPt2S83 GFHistArray* fDsJetPurStabHistsPtDsJetOrthS83 GFHistArray* fDsJetPurStabHistsDsJetMS83 GFHistArray* fDsJetPurStabHistsCosThS83 GFHistArray* fDsPurStabHistsZDsS83 TObjArray* fDsJetPurStabEtaInPtHistArrays TObjArray* fDsJetPurStabPtInEtaHistArrays TObjArray* fDsJetPurStabPtInPtHistArrays TObjArray* fDsJetPurStabEtaInPtHistArraysS83 TObjArray* fDsJetPurStabPtInEtaHistArraysS83 TObjArray* fDsJetPurStabPtInPtHistArraysS83 GFHistArray* fDsDiJetPurStabHistsS83 GFHistArray* fDsDiJetPurStabHistsDetaS83 GFHistArray* fDsDiJetPurStabHistsDphiS83 GFHistArray* fDsDiJetPurStabHistsXgamS83 GFHistArray* fDsDiJetPurStabHistsCosThS83 GFHistArray* fDsDiJetPurStabHistsDijetPtS83 GFHistArray* fDsDiJetPurStabHistsDijetPt2S83 GFHistArray* fDsDiJetPurStabHistsDJetPtS83 GFHistArray* fDsDiJetPurStabHistsOthJetPtS83 GFHistArray* fDsDiJetPurStabHistsDJetEtaS83 GFHistArray* fDsDiJetPurStabHistsOthJetEtaS83 GFHistArray* fBranchingHists GFHistArray* fHadronisationHistsS83 GFHistArray* fHadronisationGenHistsS83 GFHistArray* fHadPurStabHists GFHistArray* fHadPurStabHistsJetPt GFHistArray* fHadPurStabHistsJetEta GFHistArray* fHadPurStabHistsDphi GFHistArray* fHadPurStabHistsDeta GFHistArray* fHadPurStabHistsXgam GFHistArray* fHadPurStabHistsPtDsJet GFHistArray* fHadPurStabHistsMDsJet GFHistArray* fHadronisationDsDiJetHistsS83 GFHistArray* fHadronisationDsDiJetGenHistsS83 GFHistArray* fHadPurStabDijetHists GFHistArray* fHadPurStabDijetHistsDphi GFHistArray* fHadPurStabDijetHistsXgam H1ElectronTagger** fTag84OfPeriod taggers for each 84 period Double_t fWeight83 storage for weights to apply Double_t fWeight84 dito Double_t fWeightPt in case of pt-reweighting store that separately Double_t fInversePrescale33 to be taken into account in weight Double_t fInversePrescale44 to be taken into account in weight Double_t fY33Rec store y calculated from smearing of yGen TF1* fWeightFunc weighting function TH1* fMeanAccept84 TH2* fHistEffCorrHighPt TH2* fHistEffCorrLowPt

Class Description

 GFDstarAnalyseMc
   Author:      Gero Flucke
   Date:        June 1st, 2002
   last update: $Date: 2006/01/11 12:23:11 $  often
   by:          $Author: flucke $

 C++
 #include <iostream>

GFDstarAnalyseMc()

~GFDstarAnalyseMc()

void StartJob()
 create taggers for different periods

void StartRun(Int_t run)
 adjust the inverse prescale values

void EndJob()
 divide hists by lumi and call EndJob from base class

void PrepareEvent()
 do things that should manipulate the event and should stay for the whole event

Double_t GetMeanAccept44(Double_t y)

void CreateHistsDm(GFHistArray*& dmHists, GFHistArray*& dmHistsS83, GFHistArray*& dmHistsS84, const TString& nameAdd)
 creating structure for weights for trigger hists

void CreateHistsD0()

void CreateHistsL4Eff2()
 creating structure for weights for trigger hists

void CreateHistsDstarJets()

void CreateHistsTracks()

void CreateHistsJetMult()

void CreateHistsSumEt()

void CreateHistsDstarDiJet()

void CreateHistsTrig()//const char* nameAdd)

void CreateHistsAccept()

void CreateHistsGen()//const char* nameAdd)

void CreateHistsYjbRes(const char * nameAdd)

void OpenTree()

void HatSelectYear(const TString& year)

void FillHistsGen(const H1PartMC* genDstar)
 assume genDstar to be a D* -> K, pi, pi_s

void FillHistsGen(const H1PartMC* genDstar, const TObjArray* jets, GFHistArray* hists, Double_t weight) const
 filling 'hists' with default set of generated quantities

Bool_t FillHistsEffTrigAccept(const H1PartDstar* trigDstar)
 assuming that trigDstar is already reconstructed with the lower
 pt-cut and wider eta region
 true if trigger bits 19 and 31 are set and we have s83 or s84
 filling only for dm-window!

void FillHistsYjbRes(const H1PartDstar* ds)

void CreateHistsWeight()

void FillHistsWeight(TObjArray* dstars, TObjArray* genParts)

void CreateHistsEflow()

void FillHistsEflow(const H1PartDstar* ds)

void CreateHistsJetQuark()

void FillHistsJetQuark(const H1PartDstar* ds)

void FillHistsJetQuark(const GFHistArray* jetQuarkHists, const H1PartJet* jet1, const H1PartJet* jet2, const H1PartMC* quark1, const H1PartMC* quark2)

void CreateHistsDsJetQuark()

void FillHistsDsJetQuark(const H1PartDstar *ds)
 ds is with soft cuts
 fill D* vs quark and D*-jet vs quark hists for S83 in case we have event reconstructed
 and generated as D* dijet

void FillHistsPurStab(Double_t varRec, Double_t varGen, GFHistArray* hists, Double_t weight, const Bool_t* fill) const
 hists: 0 = rec, 1 = rec & gen, 2 = !rec & gen, 3 = rec vs gen (TH2),
        4 = (rec-gen)/gen (if gen != 0), 5 = rec-gen
 must have same binning, 3/4/5 not filled if not existing
 if 'fill' given, only thos hists are filled where fill[i] == kTRUE

void CreateHistsDsJetPurStab()

void FillHistsDsJetPurStab(const H1PartDstar* ds, Bool_t all)
 assume loose cut on ds, tighten to higher pt cut, use only signal region
 but if ds == NULL: go on!
 if all == kFALSE: skip stuff that will load jet particle branches

void CreateHistsDsDiJetPurStab()

void FillHistsDsDiJetPurStab(const H1PartDstar* ds)
 assume loose cut on ds, tighten to higher pt cut, use only signal region
 S83 only!

void CreateHistsDstarJetsGen()

void FillHistsDstarJetsGen(const H1PartMC* genDstar)
 generator hists for D* and (other) jet(s)
 assume dstar  is really a generated D*

void CreateHistsDstarDiJetGen()

void FillHistsDstarDiJetGen(const H1PartMC* genDstar)
 generator hists for D*-dijet
 assume dstar  is really a generated D*

void CreateHistsDsJetTrig()
 D* + 1 jet hists for trigger eff

void FillHistsDsJetTrig(const H1PartDstar* dstar)
 fill D* + 1 jet hists for trigger eff
 assuming that dstar is already reconstructed with the lower
 pt-cut and wider eta region

void CreateHistsDsDiJetTrig()
 D* dijet hists for trigger eff

void FillHistsDsDiJetTrig(const H1PartDstar* ds)
 fill D* dijet hists for trigger eff
 assuming that dstar is already reconstructed with the lower
 pt-cut and wider eta region

void CreateHistsBranching()

void FillHistsBranching()

void CreateHistsHadronisation()

void FillHistsHadronisation(const H1PartMC *dstar)

Bool_t HasOffShellParton(const TObjArray *allPartMc) const
 true if the event contains a parton shower parton which is off-shell
 (or some kind of off-shell, at least...)

H1PartJet* GetDstarPartonJet(const TObjArray *partonJets, const H1PartMC *dstar, const TObjArray *allPartMc) const
 returns parton level jet in input array that contains heavy quark
 fragmenting into dstar

void CreateHistsHadronisationDsDiJet()

void FillHistsHadronisationDsDiJet(const H1PartMC *ds)

void FillHistsTest(const H1PartDstar* ds)

Bool_t DstarCutLoose(const H1PartMC* dstar) const
 just check basic D* kinematic, no check on whether we have D* -> K, pi, pi_s

Bool_t DstarCutLoose(const H1PartDstar* dstar) const
   static Bool_t first = kTRUE;
   if(first){
     this->Warning("DstarCutLoose", "manipulated to require generated D* -> K pi pi_s");
     first = kFALSE;
    DO NOT FORGET to change also D0CutLoose!!
   }
   Bool_t genDs = kFALSE;
   static H1PartMCArrayPtr mcs;
   for(Int_t i = 0; i < mcs.GetEntries(); ++i){
     if(H1UserDstarUtil::IsDstarKPiPis(mcs[i], mcs.GetArray())){
       // with p_t(D*) > 1.0 GeV and 15 < theta(D*) < 165 degrees
       if(mcs[i]->GetPt() > 1.
 	 && mcs[i]->GetTheta() > 15.*TMath::DegToRad()
 	 && mcs[i]->GetTheta() < 165.*TMath::DegToRad()){
 	genDs = kTRUE;
 	break;
       }
     }
   }
   const Bool_t result = (genDs && this->GFDstarAnalyse::DstarCutLoose(dstar));
   if(fList){
     const Double_t dm = dstar->GetDm();
     if(dm > 0.148 && dm < 0.15){
       static Int_t lastRun = 0;
       static Int_t lastEvent = 0;
       if(lastEvent != gH1Tree->GetEventNumber() && lastRun != gH1Tree->GetRunNumber()){
 	lastEvent = gH1Tree->GetEventNumber();
 	lastRun = gH1Tree->GetRunNumber();
 	fList->Enter();
       }
     }
   }
   return result;

Bool_t IsS83(const H1PartDstar* ds) const
  cuts on generated y/Q^2 for ETA33 sample and recunstructed z-Vertex
 if dstar != NULL, cuts also on special dstar values (i.e.pt)

Bool_t IsS83NoL1Check(const H1PartDstar* ds) const

Bool_t IsS83NoL4Check(const H1PartDstar* dstar) const
  this->Warning("IsS83NoL4Check", "call usual IsS83");

Bool_t IsS84(const H1PartDstar* ds) const
  cuts on generated y/Q^2 for ETAG44 sample and recunstructed z-Vertex
 if dstar != NULL, cuts also on special dstar values (i.e.eta)

Bool_t IsS84NoL1Check(const H1PartDstar* ds) const

Bool_t IsS84NoL4Check(const H1PartDstar* dstar) const
  this->Warning("IsS84NoL4Check", "call usual IsS84");

Bool_t IsL4Found(Int_t hqsel45Bit, const H1PartDstar *ds, Int_t hqselMode) const
 true if bit 'hqsel45Bit' of L4 charm finder is set in given mode
 looking into offline bank YRCL
 ds is ignored

Bool_t IsL4Ref(Int_t subtrig) const
 for 83/84 always true!

Bool_t IsS83Gen(const H1PartMC* dstar) const
 true if cuts on generated y_gki and Q2_gki fullfilled
 if dstar != NULL (NULL is default): cuts on lower pt for ETAG33 sample

Bool_t IsS84Gen(const H1PartMC* dstar) const
 true if cuts on generated y_gki and Q2_gki fullfilled
 if dstar != NULL (NULL is default): cuts on lower eta for ETAG44 sample

Double_t GetYgen() const

Double_t GetYjbGen() const

Double_t GetYgenVis() const

Double_t GetQ2gen() const

Bool_t DstarIsGenerated(const H1PartDstar* ds) const
 checks whether K/pi/pis are generated as K/pi/pis and come from proper
 decay channel
 FIXME: - no check done whether D0 has more than two decay products!
        - always assumed that (GTR[i]->GetPmo()%10000 -1) is the only mother!

Float_t GetWgammaP33() const

Float_t GetWgammaP44() const

Float_t GetWgammaPgen() const

Float_t GetY33() const

Float_t GetY44() const

Double_t GetZgen(const H1PartMC *genDs) const

Double_t GetXgammaMass(const H1PartMC* dstar,const H1PartJet* jet, Double_t yHfs) const
 SLOW: loop over jet daughters!!!

 xgamma taking into account masses:
 [(E-pz)_{D*} + sum_{i=1}^{N(jet daught)}(E-pz)_{i}]/2*yHfs*E_{e}
 BUT:
 extra (massless) formula for parton jets that overwrites yHfs!

Double_t GetXgammaMassHelp(const H1Part* dstar, const H1PartJet* jet) const

Double_t GetXgammaMassDiJet(const H1PartMC *dstar, const H1PartJet *dsJet, const H1PartJet *oJet, Double_t yHfs) const
 SLOW: loop over jet daughters!!!

 xgamma taking into account masses
 [(sum_{i=1}^{N(D*-jet daught)}(E-pz)_{i}] + sum_{i=j}^{N(D*-jet daught)}(E-pz)_{j}])
                       /2*yHfs*E_{e}
 BUT:
 extra (massless) formula for parton jets that overwrites yHfs!

Double_t GetXgammaMassDiJetHelp(const H1Part *dstar, const H1PartJet *dsJet, const H1PartJet *oJet) const

Double_t GetXpMass(const H1PartMC* dstar,const H1PartJet* jet) const
 SLOW: loop over jet daughters!!!

 x_p taking into account masses:
 [(E+-pz)_{D*} + sum_{i=1}^{N(jet daught)}(E+pz)_{i}]/2*E_{p}

Double_t GetXpMassHelp(const H1Part* dstar, const H1PartJet* jet) const

Double_t GetGenEnergies(Double_t &forwBeam, Double_t& forward, Double_t& forwardBar, Double_t& barrel, Double_t& spacal) const
 fills generated energie sums in detector region defined by some angle (cf.code)
 returns sum of all DETECTOR regions (forwBeam not added!)
 we take only visible energy: no neutrinos and...
 ...cuts against low momentum particles that do not reach device
 in spacal region E > 0.1 || (theta > 20 && theta < 160 && pt > 0.12 && charged),
    Barrel        E > 0.2 || -----------------"---------------------------------,
    Forward       E > 0.2 || -----------------"---------------------------------

void SwitchOffExtraW()
 delete a potential additional weight function (only CASCADE has one so far...)

Bool_t SetWeight()
 weights, y33rec,...

Double_t GetWeight(Int_t trigger, const H1PartDstar *ds) const

Bool_t GetHeavyQuarks(H1PartMC*& quark, H1PartMC*& antiQuark) const
 find the quarks coming from the hard process

Double_t Associate(const H1Part* ref1, const H1Part* ref2, H1PartMC*& outCloseTo1, H1PartMC*& outCloseTo2)
 taking outCloseTo1/2 as input, which combination
       (ref1 <-> outCloseTo1 + ref2 <-> outCloseTo2)
 or    (ref1 <-> outCloseTo2 + ref2 <-> outCloseTo1)
 gives the minimal sum of eta-phi distances.
 outCloseTo1/2 are changed that 1 is the one for ref1, analog for2,
 return sum of distances.

TObjArray GetGenJets() const
 returns array of jets surviving the cuts, sorted in eta

Int_t GetNonDstarGenJets(const H1PartMC* dstar, TObjArray& jets) const
 array of generator (hadron) jets passing the minimal criteria and NOT containing 'dstar'
 will be put into 'jets'
 ordered in eta: most backward first!

 returns the index of the jet, that comes after the D*
 if we put the D* into the list, too:

-1: no jets left
 0: D* more backwards than most backward jet
 1: D* between most backward and next more forward jet
 2: etc.

Bool_t GetGenDiJets(const H1PartMC* dstar, const H1PartJet *&dsJet, const H1PartJet *&oJet) const
 dsJet and oJet are set (possibly only one of them!)
 return kFALSE if dstar not in dsJet (i.e. dsJet is closer than oJet to D*)

Bool_t GetPartDiJets(const H1PartMC* dstar, const H1PartJet *&dsJet, const H1PartJet *&oJet, const TObjArray *allPartMc) const
 dijets on parton level (after shower)
 dsJet and oJet are set (possibly only one of them!)
 return kFALSE if the parton hadronsing into the D* is not
 in dsJet (than dsJet is defined as being closer to D* than oJet)

TObjArray GetPartonJets() const

const H1PartMC* GetCloseGenDsKpipi(const H1Part* ds, Option_t *opt) const
 returns closest same charged D*->Kpipi on generator level to ds,

Bool_t IsAncestor(const H1PartMC *const ancest, const H1PartMC *part, const TObjArray *allMc) const
 check whether ancest is a mother or grandmother or whatever generation of ancestors
 of part, allMc must be the array from H1PartMCArrayPtr
 (ancest and part must be from this array and not a copy!)

Double_t GetEffCorrFactor(const H1PartDstar *ds) const
 Sebastian's efficiency correction for whole D*

Double_t GetEffCorrFactor(Double_t pt, Double_t theta) const
 Sebastian's efficiency correction for a track with pt and theta



Inline Functions


            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)


Author: Gero Flucke
Last update: Wed Jan 11 14:06:55 2006


ROOT 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.