X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=JETAN%2FAliJetESDReader.cxx;h=547730358ee52fc59096e7a2524858c0ed12e09f;hb=1c21a0e7757172080f7678f90cd6ca8e78982e42;hp=055f1e7467ce731bb900da809d1a241b26dfabd3;hpb=8838ab7ab4663d7ad4117ce1b692143175fa0d4e;p=u%2Fmrichter%2FAliRoot.git diff --git a/JETAN/AliJetESDReader.cxx b/JETAN/AliJetESDReader.cxx index 055f1e7467c..547730358ee 100755 --- a/JETAN/AliJetESDReader.cxx +++ b/JETAN/AliJetESDReader.cxx @@ -45,8 +45,9 @@ #include "AliESD.h" #include "AliESDtrack.h" #include "AliJetDummyGeo.h" -#include "AliJetFillUnitArrayTracks.h" -#include "AliJetFillUnitArrayEMCalDigits.h" +#include "AliJetESDFillUnitArrayTracks.h" +#include "AliJetESDFillUnitArrayEMCalDigits.h" +#include "AliJetHadronCorrectionv1.h" #include "AliJetUnitArray.h" #include "AliAnalysisTask.h" @@ -55,9 +56,6 @@ ClassImp(AliJetESDReader) AliJetESDReader::AliJetESDReader(): AliJetReader(), fGeom(0), - fChain(0x0), - fTree(0x0), - fESD(0x0), fHadCorr(0x0), fTpcGrid(0x0), fEmcalGrid(0x0), @@ -66,10 +64,10 @@ AliJetESDReader::AliJetESDReader(): fGrid2(0), fGrid3(0), fGrid4(0), - fPtCut(0), - fHCorrection(0), - fECorrection(0), - fEFlag(kFALSE), + fApplyElectronCorrection(kFALSE), + fApplyMIPCorrection(kTRUE), + fApplyFractionHadronicCorrection(kFALSE), + fFractionHadronicCorrection(0.3), fNumUnits(0), fDebug(0), fMass(0), @@ -79,7 +77,6 @@ AliJetESDReader::AliJetESDReader(): fDZ(0), fNeta(0), fNphi(0), - fArrayInitialised(0), fRefArray(0x0), fProcId(kFALSE) { @@ -125,9 +122,7 @@ void AliJetESDReader::OpenInputFiles() if (strstr(name,pattern)){ printf("Adding %s\n",name); - char path[256]; - sprintf(path,"%s/%s/AliESDs.root",dirName,name); - fChain->AddFile(path); + fChain->AddFile(Form("%s/%s/AliESDs.root",dirName,name)); a++; } } @@ -151,8 +146,70 @@ void AliJetESDReader::OpenInputFiles() } +//__________________________________________________________ +void AliJetESDReader::SetApplyMIPCorrection(Bool_t val) +{ + // + // Set flag to apply MIP correction fApplyMIPCorrection + // - exclusive with fApplyFractionHadronicCorrection + // + + fApplyMIPCorrection = val; + if(fApplyMIPCorrection == kTRUE) + { + SetApplyFractionHadronicCorrection(kFALSE); + printf("Enabling MIP Correction \n"); + } + else + { + printf("Disabling MIP Correction \n"); + } +} + +//__________________________________________________________ +void AliJetESDReader::SetApplyFractionHadronicCorrection(Bool_t val) +{ + // + // Set flag to apply EMC hadronic correction fApplyFractionHadronicCorrection + // - exclusive with fApplyMIPCorrection + // + + fApplyFractionHadronicCorrection = val; + if(fApplyFractionHadronicCorrection == kTRUE) + { + SetApplyMIPCorrection(kFALSE); + printf("Enabling Fraction Hadronic Correction \n"); + } + else + { + printf("Disabling Fraction Hadronic Correction \n"); + } +} + +//__________________________________________________________ +void AliJetESDReader::SetFractionHadronicCorrection(Double_t val) +{ + // + // Set value to fFractionHadronicCorrection (default is 0.3) + // apply EMC hadronic correction fApplyFractionHadronicCorrection + // - exclusive with fApplyMIPCorrection + // + + fFractionHadronicCorrection = val; + if(fFractionHadronicCorrection > 0.0 && fFractionHadronicCorrection <= 1.0) + { + SetApplyFractionHadronicCorrection(kTRUE); + printf("Fraction Hadronic Correction %1.3f \n",fFractionHadronicCorrection); + } + else + { + SetApplyFractionHadronicCorrection(kFALSE); + } +} + + //____________________________________________________________________________ -void AliJetESDReader::SetInputEvent(TObject* esd, TObject* /*aod*/, TObject* /*mc*/) { +void AliJetESDReader::SetInputEvent(const TObject* esd, const TObject* /*aod*/, const TObject* /*mc*/) { // Connect the tree fESD = (AliESDEvent*) esd; } @@ -247,7 +304,7 @@ void AliJetESDReader::CreateTasks(TChain* tree) // Create global reader task for analysis fFillUnitArray = new TTask("fFillUnitArray","Fill unit array jet finder"); // Create a task for to fill the charged particle information - fFillUAFromTracks = new AliJetFillUnitArrayTracks(); + fFillUAFromTracks = new AliJetESDFillUnitArrayTracks(); fFillUAFromTracks->SetReaderHeader(fReaderHeader); fFillUAFromTracks->SetGeom(fGeom); fFillUAFromTracks->SetTPCGrid(fTpcGrid); @@ -260,15 +317,17 @@ void AliJetESDReader::CreateTasks(TChain* tree) fFillUAFromTracks->SetGrid3(fGrid3); fFillUAFromTracks->SetGrid4(fGrid4); } - fFillUAFromTracks->SetHadCorrection(fHCorrection); + fFillUAFromTracks->SetApplyMIPCorrection(fApplyMIPCorrection); fFillUAFromTracks->SetHadCorrector(fHadCorr); // Create a task for to fill the neutral particle information - fFillUAFromEMCalDigits = new AliJetFillUnitArrayEMCalDigits(); + fFillUAFromEMCalDigits = new AliJetESDFillUnitArrayEMCalDigits(); fFillUAFromEMCalDigits->SetReaderHeader(fReaderHeader); fFillUAFromEMCalDigits->SetGeom(fGeom); fFillUAFromEMCalDigits->SetTPCGrid(fTpcGrid); fFillUAFromEMCalDigits->SetEMCalGrid(fEmcalGrid); - fFillUAFromEMCalDigits->SetEleCorrection(fECorrection); + fFillUAFromEMCalDigits->SetApplyFractionHadronicCorrection(fApplyFractionHadronicCorrection); + fFillUAFromEMCalDigits->SetFractionHadronicCorrection(fFractionHadronicCorrection); + fFillUAFromEMCalDigits->SetApplyElectronCorrection(fApplyElectronCorrection); // Add the task to global task fFillUnitArray->Add(fFillUAFromTracks); fFillUnitArray->Add(fFillUAFromEMCalDigits); @@ -289,7 +348,6 @@ Bool_t AliJetESDReader::ExecTasks(Bool_t procid, TRefArray* refArray) fProcId = procid; fRefArray = refArray; - vector vtmp(3); // clear momentum array ClearArray(); @@ -370,7 +428,7 @@ void AliJetESDReader::InitParameters() { // Initialise parameters fOpt = fReaderHeader->GetDetector(); - fHadCorr = 0; // For hadron correction + // fHadCorr = 0; // For hadron correction if(fEFlag==kFALSE){ if(fOpt==0 || fOpt==1) fECorrection = 0; // For electron correction @@ -446,15 +504,6 @@ void AliJetESDReader::InitUnitArray() fGrid4->SetIndexIJ(); n4 = fGrid4->GetNEntries(); - if(fDebug>1) - { - cout << "n0 cells: " << n0 << "phimin0: " << phimin0 << ", phimax0: " << phimax0 << endl; - cout << "n1 cells: " << n1 << "phimin1: " << phimin1 << ", phimax1: " << phimax1 << endl; - cout << "n2 cells: " << n2 << "phimin2: " << phimin2 << ", phimax2: " << phimax2 << endl; - cout << "n3 cells: " << n3 << "phimin3: " << phimin3 << ", phimax3: " << phimax3 << endl; - cout << "n4 cells: " << n4 << "phimin4: " << phimin4 << ", phimax4: " << phimax4 << endl; - } - nGaps = n0+n1+n2+n3+n4; } @@ -483,43 +532,43 @@ void AliJetESDReader::InitUnitArray() if(nBin>=fNumUnits+nElements && nBinGetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements),phi,eta); + Float_t phi0 = eta = 0.; + fGrid0->GetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements),phi0,eta); Deta = fGrid0->GetDeta(); Dphi = fGrid0->GetDphi(); - new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); + new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi0,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); } else if(nBin>=fNumUnits+nElements+n0 && nBinGetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0),phi,eta); + Float_t phi0 = eta = 0.; + fGrid1->GetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0),phi0,eta); Deta = fGrid1->GetDeta(); Dphi = fGrid1->GetDphi(); - new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); + new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi0,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); } else if(nBin>=fNumUnits+nElements+n0+n1 && nBinGetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1),phi,eta); + Float_t phi0 = eta = 0.; + fGrid2->GetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1),phi0,eta); Deta = fGrid2->GetDeta(); Dphi = fGrid2->GetDphi(); - new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); + new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi0,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); } else if(nBin>=fNumUnits+nElements+n0+n1+n2 && nBinGetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1+n2),phi,eta); + Float_t phi0 = eta = 0.; + fGrid3->GetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1+n2),phi0,eta); Deta = fGrid3->GetDeta(); Dphi = fGrid3->GetDphi(); - new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); + new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi0,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); } else if(nBin>=fNumUnits+nElements+n0+n1+n2+n3 && nBinGetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1+n2+n3),phi,eta); + Float_t phi0 = eta = 0.; + fGrid4->GetEtaPhiFromIndex2(nBin+1-(fNumUnits+nElements+n0+n1+n2+n3),phi0,eta); Deta = fGrid4->GetDeta(); Dphi = fGrid4->GetDphi(); - new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); + new ((*fUnitArray)[nBin]) AliJetUnitArray(nBin,0,eta,phi0,0.,Deta,Dphi,kTpc,kOutJet,kPtSmaller,kPtSmaller,kBad,0.,-1); } } } // end if(fDZ)