ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

/////////////////////////////////////////////////////////////
//
// class used to extract and store reco info of dimu candidate
//
// Author: X-M. Zhang, zhang@clermont.in2p3.fr
//                     zhangxm@iopp.ccnu.edu.cn
/////////////////////////////////////////////////////////////

#include <TDatabasePDG.h>
#include <TLorentzVector.h>

#include "AliMuonInfoStoreRD.h"
#include "AliDimuInfoStoreRD.h"

ClassImp(AliDimuInfoStoreRD)

const TString AliDimuInfoStoreRD::fgkStdBranchName("DimuRD");

//-----------------------------------------------------------------------------
AliDimuInfoStoreRD::AliDimuInfoStoreRD() :
TObject(),
fSelMask(0),
fMomentum(),
fCharge(0),
fInvM(0.)
{
  //
  // default constructor
  //
  for (Int_t i=2; i--;) fMuonRef[i] = 0;
}

//-----------------------------------------------------------------------------
AliDimuInfoStoreRD::AliDimuInfoStoreRD(AliMuonInfoStoreRD* const trk0, AliMuonInfoStoreRD* const trk1, UInt_t selMask) :
TObject(),
fSelMask(selMask),
fMomentum(),
fCharge(0),
fInvM(0.)
{
  //
  // default constructor
  //
  fMuonRef[0] = trk0;
  fMuonRef[1] = trk1;
  FillDimuInfo();
}

//-----------------------------------------------------------------------------
AliDimuInfoStoreRD::AliDimuInfoStoreRD(const AliDimuInfoStoreRD &src) :
TObject(src),
fSelMask(src.fSelMask),
fMomentum(src.fMomentum),
fCharge(src.fCharge),
fInvM(src.fInvM)
{
  //
  // copy constructor
  //
  for (Int_t i=2; i--;) fMuonRef[i] = src.fMuonRef[i];
}

//-----------------------------------------------------------------------------
AliDimuInfoStoreRD& AliDimuInfoStoreRD::operator=(const AliDimuInfoStoreRD &src)
{
  //
  // assignment constructor
  //
  if(&src==this) return *this;

  fSelMask  = src.fSelMask;
  fMomentum = src.fMomentum;
  fCharge   = src.fCharge;
  fInvM     = src.fInvM;
  for (Int_t i=2; i--;) fMuonRef[i] = src.fMuonRef[i];

  return *this;
}

//-----------------------------------------------------------------------------
AliDimuInfoStoreRD::~AliDimuInfoStoreRD()
{
  //
  // destructor
  //
}

