Correcting coding convention violations
[u/mrichter/AliRoot.git] / EVGEN / AliDimuCombinator.h
CommitLineData
f87cfe57 1#ifndef ALIDIMUCOMBINATOR_H
2#define ALIDIMUCOMBINATOR_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
f87cfe57 7#include <TObject.h>
d430df3f 8#include <TParticle.h>
3da30618 9
f87cfe57 10class TClonesArray;
11class TParticle;
fe4da5cc 12
13
dafbc1c5 14class AliDimuCombinator:
fe4da5cc 15 public TObject
16{
17public:
f87cfe57 18 AliDimuCombinator(TClonesArray* Partarray);
19 AliDimuCombinator(const AliDimuCombinator &combinator);
fe4da5cc 20//
7d566a7d 21// Iterators
22// Single muons
1578254f 23 TParticle* FirstMuon();
24 TParticle* NextMuon();
7d566a7d 25// Single muons selected
1578254f 26 TParticle* FirstMuonSelected();
27 TParticle* NextMuonSelected();
7d566a7d 28// Dimuons
1578254f 29 void FirstMuonPair(TParticle* & muon1, TParticle* & muon2);
30 void NextMuonPair(TParticle* & muon1, TParticle* & muon2);
7d566a7d 31// Dimuons selected
1578254f 32 void FirstMuonPairSelected(TParticle* & muon1, TParticle* & muon2);
33 void NextMuonPairSelected(TParticle* & muon1, TParticle* & muon2);
7d566a7d 34// Loop over all prticles
fe4da5cc 35 void ResetRange();
7d566a7d 36// Set two ranges for dimuon loop
fe4da5cc 37 void SetFirstRange (Int_t from, Int_t to);
38 void SetSecondRange(Int_t from, Int_t to);
39// Cuts
7d566a7d 40 void SetPtMin(Float_t ptmin) {fPtMin=ptmin;}
f87cfe57 41 void SetEtaCut(Float_t etamin, Float_t etamax)
42 {fEtaMin=etamin; fEtaMax=etamax;}
43 Bool_t Selected(TParticle* part);
1578254f 44 Bool_t Selected(TParticle* part1, TParticle* part2);
fe4da5cc 45// Kinematics
1578254f 46 Float_t Mass(TParticle* part1, TParticle* part);
47 Float_t PT(TParticle* part1, TParticle* part);
48 Float_t Pz(TParticle* part1, TParticle* part);
49 Float_t Y(TParticle* part1, TParticle* part);
fe4da5cc 50// Response
51 void SmearGauss(Float_t width, Float_t & value);
fe4da5cc 52// Weight
1578254f 53 Bool_t Correlated(TParticle* part1, TParticle* part2);
d430df3f 54 void SetRate(Float_t rate) {fRate1=rate;}
55 void SetRate(Float_t rate1, Float_t rate2 ) {fRate1=rate1; fRate2=rate2;}
1578254f 56 Float_t Weight(TParticle* part);
57 Float_t Weight(TParticle* part1, TParticle* part);
f87cfe57 58 Float_t DecayProbability(TParticle* part);
59 AliDimuCombinator & operator=(const AliDimuCombinator & rhs);
7d566a7d 60
fe4da5cc 61 private:
62 void FirstPartner();
63 void NextPartner();
64 void FirstPartnerSelected();
65 void NextPartnerSelected();
1578254f 66 Int_t Origin(TParticle* part);
67 TParticle* Parent(TParticle* part);
68 TParticle* Partner();
d430df3f 69 Int_t Type(TParticle *part);
70 private:
f87cfe57 71 TClonesArray *fPartArray; // MC Event
72 Int_t fNParticle; // Number of particles
d430df3f 73 Int_t fImuon1; // Index of first muon
74 Int_t fImuon2; // Index of second muon
75 Int_t fImin1; // Lowest index for first muon
76 Int_t fImin2; // Lowest index for second muon
77 Int_t fImax1; // Highest index for first muon
78 Int_t fImax2; // Highest index for second muon
f87cfe57 79 Float_t fRate1; // weight factor
80 Float_t fRate2; // weight factor
d430df3f 81 TParticle *fMuon1; // First muon
82 TParticle *fMuon2; // Second muon
f87cfe57 83 Float_t fPtMin; // pT-cut
84 Float_t fEtaMin; // Minimum pseudorapidity cut
85 Float_t fEtaMax; // Maximum pseudorapidity cut
86
87 ClassDef(AliDimuCombinator,1) // Tools for dimuon combinatoric studies
fe4da5cc 88};
89#endif
90
91
92
93
f87cfe57 94
d430df3f 95
96
97