]>
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(); | |
39 | virtual void SetMuons(AliMUONTrackLight mu0, AliMUONTrackLight mu1); | |
b88403f3 | 40 | AliMUONTrackLight* GetMuon(Int_t index) ; |
55fd51b0 | 41 | Int_t GetMuonMotherPDG(Int_t imuon, Int_t mother=0) ; |
8da55d97 | 42 | |
43 | /// returns kTRUE if the creation process of the pair was "open charm" (kFALSE... otherwise) | |
55fd51b0 | 44 | Bool_t IsOpenCharm() {return (TMath::Abs(fMu0.GetParentFlavour(0))==4 && TMath::Abs(fMu1.GetParentFlavour(0))==4 && fIsCorrelated && !IsAResonance());} |
8da55d97 | 45 | /// returns kTRUE if the creation process of the pair was "open beauty" (kFALSE... otherwise) |
55fd51b0 | 46 | Bool_t IsOpenBeauty() {return (TMath::Abs(fMu0.GetParentFlavour(0))==5 && TMath::Abs(fMu1.GetParentFlavour(0))==5 && fIsCorrelated && !IsAResonance());} |
47 | Bool_t IsAResonance(); | |
8da55d97 | 48 | /// returns kTRUE if at least one of the first hadronised parent is a pi or a K (kFALSE... otherwise) |
b88403f3 | 49 | Bool_t IsOneMuonFromPionOrKaon(){return (fMu0.IsParentPionOrKaon(0) || fMu1.IsParentPionOrKaon(0));} |
50 | /// Return the info if the two muons are of correlated origin | |
55fd51b0 | 51 | Bool_t IsCorrelated() const {return fIsCorrelated;} |
b88403f3 | 52 | /// Return the pdg of common mother |
55fd51b0 | 53 | Int_t GetCauseOfCorrelation() const {return fCauseOfCorrelation;} |
b88403f3 | 54 | /// Return the info if the process is from feeddown |
55fd51b0 | 55 | Bool_t IsFeedDown() const {return fIsFeedDown;} |
8da55d97 | 56 | /// returns kTRUE if at least one of the reconstructed tracks is not a muon (kFALSE... otherwise) |
55fd51b0 | 57 | Bool_t IsOneTrackNotAMuon() {return (!( fMu0.IsAMuon() && fMu1.IsAMuon() )) ;} |
8da55d97 | 58 | /// returns the charge of the created pair |
55fd51b0 | 59 | Int_t GetCharge() {return fMu0.GetCharge() + fMu1.GetCharge();} |
b88403f3 | 60 | /// \brief Return the info ablout creation process |
61 | ///0: pair creation, 1: gluon splitting, 2: flavour excitation, 3: same fragmented mother, -1: resonance | |
55fd51b0 | 62 | Int_t GetCreationProcess() const {return fCreationProcess;} |
b88403f3 | 63 | /// Set the info ablout creation process |
55fd51b0 | 64 | void SetCorrelated(Bool_t answer) {fIsCorrelated = answer; } |
b88403f3 | 65 | /// Set the pdg of common mother |
55fd51b0 | 66 | void SetCauseOfCorrelation(Int_t pdg) {fCauseOfCorrelation = pdg; } |
b88403f3 | 67 | /// Set the info if the process is from feeddown |
55fd51b0 | 68 | void SetFeedDown(Int_t answer) {fIsFeedDown = answer;} |
8da55d97 | 69 | /// returns a TLorentzVector containing the reconstructed kinematics of the pair |
55fd51b0 | 70 | TLorentzVector GetPRec(){return fMu0.GetPRec()+fMu1.GetPRec();} |
8da55d97 | 71 | /// returns a TLorentzVector containing the generated kinematics of the pair |
55fd51b0 | 72 | TLorentzVector GetPGen(){return fMu0.GetPGen()+fMu1.GetPGen();} |
73 | Double_t GetOpeningAngle(); | |
91e620e2 | 74 | Bool_t IsDimuonFromCorrPiK(); |
55fd51b0 | 75 | virtual void PrintInfo(Option_t* opt);//"H" single muons' decay histories |
76 | //"K" dimuon kinematics | |
77 | //"F" dimuon flags | |
78 | //"A" all variables | |
b88403f3 | 79 | |
55fd51b0 | 80 | protected: |
b88403f3 | 81 | /// Checks if muons are correlated and assigns |
82 | void SetProcess(); | |
55fd51b0 | 83 | |
b88403f3 | 84 | AliMUONTrackLight fMu0; ///< first muon |
85 | AliMUONTrackLight fMu1; ///< second muon | |
86 | Int_t fCreationProcess; ///<0: pair creation, 1: gluon splitting, 2: flavour excitation, 3: same fragmented mother, -1: resonance | |
87 | Bool_t fIsCorrelated; ///<tells if the two muons are of correlated origin | |
88 | Int_t fCauseOfCorrelation; ///<pdg of common mother | |
89 | Int_t fIsFeedDown; ///< tells if the process is from feeddown | |
55fd51b0 | 90 | |
91 | ClassDef(AliMUONPairLight,1) /// Dimuon carrying info at generation and reconstruction level | |
92 | }; | |
93 | #endif |