LCOV - code coverage report
Current view: top level - STEER/AOD - AliAODDimuon.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 13 7.7 %
Date: 2016-06-14 17:26:59 Functions: 2 17 11.8 %

          Line data    Source code
       1             : #ifndef AliAODDimuon_H
       2             : #define AliAODDimuon_H
       3             : 
       4             : // AliAODDimuon: a class for AODs for the MUON Arm of the ALICE Experiment
       5             : // Author: P. Cortese, Universita' del Piemonte Orientale in Alessandria and
       6             : // INFN of Torino - Italy
       7             : //
       8             : // The class defines a dimuon pair object from two AliAODTrack objects.
       9             : // AliAODDimuon objects are supposed to be added to the AliAODEvent structure
      10             : // during analysis. They would then allow to calculate the dimuon-related
      11             : // kinematic variables with a minimal disk occupancy.
      12             : // The payload of the class has been reduced to two pointers to the two
      13             : // tracks. An instance of this class has also to be added to the AliAODEvent 
      14             : // structure to provide additional information that is specific to MUON and 
      15             : // therefore has not been included into the AOD header.
      16             : // Two transient data members are not stored on file as they can be recomputed
      17             : // at runtime.
      18             : //
      19             : 
      20             : // 2007/07/07 v1.00 Initial version
      21             : // 2007/12/06 v1.01 Introduction of AliAODEventInfo
      22             : // 2007/12/18 v1.02 Corrected CostCS for Like-Sign, added CostKh, CostHe and xf
      23             : // 2008/02/01 v1.03 Apply coding conventions
      24             : 
      25             : #include "TRef.h"
      26             : #include "AliVParticle.h"
      27             : #include "AliAODTrack.h"
      28             : 
      29             : class TLorentzVector;
      30             : 
      31             : class AliAODDimuon: public AliVParticle {
      32             : public:
      33             :   AliAODDimuon();
      34             :   AliAODDimuon(const AliAODDimuon& dimu);
      35             :   AliAODDimuon &operator=(const AliAODDimuon& dimu);
      36             :   AliAODDimuon(TObject *mu0, TObject *mu1);
      37             :   virtual ~AliAODDimuon();
      38             : 
      39             :   virtual void Clear(Option_t* opt="");
      40             :   
      41             :   // Methods to access kinematics
      42             :   virtual Double_t Px() const;
      43             :   virtual Double_t Py() const;
      44             :   virtual Double_t Pz() const;
      45           0 :   virtual Bool_t PxPyPz(Double_t* p) const { p[0]=Px(); p[1]=Py(); p[2]=Pz(); return 1;}
      46             :   virtual Double_t Pt() const;
      47             :   virtual Double_t P() const;
      48             : 
      49           0 :   virtual Double_t OneOverPt() const {return Pt()>0 ? 1./Pt() : -999999999;}
      50             :   virtual Double_t Phi() const;
      51             :   virtual Double_t Theta() const;
      52             : 
      53             :   virtual Double_t E() const;
      54             :   virtual Double_t M() const;
      55             : 
      56           0 :   virtual Double_t Mass() const { return M(); }
      57             : 
      58             :   virtual Double_t Eta() const;
      59             :   virtual Double_t Y() const;
      60             :   
      61             :   virtual Short_t Charge() const;
      62             : 
      63             :   // Dimuon vertex will be implemented when the muon track covariance matrix 
      64             :   // at vertex will be included in the ESD (and AOD)
      65             :   // It would require also the information about magnetic field when filling AOD
      66           0 :   virtual Double_t Xv() const {return -999999999;}
      67           0 :   virtual Double_t Yv() const {return -999999999;}
      68           0 :   virtual Double_t Zv() const {return -999999999;}
      69           0 :   virtual Bool_t XvYvZv(Double_t* v) const { v[0]=-999999999; v[1]=-999999999; v[2]=-999999999; return 0;}
      70             : 
      71             :   // Added functions
      72             :   Double_t XF();     // Feynman x
      73             :   Double_t CostCS(); // Cosinus of the Collins-Soper polar decay angle
      74             :   Double_t CostHe(); // Cosinus of the Helicity polar decay angle
      75             :   Double_t PhiCS();  // Azimuthal angle in the Collins-Soper frame
      76             :   Double_t PhiHe();  // Azimuthal angle in the Helicity frame
      77             :   Int_t AnyPt();
      78             :   Int_t LowPt();
      79             :   Int_t HighPt();
      80             :   Double_t MaxChi2Match();
      81             :   // PID
      82           0 :   virtual const Double_t *PID() const {return 0;} // return PID object (to be defined, still)
      83             :   
      84             :   //
      85           0 :   Int_t GetLabel() const {return -1;}
      86             :   // Additional getters and setters
      87           0 :   AliAODTrack* GetMu(Int_t imu=0) const {return Mu(imu); } // Get a pointer to a muon
      88           0 :   AliAODTrack* Mu(Int_t imu=0) const {return (imu==0||imu==1)&&(fMu[imu]!=0) ? (AliAODTrack*)fMu[imu].GetObject() : 0; } // Get a pointer to a muon
      89             : 
      90             :   void SetMu(Int_t imu=0, AliAODTrack *mu=0);
      91             :   void SetMuons(AliAODTrack *mu0=0, AliAODTrack *mu1=0);
      92             :   // Dummy
      93           0 :   virtual Int_t PdgCode() const {return 0;}
      94             : 
      95             : private:
      96             : 
      97             :   Int_t CheckPointers() const;
      98             : 
      99             :   TLorentzVector* TLV() const; 
     100             : 
     101             :   // Data members
     102             :   TRef fMu[2];  // Pointers to the reconstructed muons
     103             :   mutable TLorentzVector *fP; //! TLorentzVector of dimuon momentum (not stored into file)
     104             : 
     105             :   // Useful constants
     106             :   Double_t fMProton; //! Proton mass (not stored into file)
     107             : 
     108         174 :   ClassDef(AliAODDimuon,2)  // AliAODDimuon track
     109             : };
     110             : 
     111             : #endif

Generated by: LCOV version 1.11