//____________________________________________________________________
//
// W -> q q decay
// 
//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: AtlWDecayJJ.cxx,v 1.8 2014/02/18 12:19:55 kind Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef ATLAS_AtlWDecayJJ
#include <AtlWDecayJJ.h>
#endif
#include <iostream>

using namespace std;

#ifndef __CINT__
ClassImp(AtlWDecayJJ);
#endif

//____________________________________________________________________

AtlWDecayJJ::AtlWDecayJJ() {
    //
    // Default constructor
    //
    fJet1 = new HepJet;
    fJet2 = new HepJet;
}

//____________________________________________________________________

AtlWDecayJJ::AtlWDecayJJ(Int_t Id, Float_t Px_W, Float_t Py_W,
			 Float_t Pz_W, Float_t E_W,
			 AtlJet *jet1_orig, AtlJet *jet2_orig,
			 Float_t Px_j1, Float_t Py_j1, Float_t Pz_j1, Float_t E_j1,
			 Float_t Px_j2, Float_t Py_j2, Float_t Pz_j2, Float_t E_j2,
			 ProductionMode mode) :
    HepWDecay(Id, Px_W, Py_W, Pz_W, E_W,
	      (TObject*)jet1_orig, (TObject*)jet2_orig, mode) {
    //
    // Normal constructor
    //
    // The reference to the (unchanged) jets used for the W
    // reconstruction is given by jet1_orig and jet2_orig.
    // The compoments Px_j1, Px_j2, ... denote the 4-momentum
    // components of the jets improved by the W reconstruction.
    //
    fJet1 = new HepJet(1, E_j1, Px_j1, Py_j1, Pz_j1);
    fJet2 = new HepJet(2, E_j2, Px_j2, Py_j2, Pz_j2);
}

//____________________________________________________________________

AtlWDecayJJ::~AtlWDecayJJ() {
    //
    // Default destructor
    //
    delete fJet1;
    delete fJet2;    
}

//____________________________________________________________________

void AtlWDecayJJ::Clear(Option_t *option) {
    //
    // Clear this object
    //
    HepWDecay::Clear(option);
    fJet1->Clear(option);
    fJet2->Clear(option);
}

//____________________________________________________________________

void AtlWDecayJJ::Print(Option_t *option) {
    //
    // Print object information
    //
    cout << endl << endl
	 << "Hadronic W-boson decay #" << fId << endl
	 << "============================" << endl
	 << "Kinematic fit result: chi^2/NDoF = "
	 << fChi2 << " / " << fNDoF << "   Prob = " << fProb << endl << endl
	 << "Reconstructed W-boson:" << endl;
    HepParticle::Print();
    cout << endl
	 << "Outgoing (original) jet1:" << endl;
    GetJet1_Orig()->Print();
    cout << "Improved jet1 4-momentum: ";
    HepParticle::PrintLorentzVector(GetJet1()->P());
    cout << endl
	 << "Outgoing (original) jet2:" << endl;
    GetJet2_Orig()->Print();
    cout << "Improved jet2 4-momentum: ";
    HepParticle::PrintLorentzVector(GetJet2()->P());
    cout << endl << endl;
}
    
 AtlWDecayJJ.cxx:1
 AtlWDecayJJ.cxx:2
 AtlWDecayJJ.cxx:3
 AtlWDecayJJ.cxx:4
 AtlWDecayJJ.cxx:5
 AtlWDecayJJ.cxx:6
 AtlWDecayJJ.cxx:7
 AtlWDecayJJ.cxx:8
 AtlWDecayJJ.cxx:9
 AtlWDecayJJ.cxx:10
 AtlWDecayJJ.cxx:11
 AtlWDecayJJ.cxx:12
 AtlWDecayJJ.cxx:13
 AtlWDecayJJ.cxx:14
 AtlWDecayJJ.cxx:15
 AtlWDecayJJ.cxx:16
 AtlWDecayJJ.cxx:17
 AtlWDecayJJ.cxx:18
 AtlWDecayJJ.cxx:19
 AtlWDecayJJ.cxx:20
 AtlWDecayJJ.cxx:21
 AtlWDecayJJ.cxx:22
 AtlWDecayJJ.cxx:23
 AtlWDecayJJ.cxx:24
 AtlWDecayJJ.cxx:25
 AtlWDecayJJ.cxx:26
 AtlWDecayJJ.cxx:27
 AtlWDecayJJ.cxx:28
 AtlWDecayJJ.cxx:29
 AtlWDecayJJ.cxx:30
 AtlWDecayJJ.cxx:31
 AtlWDecayJJ.cxx:32
 AtlWDecayJJ.cxx:33
 AtlWDecayJJ.cxx:34
 AtlWDecayJJ.cxx:35
 AtlWDecayJJ.cxx:36
 AtlWDecayJJ.cxx:37
 AtlWDecayJJ.cxx:38
 AtlWDecayJJ.cxx:39
 AtlWDecayJJ.cxx:40
 AtlWDecayJJ.cxx:41
 AtlWDecayJJ.cxx:42
 AtlWDecayJJ.cxx:43
 AtlWDecayJJ.cxx:44
 AtlWDecayJJ.cxx:45
 AtlWDecayJJ.cxx:46
 AtlWDecayJJ.cxx:47
 AtlWDecayJJ.cxx:48
 AtlWDecayJJ.cxx:49
 AtlWDecayJJ.cxx:50
 AtlWDecayJJ.cxx:51
 AtlWDecayJJ.cxx:52
 AtlWDecayJJ.cxx:53
 AtlWDecayJJ.cxx:54
 AtlWDecayJJ.cxx:55
 AtlWDecayJJ.cxx:56
 AtlWDecayJJ.cxx:57
 AtlWDecayJJ.cxx:58
 AtlWDecayJJ.cxx:59
 AtlWDecayJJ.cxx:60
 AtlWDecayJJ.cxx:61
 AtlWDecayJJ.cxx:62
 AtlWDecayJJ.cxx:63
 AtlWDecayJJ.cxx:64
 AtlWDecayJJ.cxx:65
 AtlWDecayJJ.cxx:66
 AtlWDecayJJ.cxx:67
 AtlWDecayJJ.cxx:68
 AtlWDecayJJ.cxx:69
 AtlWDecayJJ.cxx:70
 AtlWDecayJJ.cxx:71
 AtlWDecayJJ.cxx:72
 AtlWDecayJJ.cxx:73
 AtlWDecayJJ.cxx:74
 AtlWDecayJJ.cxx:75
 AtlWDecayJJ.cxx:76
 AtlWDecayJJ.cxx:77
 AtlWDecayJJ.cxx:78
 AtlWDecayJJ.cxx:79
 AtlWDecayJJ.cxx:80
 AtlWDecayJJ.cxx:81
 AtlWDecayJJ.cxx:82
 AtlWDecayJJ.cxx:83
 AtlWDecayJJ.cxx:84
 AtlWDecayJJ.cxx:85
 AtlWDecayJJ.cxx:86
 AtlWDecayJJ.cxx:87
 AtlWDecayJJ.cxx:88
 AtlWDecayJJ.cxx:89
 AtlWDecayJJ.cxx:90
 AtlWDecayJJ.cxx:91
 AtlWDecayJJ.cxx:92
 AtlWDecayJJ.cxx:93
 AtlWDecayJJ.cxx:94
 AtlWDecayJJ.cxx:95
 AtlWDecayJJ.cxx:96
 AtlWDecayJJ.cxx:97
 AtlWDecayJJ.cxx:98
 AtlWDecayJJ.cxx:99