X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGLF%2FtotEt%2FAliAnalysisEt.cxx;h=7e42d329ec399195d77edbc83d39a6013ad9a376;hb=cfe23ff0dc0cb259d07fce1b3a75f085d27841e0;hp=3cf6428b5b9a7a9c1313031df269bd0f3dff2370;hpb=f61cec2f8f413921b65e1f8b97df2559cc1a7255;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGLF/totEt/AliAnalysisEt.cxx b/PWGLF/totEt/AliAnalysisEt.cxx index 3cf6428b5b9..7e42d329ec3 100644 --- a/PWGLF/totEt/AliAnalysisEt.cxx +++ b/PWGLF/totEt/AliAnalysisEt.cxx @@ -23,8 +23,10 @@ #include "TString.h" #include "AliCentrality.h" #include "AliAnalysisEtSelector.h" - - //#include "THnSparse.h" +#include "AliAnalysisEtTrackMatchCorrections.h" +#include "AliAnalysisEtRecEffCorrection.h" +#include "TFile.h" +#include "TVector3.h" using namespace std; ClassImp(AliAnalysisEt); @@ -56,12 +58,17 @@ Float_t AliAnalysisEt::fgRAxis[48]={-2.,-1.,0.,0.0005,0.001,0.0015,0.002,0.0025, AliAnalysisEt::AliAnalysisEt() : AliAnalysisEtCommon() + ,fTmCorrections(0) + ,fReCorrections(0) ,fEventSummaryTree(0) ,fAcceptedTree(0) ,fDepositTree(0) ,fTotEt(0) + ,fTotEtAcc(0) ,fTotNeutralEt(0) + ,fTotNeutralEtAcc(0) ,fTotChargedEt(0) + ,fTotChargedEtAcc(0) ,fMultiplicity(0) ,fChargedMultiplicity(0) ,fNeutralMultiplicity(0) @@ -154,6 +161,8 @@ AliAnalysisEt::AliAnalysisEt() : AliAnalysisEtCommon() AliAnalysisEt::~AliAnalysisEt() {//Destructor + delete fTmCorrections; + delete fReCorrections; if(fDepositTree){ fDepositTree->Clear(); delete fDepositTree; // optional TTree @@ -163,11 +172,18 @@ AliAnalysisEt::~AliAnalysisEt() fEventSummaryTree->Clear(); delete fEventSummaryTree; } + if(fAcceptedTree) + { + fAcceptedTree->Clear(); + delete fAcceptedTree; + } delete fHistEt; //Et spectrum delete fHistNeutralMult; //Neutral multiplicity delete fHistPhivsPtPos; //phi vs pT plot for positive tracks - delete fHistPhivsPtNeg; //phi vs pT plot for negative tracks + delete fHistPhivsPtNeg; //phi vs pT Moplot for negative tracks //delete fCentrality;//this code does not actually own AliCentrality so we don't have to worry about deleting it... we just borrow it... + delete fCutFlow; + delete fSelector; } void AliAnalysisEt::FillOutputList(TList *list) @@ -195,6 +211,11 @@ void AliAnalysisEt::FillOutputList(TList *list) void AliAnalysisEt::Init() {// clear variables, set up cuts and PDG info AliAnalysisEtCommon::Init(); + if(ReadCorrections("calocorrections.root") != 0) + { + // Shouldn't do this, why oh why are exceptions not allowed? + exit(-1); + } ResetEventValues(); } @@ -385,8 +406,11 @@ void AliAnalysisEt::CreateTrees() fEventSummaryTree = new TTree(treename, treename); fEventSummaryTree->Branch("fTotEt",&fTotEt,"fTotEt/D"); + fEventSummaryTree->Branch("fTotEtAcc",&fTotEtAcc,"fTotEtAcc/D"); fEventSummaryTree->Branch("fTotNeutralEt",&fTotNeutralEt,"fTotNeutralEt/D"); + fEventSummaryTree->Branch("fTotNeutralEtAcc",&fTotNeutralEtAcc,"fTotNeutralEtAcc/D"); fEventSummaryTree->Branch("fTotChargedEt",&fTotChargedEt,"fTotChargedEt/D"); + fEventSummaryTree->Branch("fTotChargedEtAcc",&fTotChargedEtAcc,"fTotChargedEtAcc/D"); fEventSummaryTree->Branch("fMultiplicity",&fMultiplicity,"fMultiplicity/I"); fEventSummaryTree->Branch("fChargedMultiplicity",&fChargedMultiplicity,"fChargedMultiplicity/I"); fEventSummaryTree->Branch("fNeutralMultiplicity",&fNeutralMultiplicity,"fNeutralMultiplicity/I"); @@ -540,8 +564,11 @@ void AliAnalysisEt::ResetEventValues() { // clear AliAnalysisEtCommon::ResetEventValues(); fTotEt = 0; + fTotEtAcc = 0; fTotNeutralEt = 0; - fTotChargedEt = 0; + fTotChargedEt = 0; + fTotNeutralEtAcc = 0; + fTotChargedEtAcc = 0; fMultiplicity = 0; fChargedMultiplicity = 0; fNeutralMultiplicity = 0; @@ -642,24 +669,46 @@ void AliAnalysisEt::ResetEventValues() return; } -Double_t AliAnalysisEt::CalculateTransverseEnergy(AliESDCaloCluster* cluster) -{ // based on cluster energy and cluster pos - - Float_t pos[3]; - cluster->GetPosition(pos); - TVector3 cp(pos); - Double_t corrEnergy = 0; - - if(cluster->E() < 1.5) - { - corrEnergy =cluster->E()/(0.51 + 0.02*cluster->E()); - } - else +Int_t AliAnalysisEt::ReadCorrections(TString filename) +{ + TFile *f = TFile::Open(filename, "READ"); + if(f) { - corrEnergy =cluster->E()/(0.51 + 0.02*1.5); + TString det = "Phos"; + if(fHistogramNameSuffix.Contains("Emcal")) + { + det = "Emcal"; + } + cout<<"Histo name suffix "<(f->Get(name)); + if(!fTmCorrections) + { + cout<<"No corrections with name "<(f->Get(name)); + if(!fReCorrections) + { + Printf("Could not load rec eff corrections"); + return -1; + } + return 0; } - //std::cout << "Original energy: " << cluster->E() << ", corrected energy: " << corrEnergy << std::endl; + return -1; +} + +Double_t AliAnalysisEt::CorrectForReconstructionEfficiency(const AliESDCaloCluster& cluster) +{ + Float_t pos[3]; + cluster.GetPosition(pos); + TVector3 cp(pos); + Double_t corrEnergy = fReCorrections->CorrectedEnergy(cluster.E()); - return corrEnergy * TMath::Sin(cp.Theta()); + //std::cout << "Original energy: " << cluster.E() << ", corrected energy: " << corrEnergy << std::endl; + return TMath::Sin(cp.Theta())*corrEnergy; }