New combinations added. By A.Morsch.
[u/mrichter/AliRoot.git] / EVGEN / DimuonCombinator.h
CommitLineData
fe4da5cc 1#ifndef _DimuonCombinator_H
2#define _DimuonCombinator_H
3#include "GParticle.h"
4#include <TBrowser.h>
5#include <TList.h>
6#include <TTree.h>
7#include <TROOT.h>
8
9
10class DimuonCombinator:
11 public TObject
12{
13public:
14 DimuonCombinator(TClonesArray* Partarray){
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//
33// Iterators
34 GParticle* FirstMuon();
35 GParticle* NextMuon();
36 GParticle* FirstMuonSelected();
37 GParticle* NextMuonSelected();
38
39 void FirstMuonPair(GParticle* & muon1, GParticle* & muon2);
40 void NextMuonPair(GParticle* & muon1, GParticle* & muon2);
41 void FirstMuonPairSelected(GParticle* & muon1, GParticle* & muon2);
42 void NextMuonPairSelected(GParticle* & muon1, GParticle* & muon2);
43 void ResetRange();
44 void SetFirstRange (Int_t from, Int_t to);
45 void SetSecondRange(Int_t from, Int_t to);
46// Cuts
47 void SetPtMin(Float_t ptmin){fPtMin=ptmin;}
48 void SetEtaCut(Float_t etamin, Float_t etamax){fEtaMin=etamin; fEtaMax=etamax;}
49 Int_t Selected(GParticle* part);
50 Int_t Selected(GParticle* part1, GParticle* part2);
51// Kinematics
52 Float_t Mass(GParticle* part1, GParticle* part);
53 Float_t PT(GParticle* part1, GParticle* part);
54 Float_t Pz(GParticle* part1, GParticle* part);
55 Float_t Y(GParticle* part1, GParticle* part);
56// Response
57 void SmearGauss(Float_t width, Float_t & value);
58
59// Weight
60 void SetRate(Float_t rate){fRate1=rate;}
61 void SetRate(Float_t rate1, Float_t rate2 ){fRate1=rate1; fRate2=rate2;}
62 Float_t Weight(GParticle* part);
63 Float_t Weight(GParticle* part1, GParticle* part);
64
65 private:
66 void FirstPartner();
67 void NextPartner();
68 void FirstPartnerSelected();
69 void NextPartnerSelected();
70
71 GParticle* Partner();
72 Int_t Type(GParticle *part){return part->GetKF();}
73private:
74 TClonesArray *fPartArray;
75 Int_t fNParticle;
76 Int_t fimuon1;
77 Int_t fimuon2;
78 Int_t fimin1;
79 Int_t fimin2;
80 Int_t fimax1;
81 Int_t fimax2;
82 Float_t fRate1;
83 Float_t fRate2;
84 GParticle *fmuon1;
85 GParticle *fmuon2;
86 Float_t fPtMin;
87 Float_t fEtaMin;
88 Float_t fEtaMax;
89 ClassDef(DimuonCombinator,1)
90};
91#endif
92
93
94
95