]>
Commit | Line | Data |
---|---|---|
55fd51b0 | 1 | #ifndef ALIMUONPAIRLIGHT_H |
2 | #define ALIMUONPAIRLIGHT_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | // Revision of includes 06/09/2006 | |
8 | ||
929be614 | 9 | /// \ingroup evaluation |
55fd51b0 | 10 | /// \class AliMUONPairLight |
11 | /// \brief Compact information for the generated muon pairs | |
12 | /// | |
13 | /// Compact information for the generated muon pairs in the MUON arm | |
14 | /// useful at the last stage of the analysis chain | |
15 | /// Pairs are built with two AliMUONTrackLight objects | |
16 | /// Using the class AliMUONTrackLight this class combines the decay | |
17 | /// information ("history") of the reconstructed tracks and fills | |
18 | /// a series of flags for the formed reconstructed dimuon: | |
19 | /// fIsCorrelated, fCreationProcess, fIsFeedDown, ... | |
20 | /// for information about the dimuon, use PrintInfo with the appropriate | |
21 | /// printflag | |
22 | /// To be used together with AliMUONTrackLight | |
23 | /// | |
24 | /// \author This class was prepared by INFN Cagliari, July 2006 | |
25 | /// (authors: H.Woehri, A.de Falco) | |
26 | ||
27 | // MUON classes | |
28 | #include "AliMUONTrackLight.h" | |
29 | ||
30 | // ROOT classes | |
31 | //#include "TLorentzVector.h" | |
32 | class TLorentzVector; | |
33 | ||
34 | class AliMUONPairLight : public TObject { | |
35 | public: | |
36 | AliMUONPairLight(); | |
37 | AliMUONPairLight(AliMUONPairLight &dimuCopy); | |
38 | virtual ~AliMUONPairLight(); | |
e733e3dd | 39 | AliMUONPairLight& operator=(const AliMUONPairLight&); |
9ece07e8 | 40 | virtual void SetMuons(const AliMUONTrackLight& mu0, const AliMUONTrackLight& mu1); |
b88403f3 | 41 | AliMUONTrackLight* GetMuon(Int_t index) ; |
55fd51b0 | 42 | Int_t GetMuonMotherPDG(Int_t imuon, Int_t mother=0) ; |
8da55d97 | 43 | |
44 | /// returns kTRUE if the creation process of the pair was "open charm" (kFALSE... otherwise) | |
55fd51b0 | 45 | Bool_t IsOpenCharm() {return (TMath::Abs(fMu0.GetParentFlavour(0))==4 && TMath::Abs(fMu1.GetParentFlavour(0))==4 && fIsCorrelated && !IsAResonance());} |
8da55d97 | 46 | /// returns kTRUE if the creation process of the pair was "open beauty" (kFALSE... otherwise) |
55fd51b0 | 47 | Bool_t IsOpenBeauty() {return (TMath::Abs(fMu0.GetParentFlavour(0))==5 && TMath::Abs(fMu1.GetParentFlavour(0))==5 && fIsCorrelated && !IsAResonance());} |
48 | Bool_t IsAResonance(); | |
8da55d97 | 49 | /// returns kTRUE if at least one of the first hadronised parent is a pi or a K (kFALSE... otherwise) |
b88403f3 | 50 | Bool_t IsOneMuonFromPionOrKaon(){return (fMu0.IsParentPionOrKaon(0) || fMu1.IsParentPionOrKaon(0));} |
51 | /// Return the info if the two muons are of correlated origin | |
55fd51b0 | 52 | Bool_t IsCorrelated() const {return fIsCorrelated;} |
b88403f3 | 53 | /// Return the pdg of common mother |
55fd51b0 | 54 | Int_t GetCauseOfCorrelation() const {return fCauseOfCorrelation;} |
b88403f3 | 55 | /// Return the info if the process is from feeddown |
55fd51b0 | 56 | Bool_t IsFeedDown() const {return fIsFeedDown;} |
8da55d97 | 57 | /// returns kTRUE if at least one of the reconstructed tracks is not a muon (kFALSE... otherwise) |
55fd51b0 | 58 | Bool_t IsOneTrackNotAMuon() {return (!( fMu0.IsAMuon() && fMu1.IsAMuon() )) ;} |
8da55d97 | 59 | /// returns the charge of the created pair |
55fd51b0 | 60 | Int_t GetCharge() {return fMu0.GetCharge() + fMu1.GetCharge();} |
b88403f3 | 61 | /// \brief Return the info ablout creation process |
62 | ///0: pair creation, 1: gluon splitting, 2: flavour excitation, 3: same fragmented mother, -1: resonance | |
55fd51b0 | 63 | Int_t GetCreationProcess() const {return fCreationProcess;} |
b88403f3 | 64 | /// Set the info ablout creation process |
55fd51b0 | 65 | void SetCorrelated(Bool_t answer) {fIsCorrelated = answer; } |
b88403f3 | 66 | /// Set the pdg of common mother |
55fd51b0 | 67 | void SetCauseOfCorrelation(Int_t pdg) {fCauseOfCorrelation = pdg; } |
b88403f3 | 68 | /// Set the info if the process is from feeddown |
55fd51b0 | 69 | void SetFeedDown(Int_t answer) {fIsFeedDown = answer;} |
8da55d97 | 70 | /// returns a TLorentzVector containing the reconstructed kinematics of the pair |
55fd51b0 | 71 | TLorentzVector GetPRec(){return fMu0.GetPRec()+fMu1.GetPRec();} |
8da55d97 | 72 | /// returns a TLorentzVector containing the generated kinematics of the pair |
55fd51b0 | 73 | TLorentzVector GetPGen(){return fMu0.GetPGen()+fMu1.GetPGen();} |
74 | Double_t GetOpeningAngle(); | |
91e620e2 | 75 | Bool_t IsDimuonFromCorrPiK(); |
57e2ad1a | 76 | virtual void PrintInfo(const Option_t* opt);//"H" single muons' decay histories |
55fd51b0 | 77 | //"K" dimuon kinematics |
78 | //"F" dimuon flags | |
79 | //"A" all variables | |
b88403f3 | 80 | |
55fd51b0 | 81 | protected: |
b88403f3 | 82 | /// Checks if muons are correlated and assigns |
83 | void SetProcess(); | |
55fd51b0 | 84 | |
b88403f3 | 85 | AliMUONTrackLight fMu0; ///< first muon |
86 | AliMUONTrackLight fMu1; ///< second muon | |
87 | Int_t fCreationProcess; ///<0: pair creation, 1: gluon splitting, 2: flavour excitation, 3: same fragmented mother, -1: resonance | |
88 | Bool_t fIsCorrelated; ///<tells if the two muons are of correlated origin | |
89 | Int_t fCauseOfCorrelation; ///<pdg of common mother | |
90 | Int_t fIsFeedDown; ///< tells if the process is from feeddown | |
55fd51b0 | 91 | |
92 | ClassDef(AliMUONPairLight,1) /// Dimuon carrying info at generation and reconstruction level | |
93 | }; | |
94 | #endif |