LCOV - code coverage report
Current view: top level - MUON/MUONevaluation - AliMUONPairLight.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 15 6.7 %
Date: 2016-06-14 17:26:59 Functions: 1 19 5.3 %

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

Generated by: LCOV version 1.11