//____________________________________________________________________
//
// Atlas energy sums in pp collision events
//
// For details of the reconstruction, in particular that of Et_miss
// see the Atlas TWiki pages
// BEGIN_HTML<a href="https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EtMiss">https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EtMiss</a> END_HTML
//
//
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: AtlEnergySum.cxx,v 1.20 2012/02/03 10:26:15 uprosper Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef ATLAS_AtlEnergySum
#include <AtlEnergySum.h>
#endif
#include <iostream>
#include <TString.h>

using namespace std;

#ifndef __CINT__
ClassImp(AtlEnergySum);
#endif

//____________________________________________________________________

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

//____________________________________________________________________

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

//____________________________________________________________________

void AtlEnergySum::Clear(Option_t *option) {
  //
  // Clear this object
  //
  HepEnergySum::Clear(option);
  fRefFinalSumEt = 0.;
  fRefFinalMissingEt.Set(0., 0.);
  fRefFinalEMSumEt = 0.;
  fRefFinalEMMissingEt.Set(0., 0.);
  fRefFinalEM_etight_SumEt = 0.;
  fRefFinalEM_etight_MissingEt.Set(0., 0.);
  fRefFinalEM_etight_SumEt_CellOut = 0.;
  fRefFinalEM_etight_MissingEt_CellOut.Set(0., 0.);
  fRefFinalEM_etight_SumEt_SoftJets = 0.;
  fRefFinalEM_etight_MissingEt_SoftJets.Set(0., 0.);
  fRefFinalEM_etightpp_SumEt = 0.;
  fRefFinalEM_etightpp_MissingEt.Set(0., 0.);
  fRefFinalEM_emedium_SumEt = 0.;
  fRefFinalEM_emedium_MissingEt.Set(0., 0.);
  fRefFinalEM_emediumPP_SumEt = 0.;
  fRefFinalEM_emediumPP_MissingEt.Set(0., 0.);
  
  fRefFinalEM_emedium_SumEt_CellOut = 0.;
  fRefFinalEM_emedium_MissingEt_CellOut.Set(0., 0.);
  fRefFinalEM_emedium_SumEt_SoftJets = 0.;
  fRefFinalEM_emedium_MissingEt_SoftJets.Set(0., 0.);
  fRefFinalEM_eloose_SumEt = 0.;
  fRefFinalEM_eloose_MissingEt.Set(0., 0.);
//   fRefFinalEM_ewtm_sgtop_SumEt = 0.;
//   fRefFinalEM_ewtm_sgtop_MissingEt.Set(0., 0.);
  fSimplifiedRefFinalMissingEt.Set(0., 0.);
  fRefCompositionAntiktEmjesMissingEt.Set(0., 0.);
  fAtlFastSumEt = 0.;
  fAtlFastMissingEt.Set(0., 0.);
  fMCIntSumEt = 0.;
  fMCIntMissingEt.Set(0., 0.);
  fMCNonIntSumEt = 0.;
  fMCNonIntMissingEt.Set(0., 0.);
  fMCIntCentralSumEt = 0.;
  fMCIntCentralMissingEt.Set(0., 0.);
  fMCIntFwdSumEt = 0.;
  fMCIntFwdMissingEt.Set(0., 0.);
  fMCIntOutCoverSumEt = 0.;
  fMCIntOutCoverMissingEt.Set(0., 0.);
  fMCMuonsSumEt = 0.;
  fMCMuonsMissingEt.Set(0., 0.);
}

//____________________________________________________________________

void AtlEnergySum::Print(Option_t *option) const {
    //
    // Print object information
    //
    // Options available:
    //   "MC" - print MC truth information also
    //          (only valid for MC events)
    //
    TString opt = option;
    opt.ToUpper();

    cout.setf(ios::showpoint | ios::fixed, ios::floatfield);
    cout.precision(3);
    cout.width(8);
    cout << endl
	 << "---------------------------------------------------------------------------------------------------" << endl
	 << "Energy Sums                                SumEt (GeV)    |MissingEt| (GeV)    MissingEt_phi (deg)" << endl
	 << "---------------------------------------------------------------------------------------------------" << endl
	 << "Reconstruction (re-fined calib: RefFinalEM_etight) " << fRefFinalEM_etight_SumEt << "             " << RefFinalEM_etight_MissingEt_Mag()
	 << "              " << RefFinalEM_etight_MissingEt_Phi()*TMath::RadToDeg() << endl
	 << "---------------------------------------------------------------------------------------------------" << endl;
    if ( opt.Contains("MC") ) {
	cout << "MC, all non-interacting particles             " << fMCNonIntSumEt
	     << "              " << MCNonIntMissingEt_Mag()
	     << "              " << MCNonIntMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "MC, all interacting particles |eta|<5         " << fMCIntSumEt
	     << "              " << MCIntMissingEt_Mag()
	     << "              " << MCIntMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "MC, all interacting particles |eta|<3.2       " << fMCIntCentralSumEt
	     << "              " << MCIntCentralMissingEt_Mag()
	     << "              " << MCIntCentralMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "MC, all interacting particles 3.2<|eta|<5     " << fMCIntFwdSumEt
	     << "              " << MCIntFwdMissingEt_Mag()
	     << "              " << MCIntFwdMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "MC, all interacting particles 5<|eta|         " << fMCIntOutCoverSumEt
	     << "              " << MCIntOutCoverMissingEt_Mag()
	     << "              " << MCIntOutCoverMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "MC, all muons                                 " << fMCMuonsSumEt
	     << "              " << MCMuonsMissingEt_Mag()
	     << "              " << MCMuonsMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "AtlFast                                       " << fAtlFastSumEt
	     << "              " << AtlFastMissingEt_Mag()
	     << "              " << AtlFastMissingEt_Phi()*TMath::RadToDeg() << endl
	     << "---------------------------------------------------------------------------------------------------" << endl;
    }
}











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