X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliDimuCombinator.h;h=da0cdd38246e0e17f213be6b8efcc2d3481b1c7f;hb=e0fdfa5289d0e8cdfdc91aae4a2f7927739744b9;hp=8e408bd9f6263ad61588a22b81a187d844449562;hpb=1578254f491848aff213be55a70a61d195dd001a;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliDimuCombinator.h b/EVGEN/AliDimuCombinator.h index 8e408bd9f62..da0cdd38246 100644 --- a/EVGEN/AliDimuCombinator.h +++ b/EVGEN/AliDimuCombinator.h @@ -1,36 +1,32 @@ -#ifndef _AliDimuCombinator_H -#define _AliDimuCombinator_H -#include "TParticle.h" -#include -#include -#include -#include +#ifndef ALIDIMUCOMBINATOR_H +#define ALIDIMUCOMBINATOR_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + + +// Class for dimuon analysis and fast dimuon simulation. +// It uses the AliRun particle tree. +// Comments and suggestions to andreas.morsch@cern.ch + + +#include + +class TClonesArray; +class TParticle; class AliDimuCombinator: public TObject { public: - AliDimuCombinator(TClonesArray* Partarray){ - fPartArray=Partarray; - fNParticle=fPartArray->GetEntriesFast(); - - fimuon1 =0; - fimuon2 =0; - fmuon1 =0; - fmuon2 =0; - fimin1 = 0; - fimin2 = 0; - fimax1 = fNParticle; - fimax2 = fNParticle; - fPtMin =0; - fEtaMin =-10; - fEtaMax =-10; - fRate1=1.; - fRate2=1.; - } + AliDimuCombinator(); + void Copy(TObject &combi) const; // // Iterators +// Access to particle stack + TParticle* Particle(Int_t i) const; // Single muons TParticle* FirstMuon(); TParticle* NextMuon(); @@ -50,52 +46,61 @@ public: void SetSecondRange(Int_t from, Int_t to); // Cuts void SetPtMin(Float_t ptmin) {fPtMin=ptmin;} - void SetEtaCut(Float_t etamin, Float_t etamax){fEtaMin=etamin; fEtaMax=etamax;} Bool_t Selected(TParticle* part); - Bool_t Selected(TParticle* part1, TParticle* part2); + void SetEtaCut(Float_t etamin, Float_t etamax) + {fEtaMin=etamin; fEtaMax=etamax;} + Bool_t Selected(TParticle* part) const; + Bool_t Selected(TParticle* part1, TParticle* part2) const; // Kinematics - Float_t Mass(TParticle* part1, TParticle* part); - Float_t PT(TParticle* part1, TParticle* part); - Float_t Pz(TParticle* part1, TParticle* part); - Float_t Y(TParticle* part1, TParticle* part); + Float_t Mass(TParticle* part1, TParticle* part) const; + Float_t PT(TParticle* part1, TParticle* part) const; + Float_t Pz(TParticle* part1, TParticle* part) const; + Float_t Y(TParticle* part1, TParticle* part) const; // Response - void SmearGauss(Float_t width, Float_t & value); + void SmearGauss(Float_t width, Float_t & value) const; // Weight - Bool_t Correlated(TParticle* part1, TParticle* part2); - void SetRate(Float_t rate){fRate1=rate;} - void SetRate(Float_t rate1, Float_t rate2 ){fRate1=rate1; fRate2=rate2;} - Float_t Weight(TParticle* part); - Float_t Weight(TParticle* part1, TParticle* part); - Float_t Decay_Prob(TParticle* part); + Bool_t Correlated(TParticle* part1, TParticle* part2) const; + void SetRate(Float_t rate) {fRate1=rate;} + void SetRate(Float_t rate1, Float_t rate2 ) {fRate1=rate1; fRate2=rate2;} + Float_t Weight(TParticle* part) const; + Float_t Weight(TParticle* part1, TParticle* part) const; + Float_t DecayProbability(TParticle* part) const; private: void FirstPartner(); void NextPartner(); void FirstPartnerSelected(); void NextPartnerSelected(); - Int_t Origin(TParticle* part); - TParticle* Parent(TParticle* part); - TParticle* Partner(); - Int_t Type(TParticle *part){return part->GetPdgCode();} -private: - TClonesArray *fPartArray; - Int_t fNParticle; - Int_t fimuon1; - Int_t fimuon2; - Int_t fimin1; - Int_t fimin2; - Int_t fimax1; - Int_t fimax2; - Float_t fRate1; - Float_t fRate2; - TParticle *fmuon1; - TParticle *fmuon2; - Float_t fPtMin; - Float_t fEtaMin; - Float_t fEtaMax; - ClassDef(AliDimuCombinator,1) // Dimuon Combinator + Int_t Origin(TParticle* part) const; + TParticle* Parent(TParticle* part) const; + TParticle* Partner() const; + Int_t Type(TParticle *part) const; + AliDimuCombinator(const AliDimuCombinator &combinator); + AliDimuCombinator & operator=(const AliDimuCombinator & rhs); + + private: + Int_t fNParticle; // Number of particles + Int_t fImuon1; // Index of first muon + Int_t fImuon2; // Index of second muon + Int_t fImin1; // Lowest index for first muon + Int_t fImin2; // Lowest index for second muon + Int_t fImax1; // Highest index for first muon + Int_t fImax2; // Highest index for second muon + Float_t fRate1; // weight factor + Float_t fRate2; // weight factor + TParticle *fMuon1; // First muon + TParticle *fMuon2; // Second muon + Float_t fPtMin; // pT-cut + Float_t fEtaMin; // Minimum pseudorapidity cut + Float_t fEtaMax; // Maximum pseudorapidity cut + + ClassDef(AliDimuCombinator,1) // Tools for dimuon combinatoric studies }; #endif + + + +