//____________________________________________________________________
//
// gamma -> e+e- conversion
// 
//  
// Author: Sebastian Beumler <mailto: beumler@physik.hu-berlin.de>
// Update: $Id: AtlPhotonConv.cxx,v 1.3 2010/09/04 12:34:22 herrberg Exp $
// Copyright: 2010 (C) Sebastian Beumler
//
#ifndef ATLAS_AtlPhotonConv
#include <AtlPhotonConv.h>
#endif
#include <iostream>

using namespace std;

#ifndef __CINT__
ClassImp(AtlPhotonConv);
#endif

//____________________________________________________________________

AtlPhotonConv::AtlPhotonConv() {
  //
  // Default constructor
  //
}

//____________________________________________________________________

AtlPhotonConv::AtlPhotonConv(Int_t Id, Float_t Px, Float_t Py, Float_t Pz,
			   Float_t E, AtlIDTrack *ePlus, AtlIDTrack *eMinus,
			   HepVertex *DecayVtx, HepVertex *PrimaryVtx,
			   HepParticle ReFitePlus, HepParticle ReFiteMinus) :
    Hep2BodyDecay(Id, Px, Py, Pz, E, (TObject*)ePlus, (TObject*)eMinus,
		  DecayVtx, PrimaryVtx, ReFitePlus, ReFiteMinus) {
    //
    // Normal constructor
    //
    fPdgCode = 22;
}

//____________________________________________________________________


AtlPhotonConv::~AtlPhotonConv(){
    //
    // Default destructor
    //
}


//____________________________________________________________________

void AtlPhotonConv::Clear(Option_t *option) {
    //
    // Clear this object
    //
    Hep2BodyDecay::Clear(option);
}

//____________________________________________________________________

void AtlPhotonConv::Print(Option_t *option) {
    //
    // Print K0s decay information
    //
    // Options available:
    //    "VTX"   - Print information about vtx and outgoing tracks
    //    "REFIT" - Print information about refitted outgoing momenta
    //    "ALL"   - Print all
    //
    TString opt = option;
    opt.ToLower();

    // Print header
    if ( !opt.Contains("nohead") ) PrintHeader();

    // Print
    cout.setf(ios::showpoint | ios::fixed, ios::floatfield);
    cout.precision(3);
    cout.width(4);  cout << fId;
    cout.width(8);  cout << GetDecayLength();
    cout.width(8);  cout << GetLifeTime();
    cout.width(10); cout << Pmag();
    cout.width(12); cout << M("rec");
    cout.width(12); cout << Theta()*180/TMath::Pi();
    cout.width(11); cout << Phi()*180/TMath::Pi();
    cout.width(8);  cout << Eta();
    cout.width(5);  cout << GetVtx()->GetId();
    cout.width(5);  cout << GetePlus()->GetId();
    cout.width(5);  cout << GeteMinus()->GetId();
    cout << endl;

    // Print footer
    if ( !opt.Contains("nohead") ) PrintFooter();

    // Print vertex info
    if ( opt.Contains("vtx") || opt.Contains("all") ) {
	cout << endl << "Conversion  vertex:" << endl;
	GetVtx()->Print("daughters");
    }

    // Print refitted daughters
    if ( opt.Contains("refit") || opt.Contains("all") ) {
	cout << endl << "Refitted daughters:" << endl;
	HepParticle::PrintHeader();
	fReFitDaughter1.Print("nohead");
	fReFitDaughter2.Print("nohead");
	HepParticle::PrintFooter();
    }
    
}

//____________________________________________________________________

void AtlPhotonConv::PrintHeader() {
    //
    // Print information header
    //
    cout << "----------------------------------------------------------------------------------------"
	 << endl
	 << " Id   d (cm)  t (ps)   P (GeV)  Mrec (GeV) Theta (deg)  Phi (deg)     Eta  Vtx  Pi+  Pi-"
	 << endl
	 << "----------------------------------------------------------------------------------------"
	 << endl;
}

//____________________________________________________________________

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