]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVGEN/AliDimuCombinator.h
Changed DimuonCombinator into AliDimuCombinator to follow ALICE coding
[u/mrichter/AliRoot.git] / EVGEN / AliDimuCombinator.h
CommitLineData
dafbc1c5 1#ifndef _AliDimuCombinator_H
2#define _AliDimuCombinator_H
fe4da5cc 3#include "GParticle.h"
4#include <TBrowser.h>
5#include <TList.h>
6#include <TTree.h>
7#include <TROOT.h>
8
9
dafbc1c5 10class AliDimuCombinator:
fe4da5cc 11 public TObject
12{
13public:
dafbc1c5 14 AliDimuCombinator(TClonesArray* Partarray){
fe4da5cc 15 fPartArray=Partarray;
16 fNParticle=fPartArray->GetEntriesFast();
17
18 fimuon1 =0;
19 fimuon2 =0;
20 fmuon1 =0;
21 fmuon2 =0;
22 fimin1 = 0;
23 fimin2 = 0;
24 fimax1 = fNParticle;
25 fimax2 = fNParticle;
26 fPtMin =0;
27 fEtaMin =-10;
28 fEtaMax =-10;
29 fRate1=1.;
30 fRate2=1.;
31 }
32//
7d566a7d 33// Iterators
34// Single muons
fe4da5cc 35 GParticle* FirstMuon();
36 GParticle* NextMuon();
7d566a7d 37// Single muons selected
fe4da5cc 38 GParticle* FirstMuonSelected();
39 GParticle* NextMuonSelected();
7d566a7d 40// Dimuons
fe4da5cc 41 void FirstMuonPair(GParticle* & muon1, GParticle* & muon2);
42 void NextMuonPair(GParticle* & muon1, GParticle* & muon2);
7d566a7d 43// Dimuons selected
fe4da5cc 44 void FirstMuonPairSelected(GParticle* & muon1, GParticle* & muon2);
45 void NextMuonPairSelected(GParticle* & muon1, GParticle* & muon2);
7d566a7d 46// Loop over all prticles
fe4da5cc 47 void ResetRange();
7d566a7d 48// Set two ranges for dimuon loop
fe4da5cc 49 void SetFirstRange (Int_t from, Int_t to);
50 void SetSecondRange(Int_t from, Int_t to);
51// Cuts
7d566a7d 52 void SetPtMin(Float_t ptmin) {fPtMin=ptmin;}
53 void SetEtaCut(Float_t etamin, Float_t etamax){fEtaMin=etamin; fEtaMax=etamax;} Bool_t Selected(GParticle* part);
54 Bool_t Selected(GParticle* part1, GParticle* part2);
fe4da5cc 55// Kinematics
56 Float_t Mass(GParticle* part1, GParticle* part);
57 Float_t PT(GParticle* part1, GParticle* part);
58 Float_t Pz(GParticle* part1, GParticle* part);
59 Float_t Y(GParticle* part1, GParticle* part);
60// Response
61 void SmearGauss(Float_t width, Float_t & value);
fe4da5cc 62// Weight
7d566a7d 63 Bool_t Correlated(GParticle* part1, GParticle* part2);
fe4da5cc 64 void SetRate(Float_t rate){fRate1=rate;}
65 void SetRate(Float_t rate1, Float_t rate2 ){fRate1=rate1; fRate2=rate2;}
66 Float_t Weight(GParticle* part);
67 Float_t Weight(GParticle* part1, GParticle* part);
7d566a7d 68 Float_t Decay_Prob(GParticle* part);
69
fe4da5cc 70 private:
71 void FirstPartner();
72 void NextPartner();
73 void FirstPartnerSelected();
74 void NextPartnerSelected();
7d566a7d 75 Int_t Origin(GParticle* part);
76 GParticle* Parent(GParticle* part);
fe4da5cc 77 GParticle* Partner();
78 Int_t Type(GParticle *part){return part->GetKF();}
79private:
80 TClonesArray *fPartArray;
81 Int_t fNParticle;
82 Int_t fimuon1;
83 Int_t fimuon2;
84 Int_t fimin1;
85 Int_t fimin2;
86 Int_t fimax1;
87 Int_t fimax2;
88 Float_t fRate1;
89 Float_t fRate2;
90 GParticle *fmuon1;
91 GParticle *fmuon2;
92 Float_t fPtMin;
93 Float_t fEtaMin;
94 Float_t fEtaMax;
dafbc1c5 95 ClassDef(AliDimuCombinator,1) // Dimuon Combinator
fe4da5cc 96};
97#endif
98
99
100
101