//-----------------------------------------------------------------------------
void AliDimuInfoStoreRD::FillDimuInfo()
{
  // fill dimuon candidate info from the corresponding two muon tracks

  AliMuonInfoStoreRD *trk0 = (AliMuonInfoStoreRD*)fMuonRef[0].GetObject();
  AliMuonInfoStoreRD *trk1 = (AliMuonInfoStoreRD*)fMuonRef[1].GetObject();

  fMomentum = trk0->MomentumAtVtx() + trk1->MomentumAtVtx();
  fCharge   = trk0->Charge()   + trk1->Charge();

  Double_t mMu = TDatabasePDG::Instance()->GetParticle(13)->Mass();
  TLorentzVector lorentzP0, lorentzP1, lorentzP;
  lorentzP0.SetVectM(trk0->MomentumAtVtx(), mMu);
  lorentzP1.SetVectM(trk1->MomentumAtVtx(), mMu);
  lorentzP = lorentzP0 + lorentzP1;
  fInvM = lorentzP.Mag();

  trk0 = 0;
  trk1 = 0;
  return;
}
 AliDimuInfoStoreRD.cxx:1
 AliDimuInfoStoreRD.cxx:2
 AliDimuInfoStoreRD.cxx:3
 AliDimuInfoStoreRD.cxx:4
 AliDimuInfoStoreRD.cxx:5
 AliDimuInfoStoreRD.cxx:6
 AliDimuInfoStoreRD.cxx:7
 AliDimuInfoStoreRD.cxx:8
 AliDimuInfoStoreRD.cxx:9
 AliDimuInfoStoreRD.cxx:10
 AliDimuInfoStoreRD.cxx:11
 AliDimuInfoStoreRD.cxx:12
 AliDimuInfoStoreRD.cxx:13
 AliDimuInfoStoreRD.cxx:14
 AliDimuInfoStoreRD.cxx:15
 AliDimuInfoStoreRD.cxx:16
 AliDimuInfoStoreRD.cxx:17
 AliDimuInfoStoreRD.cxx:18
 AliDimuInfoStoreRD.cxx:19
 AliDimuInfoStoreRD.cxx:20
 AliDimuInfoStoreRD.cxx:21
 AliDimuInfoStoreRD.cxx:22
 AliDimuInfoStoreRD.cxx:23
 AliDimuInfoStoreRD.cxx:24
 AliDimuInfoStoreRD.cxx:25
 AliDimuInfoStoreRD.cxx:26
 AliDimuInfoStoreRD.cxx:27
 AliDimuInfoStoreRD.cxx:28
 AliDimuInfoStoreRD.cxx:29
 AliDimuInfoStoreRD.cxx:30
 AliDimuInfoStoreRD.cxx:31
 AliDimuInfoStoreRD.cxx:32
 AliDimuInfoStoreRD.cxx:33
 AliDimuInfoStoreRD.cxx:34
 AliDimuInfoStoreRD.cxx:35
 AliDimuInfoStoreRD.cxx:36
 AliDimuInfoStoreRD.cxx:37
 AliDimuInfoStoreRD.cxx:38
 AliDimuInfoStoreRD.cxx:39
 AliDimuInfoStoreRD.cxx:40
 AliDimuInfoStoreRD.cxx:41
 AliDimuInfoStoreRD.cxx:42
 AliDimuInfoStoreRD.cxx:43
 AliDimuInfoStoreRD.cxx:44
 AliDimuInfoStoreRD.cxx:45
 AliDimuInfoStoreRD.cxx:46
 AliDimuInfoStoreRD.cxx:47
 AliDimuInfoStoreRD.cxx:48
 AliDimuInfoStoreRD.cxx:49
 AliDimuInfoStoreRD.cxx:50
 AliDimuInfoStoreRD.cxx:51
 AliDimuInfoStoreRD.cxx:52
 AliDimuInfoStoreRD.cxx:53
 AliDimuInfoStoreRD.cxx:54
 AliDimuInfoStoreRD.cxx:55
 AliDimuInfoStoreRD.cxx:56
 AliDimuInfoStoreRD.cxx:57
 AliDimuInfoStoreRD.cxx:58
 AliDimuInfoStoreRD.cxx:59
 AliDimuInfoStoreRD.cxx:60
 AliDimuInfoStoreRD.cxx:61
 AliDimuInfoStoreRD.cxx:62
 AliDimuInfoStoreRD.cxx:63
 AliDimuInfoStoreRD.cxx:64
 AliDimuInfoStoreRD.cxx:65
 AliDimuInfoStoreRD.cxx:66
 AliDimuInfoStoreRD.cxx:67
 AliDimuInfoStoreRD.cxx:68
 AliDimuInfoStoreRD.cxx:69
 AliDimuInfoStoreRD.cxx:70
 AliDimuInfoStoreRD.cxx:71
 AliDimuInfoStoreRD.cxx:72
 AliDimuInfoStoreRD.cxx:73
 AliDimuInfoStoreRD.cxx:74
 AliDimuInfoStoreRD.cxx:75
 AliDimuInfoStoreRD.cxx:76
 AliDimuInfoStoreRD.cxx:77
 AliDimuInfoStoreRD.cxx:78
 AliDimuInfoStoreRD.cxx:79
 AliDimuInfoStoreRD.cxx:80
 AliDimuInfoStoreRD.cxx:81
 AliDimuInfoStoreRD.cxx:82
 AliDimuInfoStoreRD.cxx:83
 AliDimuInfoStoreRD.cxx:84
 AliDimuInfoStoreRD.cxx:85
 AliDimuInfoStoreRD.cxx:86
 AliDimuInfoStoreRD.cxx:87
 AliDimuInfoStoreRD.cxx:88
 AliDimuInfoStoreRD.cxx:89
 AliDimuInfoStoreRD.cxx:90
 AliDimuInfoStoreRD.cxx:91
 AliDimuInfoStoreRD.cxx:92
 AliDimuInfoStoreRD.cxx:93
 AliDimuInfoStoreRD.cxx:94
 AliDimuInfoStoreRD.cxx:95
 AliDimuInfoStoreRD.cxx:96
 AliDimuInfoStoreRD.cxx:97
 AliDimuInfoStoreRD.cxx:98
 AliDimuInfoStoreRD.cxx:99
 AliDimuInfoStoreRD.cxx:100
 AliDimuInfoStoreRD.cxx:101
 AliDimuInfoStoreRD.cxx:102
 AliDimuInfoStoreRD.cxx:103
 AliDimuInfoStoreRD.cxx:104
 AliDimuInfoStoreRD.cxx:105
 AliDimuInfoStoreRD.cxx:106
 AliDimuInfoStoreRD.cxx:107
 AliDimuInfoStoreRD.cxx:108
 AliDimuInfoStoreRD.cxx:109
 AliDimuInfoStoreRD.cxx:110
 AliDimuInfoStoreRD.cxx:111
 AliDimuInfoStoreRD.cxx:112
 AliDimuInfoStoreRD.cxx:113
 AliDimuInfoStoreRD.cxx:114
 AliDimuInfoStoreRD.cxx:115
 AliDimuInfoStoreRD.cxx:116
 AliDimuInfoStoreRD.cxx:117
 AliDimuInfoStoreRD.cxx:118
 AliDimuInfoStoreRD.cxx:119
 AliDimuInfoStoreRD.cxx:120
 AliDimuInfoStoreRD.cxx:121
 AliDimuInfoStoreRD.cxx:122
 AliDimuInfoStoreRD.cxx:123
 AliDimuInfoStoreRD.cxx:124
 AliDimuInfoStoreRD.cxx:125
 AliDimuInfoStoreRD.cxx:126