ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, 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.                  *
**************************************************************************/
//
// Debug tree to look at the distribution of the variable we are cutting on
//
//
#ifndef ALIHFEREDUCEDMCPARTICLE_H
#define ALIHFEREDUCEDMCPARTICLE_H

#include <TObject.h>
#include <TMath.h>

class AliHFEreducedMCParticle : public TObject{
 public:
  AliHFEreducedMCParticle();
  AliHFEreducedMCParticle(const AliHFEreducedMCParticle &ref);
  AliHFEreducedMCParticle &operator=(const AliHFEreducedMCParticle &ref);
  ~AliHFEreducedMCParticle() {}
  
  Double_t Pt() const { return TMath::Abs(fSignedPt); }
  Double_t P() const { return fP; }
  Double_t Eta() const { return fEta; }
  Double_t Phi() const { return fPhi; }
  Int_t Charge() const { 
    if(fSignedPt > 0) return 1; 
    else return -1;
  }
  Int_t Pdg() const { return fPdg; }
  Int_t MotherPdg() const { return fMotherPdg; }
  Int_t Source() const { return static_cast<Int_t>(fSource); }
  Int_t GetElectronSource() const { return static_cast<Int_t>(fEleSource); }
  Bool_t IsSignal() const { return fSignal; }
  Double_t RadialProductionVertex() const { return TMath::Abs(fProductionVertex[0]*fProductionVertex[0]+fProductionVertex[1]*fProductionVertex[1]); }
  Double_t VX() const { return fProductionVertex[0]; }
  Double_t VY() const { return fProductionVertex[1]; }
  Double_t VZ() const { return fProductionVertex[2]; }
  Double_t GetMotherVX() const { return fMotherProductionVertex[0]; }
  Double_t GetMotherVY() const { return fMotherProductionVertex[1]; }
  Double_t GetMotherVZ() const { return fMotherProductionVertex[2]; }
  
  void SetSignedPt(Double_t pt, Bool_t positiveCharge){
    double chargesign = positiveCharge ? 1. : -1.;
    fSignedPt = pt * chargesign;
  }
  void SetP(Double_t p) { fP = p; }
  void SetEta(Double_t eta) { fEta = eta; }
  void SetPhi(Double_t phi) { fPhi = phi; }
  void SetPdg(Int_t pdg) { fPdg = pdg; }
  void SetMotherPdg(Int_t pdg) { fMotherPdg = pdg; }
  void SetSource(Int_t source) { fSource = static_cast<Char_t>(source); }
  void SetElectronSource(Int_t source) { fEleSource = static_cast<UChar_t>(source); }
  void SetSignal() { fSignal = kTRUE; }
  void SetProductionVertex(Double_t vx, Double_t vy, Double_t vz) {
    fProductionVertex[0] = vx;
    fProductionVertex[1] = vy;
    fProductionVertex[2] = vz;
  }
  void SetMotherProductionVertex(Double_t vx, Double_t vy, Double_t vz) {
    fMotherProductionVertex[0] = vx;
    fMotherProductionVertex[1] = vy;
    fMotherProductionVertex[2] = vz;
  }
  
 private:
  Double_t  fSignedPt;              // signed pt
  Double_t  fP;                     // p
  Double_t  fEta;                   // eta
  Double_t  fPhi;                   // phi
  Int_t     fPdg;                   // pdg
  Int_t     fMotherPdg;             // mother pdg
  Char_t    fSource;                // source
  Bool_t    fSignal;                // signal
  Double_t  fProductionVertex[3];   // production vertex
  Double_t  fMotherProductionVertex[3];   // production vertex
  UChar_t   fEleSource;             // Electron source (AliHFEmcQA)
  
