#include "AliAnalysisTaskRhoSparse.h"
#include <TClonesArray.h>
#include <TMath.h>
#include "AliAnalysisManager.h"
#include "AliEmcalJet.h"
#include "AliLog.h"
#include "AliRhoParameter.h"
#include "AliJetContainer.h"
ClassImp(AliAnalysisTaskRhoSparse)
AliAnalysisTaskRhoSparse::AliAnalysisTaskRhoSparse() :
AliAnalysisTaskRhoBase("AliAnalysisTaskRhoSparse"),
fNExclLeadJets(0),
fRhoCMS(0),
fHistOccCorrvsCent(0)
{
}
AliAnalysisTaskRhoSparse::AliAnalysisTaskRhoSparse(const char *name, Bool_t histo) :
AliAnalysisTaskRhoBase(name, histo),
fNExclLeadJets(0),
fRhoCMS(0),
fHistOccCorrvsCent(0)
{
}
void AliAnalysisTaskRhoSparse::UserCreateOutputObjects()
{
if (!fCreateHisto) return;
AliAnalysisTaskRhoBase::UserCreateOutputObjects();
fHistOccCorrvsCent = new TH2F("OccCorrvsCent", "OccCorrvsCent", 101, -1, 100, 2000, 0 , 2);
fOutput->Add(fHistOccCorrvsCent);
}
Bool_t AliAnalysisTaskRhoSparse::IsJetOverlapping(AliEmcalJet* jet1, AliEmcalJet* jet2)
{
for (Int_t i = 0; i < jet1->GetNumberOfTracks(); ++i)
{
Int_t jet1Track = jet1->TrackAt(i);
for (Int_t j = 0; j < jet2->GetNumberOfTracks(); ++j)
{
Int_t jet2Track = jet2->TrackAt(j);
if (jet1Track == jet2Track)
return kTRUE;
}
}
return kFALSE;
}
Bool_t AliAnalysisTaskRhoSparse::IsJetSignal(AliEmcalJet* jet)
{
if(jet->Pt()>5){
return kTRUE;
}else{
return kFALSE;
}
}
Bool_t AliAnalysisTaskRhoSparse::Run()
{
fOutRho->SetVal(0);
if (fOutRhoScaled)
fOutRhoScaled->SetVal(0);
if (!fJets)
return kFALSE;
const Int_t Njets = fJets->GetEntries();
AliJetContainer *sigjets = static_cast<AliJetContainer*>(fJetCollArray.At(1));
Int_t NjetsSig = 0;
if (sigjets) NjetsSig = sigjets->GetNJets();
Int_t maxJetIds[] = {-1, -1};
Float_t maxJetPts[] = { 0, 0};
if (fNExclLeadJets > 0) {
for (Int_t ij = 0; ij < Njets; ++ij) {
AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(ij));
if (!jet) {
AliError(Form("%s: Could not receive jet %d", GetName(), ij));
continue;
}
if (!AcceptJet(jet))
continue;
if (jet->Pt() > maxJetPts[0]) {
maxJetPts[1] = maxJetPts[0];
maxJetIds[1] = maxJetIds[0];
maxJetPts[0] = jet->Pt();
maxJetIds[0] = ij;
} else if (jet->Pt() > maxJetPts[1]) {
maxJetPts[1] = jet->Pt();
maxJetIds[1] = ij;
}
}
if (fNExclLeadJets < 2) {
maxJetIds[1] = -1;
maxJetPts[1] = 0;
}
}
static Double_t rhovec[999];
Int_t NjetAcc = 0;
Double_t TotaljetArea=0;
Double_t TotaljetAreaPhys=0;
for (Int_t iJets = 0; iJets < Njets; ++iJets) {
if (iJets == maxJetIds[0] || iJets == maxJetIds[1])
continue;
AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(iJets));
if (!jet) {
AliError(Form("%s: Could not receive jet %d", GetName(), iJets));
continue;
}
TotaljetArea+=jet->Area();
if(jet->Pt()>0.1){
TotaljetAreaPhys+=jet->Area();
}
if (!AcceptJet(jet))
continue;
Bool_t isOverlapping = kFALSE;
if (sigjets) {
for(Int_t j=0;j<NjetsSig;j++)
{
AliEmcalJet* signalJet = sigjets->GetAcceptJet(j);
if(!signalJet)
continue;
if(!IsJetSignal(signalJet))
continue;
if(IsJetOverlapping(signalJet, jet))
{
isOverlapping = kTRUE;
break;
}
}
}
if(isOverlapping)
continue;
if(jet->Pt()>0.1){
rhovec[NjetAcc] = jet->Pt() / jet->Area();
++NjetAcc;
}
}
Double_t OccCorr=0.0;
if(TotaljetArea>0) OccCorr=TotaljetAreaPhys/TotaljetArea;
if (fCreateHisto)
fHistOccCorrvsCent->Fill(fCent, OccCorr);
if (NjetAcc > 0) {
Double_t rho = TMath::Median(NjetAcc, rhovec);
if(fRhoCMS){
rho = rho * OccCorr;
}
fOutRho->SetVal(rho);
if (fOutRhoScaled) {
Double_t rhoScaled = rho * GetScaleFactor(fCent);
fOutRhoScaled->SetVal(rhoScaled);
}
}
return kTRUE;
}
AliAnalysisTaskRhoSparse.cxx:1 AliAnalysisTaskRhoSparse.cxx:2 AliAnalysisTaskRhoSparse.cxx:3 AliAnalysisTaskRhoSparse.cxx:4 AliAnalysisTaskRhoSparse.cxx:5 AliAnalysisTaskRhoSparse.cxx:6 AliAnalysisTaskRhoSparse.cxx:7 AliAnalysisTaskRhoSparse.cxx:8 AliAnalysisTaskRhoSparse.cxx:9 AliAnalysisTaskRhoSparse.cxx:10 AliAnalysisTaskRhoSparse.cxx:11 AliAnalysisTaskRhoSparse.cxx:12 AliAnalysisTaskRhoSparse.cxx:13 AliAnalysisTaskRhoSparse.cxx:14 AliAnalysisTaskRhoSparse.cxx:15 AliAnalysisTaskRhoSparse.cxx:16 AliAnalysisTaskRhoSparse.cxx:17 AliAnalysisTaskRhoSparse.cxx:18 AliAnalysisTaskRhoSparse.cxx:19 AliAnalysisTaskRhoSparse.cxx:20 AliAnalysisTaskRhoSparse.cxx:21 AliAnalysisTaskRhoSparse.cxx:22 AliAnalysisTaskRhoSparse.cxx:23 AliAnalysisTaskRhoSparse.cxx:24 AliAnalysisTaskRhoSparse.cxx:25 AliAnalysisTaskRhoSparse.cxx:26 AliAnalysisTaskRhoSparse.cxx:27 AliAnalysisTaskRhoSparse.cxx:28 AliAnalysisTaskRhoSparse.cxx:29 AliAnalysisTaskRhoSparse.cxx:30 AliAnalysisTaskRhoSparse.cxx:31 AliAnalysisTaskRhoSparse.cxx:32 AliAnalysisTaskRhoSparse.cxx:33 AliAnalysisTaskRhoSparse.cxx:34 AliAnalysisTaskRhoSparse.cxx:35 AliAnalysisTaskRhoSparse.cxx:36 AliAnalysisTaskRhoSparse.cxx:37 AliAnalysisTaskRhoSparse.cxx:38 AliAnalysisTaskRhoSparse.cxx:39 AliAnalysisTaskRhoSparse.cxx:40 AliAnalysisTaskRhoSparse.cxx:41 AliAnalysisTaskRhoSparse.cxx:42 AliAnalysisTaskRhoSparse.cxx:43 AliAnalysisTaskRhoSparse.cxx:44 AliAnalysisTaskRhoSparse.cxx:45 AliAnalysisTaskRhoSparse.cxx:46 AliAnalysisTaskRhoSparse.cxx:47 AliAnalysisTaskRhoSparse.cxx:48 AliAnalysisTaskRhoSparse.cxx:49 AliAnalysisTaskRhoSparse.cxx:50 AliAnalysisTaskRhoSparse.cxx:51 AliAnalysisTaskRhoSparse.cxx:52 AliAnalysisTaskRhoSparse.cxx:53 AliAnalysisTaskRhoSparse.cxx:54 AliAnalysisTaskRhoSparse.cxx:55 AliAnalysisTaskRhoSparse.cxx:56 AliAnalysisTaskRhoSparse.cxx:57 AliAnalysisTaskRhoSparse.cxx:58 AliAnalysisTaskRhoSparse.cxx:59 AliAnalysisTaskRhoSparse.cxx:60 AliAnalysisTaskRhoSparse.cxx:61 AliAnalysisTaskRhoSparse.cxx:62 AliAnalysisTaskRhoSparse.cxx:63 AliAnalysisTaskRhoSparse.cxx:64 AliAnalysisTaskRhoSparse.cxx:65 AliAnalysisTaskRhoSparse.cxx:66 AliAnalysisTaskRhoSparse.cxx:67 AliAnalysisTaskRhoSparse.cxx:68 AliAnalysisTaskRhoSparse.cxx:69 AliAnalysisTaskRhoSparse.cxx:70 AliAnalysisTaskRhoSparse.cxx:71 AliAnalysisTaskRhoSparse.cxx:72 AliAnalysisTaskRhoSparse.cxx:73 AliAnalysisTaskRhoSparse.cxx:74 AliAnalysisTaskRhoSparse.cxx:75 AliAnalysisTaskRhoSparse.cxx:76 AliAnalysisTaskRhoSparse.cxx:77 AliAnalysisTaskRhoSparse.cxx:78 AliAnalysisTaskRhoSparse.cxx:79 AliAnalysisTaskRhoSparse.cxx:80 AliAnalysisTaskRhoSparse.cxx:81 AliAnalysisTaskRhoSparse.cxx:82 AliAnalysisTaskRhoSparse.cxx:83 AliAnalysisTaskRhoSparse.cxx:84 AliAnalysisTaskRhoSparse.cxx:85 AliAnalysisTaskRhoSparse.cxx:86 AliAnalysisTaskRhoSparse.cxx:87 AliAnalysisTaskRhoSparse.cxx:88 AliAnalysisTaskRhoSparse.cxx:89 AliAnalysisTaskRhoSparse.cxx:90 AliAnalysisTaskRhoSparse.cxx:91 AliAnalysisTaskRhoSparse.cxx:92 AliAnalysisTaskRhoSparse.cxx:93 AliAnalysisTaskRhoSparse.cxx:94 AliAnalysisTaskRhoSparse.cxx:95 AliAnalysisTaskRhoSparse.cxx:96 AliAnalysisTaskRhoSparse.cxx:97 AliAnalysisTaskRhoSparse.cxx:98 AliAnalysisTaskRhoSparse.cxx:99 AliAnalysisTaskRhoSparse.cxx:100 AliAnalysisTaskRhoSparse.cxx:101 AliAnalysisTaskRhoSparse.cxx:102 AliAnalysisTaskRhoSparse.cxx:103 AliAnalysisTaskRhoSparse.cxx:104 AliAnalysisTaskRhoSparse.cxx:105 AliAnalysisTaskRhoSparse.cxx:106 AliAnalysisTaskRhoSparse.cxx:107 AliAnalysisTaskRhoSparse.cxx:108 AliAnalysisTaskRhoSparse.cxx:109 AliAnalysisTaskRhoSparse.cxx:110 AliAnalysisTaskRhoSparse.cxx:111 AliAnalysisTaskRhoSparse.cxx:112 AliAnalysisTaskRhoSparse.cxx:113 AliAnalysisTaskRhoSparse.cxx:114 AliAnalysisTaskRhoSparse.cxx:115 AliAnalysisTaskRhoSparse.cxx:116 AliAnalysisTaskRhoSparse.cxx:117 AliAnalysisTaskRhoSparse.cxx:118 AliAnalysisTaskRhoSparse.cxx:119 AliAnalysisTaskRhoSparse.cxx:120 AliAnalysisTaskRhoSparse.cxx:121 AliAnalysisTaskRhoSparse.cxx:122 AliAnalysisTaskRhoSparse.cxx:123 AliAnalysisTaskRhoSparse.cxx:124 AliAnalysisTaskRhoSparse.cxx:125 AliAnalysisTaskRhoSparse.cxx:126 AliAnalysisTaskRhoSparse.cxx:127 AliAnalysisTaskRhoSparse.cxx:128 AliAnalysisTaskRhoSparse.cxx:129 AliAnalysisTaskRhoSparse.cxx:130 AliAnalysisTaskRhoSparse.cxx:131 AliAnalysisTaskRhoSparse.cxx:132 AliAnalysisTaskRhoSparse.cxx:133 AliAnalysisTaskRhoSparse.cxx:134 AliAnalysisTaskRhoSparse.cxx:135 AliAnalysisTaskRhoSparse.cxx:136 AliAnalysisTaskRhoSparse.cxx:137 AliAnalysisTaskRhoSparse.cxx:138 AliAnalysisTaskRhoSparse.cxx:139 AliAnalysisTaskRhoSparse.cxx:140 AliAnalysisTaskRhoSparse.cxx:141 AliAnalysisTaskRhoSparse.cxx:142 AliAnalysisTaskRhoSparse.cxx:143 AliAnalysisTaskRhoSparse.cxx:144 AliAnalysisTaskRhoSparse.cxx:145 AliAnalysisTaskRhoSparse.cxx:146 AliAnalysisTaskRhoSparse.cxx:147 AliAnalysisTaskRhoSparse.cxx:148 AliAnalysisTaskRhoSparse.cxx:149 AliAnalysisTaskRhoSparse.cxx:150 AliAnalysisTaskRhoSparse.cxx:151 AliAnalysisTaskRhoSparse.cxx:152 AliAnalysisTaskRhoSparse.cxx:153 AliAnalysisTaskRhoSparse.cxx:154 AliAnalysisTaskRhoSparse.cxx:155 AliAnalysisTaskRhoSparse.cxx:156 AliAnalysisTaskRhoSparse.cxx:157 AliAnalysisTaskRhoSparse.cxx:158 AliAnalysisTaskRhoSparse.cxx:159 AliAnalysisTaskRhoSparse.cxx:160 AliAnalysisTaskRhoSparse.cxx:161 AliAnalysisTaskRhoSparse.cxx:162 AliAnalysisTaskRhoSparse.cxx:163 AliAnalysisTaskRhoSparse.cxx:164 AliAnalysisTaskRhoSparse.cxx:165 AliAnalysisTaskRhoSparse.cxx:166 AliAnalysisTaskRhoSparse.cxx:167 AliAnalysisTaskRhoSparse.cxx:168 AliAnalysisTaskRhoSparse.cxx:169 AliAnalysisTaskRhoSparse.cxx:170 AliAnalysisTaskRhoSparse.cxx:171 AliAnalysisTaskRhoSparse.cxx:172 AliAnalysisTaskRhoSparse.cxx:173 AliAnalysisTaskRhoSparse.cxx:174 AliAnalysisTaskRhoSparse.cxx:175 AliAnalysisTaskRhoSparse.cxx:176 AliAnalysisTaskRhoSparse.cxx:177 AliAnalysisTaskRhoSparse.cxx:178 AliAnalysisTaskRhoSparse.cxx:179 AliAnalysisTaskRhoSparse.cxx:180 AliAnalysisTaskRhoSparse.cxx:181 AliAnalysisTaskRhoSparse.cxx:182 AliAnalysisTaskRhoSparse.cxx:183 AliAnalysisTaskRhoSparse.cxx:184 AliAnalysisTaskRhoSparse.cxx:185 AliAnalysisTaskRhoSparse.cxx:186 AliAnalysisTaskRhoSparse.cxx:187 AliAnalysisTaskRhoSparse.cxx:188 AliAnalysisTaskRhoSparse.cxx:189 AliAnalysisTaskRhoSparse.cxx:190 AliAnalysisTaskRhoSparse.cxx:191 AliAnalysisTaskRhoSparse.cxx:192 AliAnalysisTaskRhoSparse.cxx:193 AliAnalysisTaskRhoSparse.cxx:194 AliAnalysisTaskRhoSparse.cxx:195 AliAnalysisTaskRhoSparse.cxx:196 AliAnalysisTaskRhoSparse.cxx:197 AliAnalysisTaskRhoSparse.cxx:198 AliAnalysisTaskRhoSparse.cxx:199 AliAnalysisTaskRhoSparse.cxx:200 AliAnalysisTaskRhoSparse.cxx:201 AliAnalysisTaskRhoSparse.cxx:202 AliAnalysisTaskRhoSparse.cxx:203 AliAnalysisTaskRhoSparse.cxx:204 AliAnalysisTaskRhoSparse.cxx:205 AliAnalysisTaskRhoSparse.cxx:206 AliAnalysisTaskRhoSparse.cxx:207