LCOV - code coverage report
Current view: top level - MUON/MUONevaluation - AliMUONTrackLight.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 30 3.3 %
Date: 2016-06-14 17:26:59 Functions: 1 34 2.9 %

          Line data    Source code
       1             : #ifndef ALIMUONTRACKLIGHT_H
       2             : #define ALIMUONTRACKLIGHT_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 AliMUONTrackLight
      11             : /// \brief Compact information for the muon generated tracks
      12             : /// 
      13             : /// Compact information for the muon generated tracks in the MUON arm 
      14             : /// useful at the last stage of the analysis chain
      15             : /// provides a link between the reconstructed track and the generated particle 
      16             : /// stores kinematical information at gen. and rec. level and 
      17             : /// the decay history of the muon, allowing the identification of the 
      18             : /// mother process 
      19             : /// 
      20             : /// To be used together with AliMUONPairLight
      21             : ///
      22             : /// \author This class was prepared by INFN Cagliari, July 2006
      23             : /// (authors: H.Woehri, A.de Falco)
      24             : 
      25             : // ROOT classes
      26             : #include "TLorentzVector.h"
      27             : 
      28             : class AliMUONTrack;
      29             : class AliESDMuonTrack;
      30             : class AliStack;
      31             : class TParticle;
      32             : class AliMUONVTrackStore;
      33             : 
      34             : class AliMUONTrackLight : public TObject {
      35             :  public: 
      36             :   AliMUONTrackLight(); 
      37             :   AliMUONTrackLight(AliESDMuonTrack* muonTrack); 
      38             :   AliMUONTrackLight(const AliMUONTrackLight &muonCopy);
      39             :   AliMUONTrackLight& operator=(const AliMUONTrackLight&);
      40             :   virtual ~AliMUONTrackLight(); 
      41             :   
      42             :   /// Set 4-momentum of the generated particle
      43           0 :   void SetPGen(TLorentzVector pgen) {fPgen = pgen;}
      44             :   /// Return 4-momentum of the generated particle  
      45           0 :   TLorentzVector GetPGen() const {return fPgen;}
      46             :   /// Set reconstructed 4-momentum
      47           0 :   void SetPRec(TLorentzVector prec) {fPrec = prec;}
      48             :   /// Return reconstructed 4-momentum 
      49           0 :   TLorentzVector GetPRec() const {return fPrec;}
      50             :   /// Set primary vertex position from the ITS
      51           0 :   void SetVertex(Double_t *xyz) {for (Int_t i=0; i<3; i++) fXYZ[i]=xyz[i];}
      52             :   /// Return primary vertex x position from the ITS 
      53           0 :   Double_t GetX() const { return fXYZ[0]; } 
      54             :   /// Return primary vertex y position from the ITS 
      55           0 :   Double_t GetY() const { return fXYZ[1]; } 
      56             :   /// Return primary vertex z position from the ITS 
      57           0 :   Double_t GetZ() const { return fXYZ[2]; } 
      58             :   /// Return  primary vertex position from the ITS
      59           0 :   Double_t* GetVertex() { return fXYZ; } 
      60             :   /// Set chi2 / ndf in the MUON track fit
      61           0 :   void SetChi2(Double_t chi2) {fChi2=chi2;}
      62             :   /// Return chi2 / ndf in the MUON track fit 
      63           0 :   Double_t GetChi2() const { return fChi2; } 
      64             :   /// Set weight assigned to the muon
      65           0 :   void SetWeight(Double_t w) {fWeight=w;}
      66             :   /// Return weight assigned to the muon 
      67           0 :   Double_t GetWeight() const { return fWeight; } 
      68             :   
      69             :   /// Set muon charge 
      70           0 :   void SetCharge(Int_t charge) {fCharge = charge;}
      71             :   /// Return muon charge 
      72           0 :   Int_t GetCharge() const {return fCharge;}
      73             :   /// Return hadronised parents and grandparents 
      74           0 :   Int_t GetParentPDGCode(Int_t index = 0) const { return fParentPDGCode[index]; } 
      75             :   /// Return line of Pythia output for hadronised parents & grandparents 
      76           0 :   Int_t GetParentPythiaLine(Int_t index = 0) const { return fParentPythiaLine[index]; } 
      77             :   /// Return pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
      78           0 :   Int_t GetQuarkPDGCode(Int_t index = 0) const { return fQuarkPDGCode[index]; } 
      79             :   /// Return line of Pythia output for string [0] and quarks [1,2], sometimes proton [3] 
      80           0 :   Int_t GetQuarkPythiaLine(Int_t index = 0) const { return fQuarkPythiaLine[index]; } 
      81             :   /// Return line of Pythia output for string [0] and quarks [1,2], sometimes proton [3] 
      82           0 :   Int_t GetTrackPythiaLine() const {return fTrackPythiaLine;}
      83             :   /// Return pdg code of the rec. track (in general will be a muon) 
      84           0 :   Int_t GetTrackPDGCode() const {return fTrackPDGCode;}
      85             :   /// Set line of kin. stack where rec. track (in general, the muon) is stored
      86           0 :   void SetTrackPythiaLine(Int_t trackLine) {fTrackPythiaLine = trackLine;}
      87             :   /// Set pdg code of the rec. track (in general will be a muon)
      88           0 :   void SetTrackPDGCode(Int_t trackPdg) {fTrackPDGCode = trackPdg;}
      89             :   void FillFromESD(AliESDMuonTrack* muonTrack, Double_t zvert=-9999);
      90             :   void FillFromAliMUONTrack(AliMUONTrack *trackReco,Double_t zvert=-9999);
      91             :   /// Return info if is a muon 
      92           0 :   Bool_t IsAMuon() const { return (TMath::Abs(fTrackPDGCode)==13); }
      93             :   Bool_t IsParentPionOrKaon(Int_t idParent = 0);
      94             :   void SetPxPyPz(Double_t px, Double_t py, Double_t pz); 
      95             :   /// Set flag for trigger 
      96           0 :   void SetTriggered(Bool_t isTriggered) { fIsTriggered = isTriggered; } 
      97             :   /// Return flag for trigger  
      98           0 :   Bool_t IsTriggered() const { return fIsTriggered; } 
      99             :   /// Return acually filled no. of *fragmented* parents 
     100           0 :   Int_t GetNParents() const {return fNParents;}
     101             :   void FillMuonHistory(AliStack *stack, TParticle *part);
     102             :   Bool_t IsB0(Int_t intTest) const;//checks if the provided PDG code corresponds to a neutral B meson
     103             :   Bool_t IsMotherAResonance(Int_t index=0) const;
     104             :   /// Return flag for oscillation 
     105           0 :   Bool_t GetOscillation() const {return fOscillation;}
     106             :   virtual void PrintInfo(const Option_t* opt); //"H" muon's decay history
     107             :   //"K" muon kinematics
     108             :   //"A" all variables
     109             :   Int_t GetParentFlavour(Int_t idParent=0) const;
     110             :   Bool_t IsDiquark(Int_t pdg) const;
     111             : protected:
     112             :   static const Int_t fgkNParentsMax = 5;   ///< maximum number of parents
     113             :   TLorentzVector fPrec; ///< reconstructed 4-momentum
     114             :   Double_t fXYZ[3];     ///< primary vertex position from the ITS 
     115             :   Bool_t fIsTriggered;  ///< flag for trigger 
     116             :   Int_t fCharge;        ///< muon charge 
     117             :   Double_t fChi2;       ///< chi2 / ndf in the MUON track fit 
     118             :   Float_t fCentr;       ///< centrality 
     119             :   TLorentzVector fPgen;   ///< 4-momentum of the generated particle
     120             :   Int_t fTrackPythiaLine; ///< line of kin. stack where rec. track (in general, the muon) is stored
     121             :   Int_t fTrackPDGCode; ///< pdg code of the rec. track (in general will be a muon)
     122             :   Int_t fParentPDGCode[fgkNParentsMax]; ///< hadronised parents and grandparents 
     123             :   Int_t fParentPythiaLine[fgkNParentsMax];///< line of Pythia output for hadronised parents & grandparents
     124             :   Int_t fQuarkPDGCode[4]; ///< pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
     125             :   Int_t fQuarkPythiaLine[4]; ///< line of Pythia output for string [0] and quarks [1,2], sometimes proton [3]
     126             :   Bool_t fOscillation; ///< flag for oscillation
     127             :   Int_t fNParents; ///< acually filled no. of *fragmented* parents
     128             :   Double_t fWeight; ///< weight assigned to the muon
     129             :   /// Set flag for oscillation
     130           0 :   void SetOscillation(Bool_t oscillation) { fOscillation = oscillation; }
     131             :   /// Set hadronised parents and grandparents 
     132             :   void SetParentPDGCode(Int_t index, Int_t pdg);
     133             :   /// Set line of Pythia output for hadronised parents & grandparents
     134             :   void SetParentPythiaLine(Int_t index, Int_t line);
     135             :   /// Set pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
     136             :   void SetQuarkPDGCode(Int_t index, Int_t pdg);
     137             :   /// Set line of Pythia output for string [0] and quarks [1,2], sometimes proton [3]
     138             :   void SetQuarkPythiaLine(Int_t index, Int_t line);
     139             :   void ResetQuarkInfo();
     140             : 
     141          16 :   ClassDef(AliMUONTrackLight,1)  /// Muon Track for analysis
     142             : }; 
     143             : 
     144             : #endif

Generated by: LCOV version 1.11