  ClassDef(AliHFEreducedMCParticle, 2)
  
};
#endif
 AliHFEreducedMCParticle.h:1
 AliHFEreducedMCParticle.h:2
 AliHFEreducedMCParticle.h:3
 AliHFEreducedMCParticle.h:4
 AliHFEreducedMCParticle.h:5
 AliHFEreducedMCParticle.h:6
 AliHFEreducedMCParticle.h:7
 AliHFEreducedMCParticle.h:8
 AliHFEreducedMCParticle.h:9
 AliHFEreducedMCParticle.h:10
 AliHFEreducedMCParticle.h:11
 AliHFEreducedMCParticle.h:12
 AliHFEreducedMCParticle.h:13
 AliHFEreducedMCParticle.h:14
 AliHFEreducedMCParticle.h:15
 AliHFEreducedMCParticle.h:16
 AliHFEreducedMCParticle.h:17
 AliHFEreducedMCParticle.h:18
 AliHFEreducedMCParticle.h:19
 AliHFEreducedMCParticle.h:20
 AliHFEreducedMCParticle.h:21
 AliHFEreducedMCParticle.h:22
 AliHFEreducedMCParticle.h:23
 AliHFEreducedMCParticle.h:24
 AliHFEreducedMCParticle.h:25
 AliHFEreducedMCParticle.h:26
 AliHFEreducedMCParticle.h:27
 AliHFEreducedMCParticle.h:28
 AliHFEreducedMCParticle.h:29
 AliHFEreducedMCParticle.h:30
 AliHFEreducedMCParticle.h:31
 AliHFEreducedMCParticle.h:32
 AliHFEreducedMCParticle.h:33
 AliHFEreducedMCParticle.h:34
 AliHFEreducedMCParticle.h:35
 AliHFEreducedMCParticle.h:36
 AliHFEreducedMCParticle.h:37
 AliHFEreducedMCParticle.h:38
 AliHFEreducedMCParticle.h:39
 AliHFEreducedMCParticle.h:40
 AliHFEreducedMCParticle.h:41
 AliHFEreducedMCParticle.h:42
 AliHFEreducedMCParticle.h:43
 AliHFEreducedMCParticle.h:44
 AliHFEreducedMCParticle.h:45
 AliHFEreducedMCParticle.h:46
 AliHFEreducedMCParticle.h:47
 AliHFEreducedMCParticle.h:48
 AliHFEreducedMCParticle.h:49
 AliHFEreducedMCParticle.h:50
 AliHFEreducedMCParticle.h:51
 AliHFEreducedMCParticle.h:52
 AliHFEreducedMCParticle.h:53
 AliHFEreducedMCParticle.h:54
 AliHFEreducedMCParticle.h:55
 AliHFEreducedMCParticle.h:56
 AliHFEreducedMCParticle.h:57
 AliHFEreducedMCParticle.h:58
 AliHFEreducedMCParticle.h:59
 AliHFEreducedMCParticle.h:60
 AliHFEreducedMCParticle.h:61
 AliHFEreducedMCParticle.h:62
 AliHFEreducedMCParticle.h:63
 AliHFEreducedMCParticle.h:64
 AliHFEreducedMCParticle.h:65
 AliHFEreducedMCParticle.h:66
 AliHFEreducedMCParticle.h:67
 AliHFEreducedMCParticle.h:68
 AliHFEreducedMCParticle.h:69
 AliHFEreducedMCParticle.h:70
 AliHFEreducedMCParticle.h:71
 AliHFEreducedMCParticle.h:72
 AliHFEreducedMCParticle.h:73
 AliHFEreducedMCParticle.h:74
 AliHFEreducedMCParticle.h:75
 AliHFEreducedMCParticle.h:76
 AliHFEreducedMCParticle.h:77
 AliHFEreducedMCParticle.h:78
 AliHFEreducedMCParticle.h:79
 AliHFEreducedMCParticle.h:80
 AliHFEreducedMCParticle.h:81
 AliHFEreducedMCParticle.h:82
 AliHFEreducedMCParticle.h:83
 AliHFEreducedMCParticle.h:84
 AliHFEreducedMCParticle.h:85
 AliHFEreducedMCParticle.h:86
 AliHFEreducedMCParticle.h:87
 AliHFEreducedMCParticle.h:88
 AliHFEreducedMCParticle.h:89
 AliHFEreducedMCParticle.h:90
 AliHFEreducedMCParticle.h:91
 AliHFEreducedMCParticle.h:92