#include "AliEmcalJetUtilityConstSubtractor.h"
#include "AliEmcalJet.h"
#include "AliRhoParameter.h"
#include "AliEmcalJetTask.h"
ClassImp(AliEmcalJetUtilityConstSubtractor)
AliEmcalJetUtilityConstSubtractor::AliEmcalJetUtilityConstSubtractor() :
AliEmcalJetUtility(),
fJetsSubName(""),
fParticlesSubName(""),
fUseExternalBkg(kFALSE),
fRhoName(""),
fRhomName(""),
fRho(0),
fRhom(0),
fJetsSub(0x0),
fParticlesSub(0x0),
fRhoParam(0),
fRhomParam(0)
{
}
AliEmcalJetUtilityConstSubtractor::AliEmcalJetUtilityConstSubtractor(const char* name) :
AliEmcalJetUtility(name),
fJetsSubName(""),
fParticlesSubName(""),
fUseExternalBkg(kFALSE),
fRhoName(""),
fRhomName(""),
fRho(0),
fRhom(0),
fJetsSub(0x0),
fParticlesSub(0x0),
fRhoParam(0),
fRhomParam(0)
{
}
AliEmcalJetUtilityConstSubtractor::AliEmcalJetUtilityConstSubtractor(const AliEmcalJetUtilityConstSubtractor &other) :
AliEmcalJetUtility(other),
fJetsSubName(other.fJetsSubName),
fParticlesSubName(other.fParticlesSubName),
fUseExternalBkg(other.fUseExternalBkg),
fRhoName(other.fRhoName),
fRhomName(other.fRhomName),
fRho(other.fRho),
fRhom(other.fRhom),
fJetsSub(other.fJetsSub),
fParticlesSub(other.fParticlesSub),
fRhoParam(other.fRhoParam),
fRhomParam(other.fRhomParam)
{
}
AliEmcalJetUtilityConstSubtractor& AliEmcalJetUtilityConstSubtractor::operator=(const AliEmcalJetUtilityConstSubtractor &other)
{
if (&other == this) return *this;
AliEmcalJetUtility::operator=(other);
fJetsSubName = other.fJetsSubName;
fParticlesSubName = other.fParticlesSubName;
fUseExternalBkg = other.fUseExternalBkg;
fRhoName = other.fRhoName;
fRhomName = other.fRhomName;
fRho = other.fRho;
fRhom = other.fRhom;
fJetsSub = other.fJetsSub;
fParticlesSub = other.fParticlesSub;
fRhoParam = other.fRhoParam;
fRhomParam = other.fRhomParam;
return *this;
}
void AliEmcalJetUtilityConstSubtractor::Init()
{
if (!fJetsSubName.IsNull()) {
if (!(fJetTask->GetEvent()->FindListObject(fJetsSubName)) ) {
fJetsSub = new TClonesArray("AliEmcalJet");
fJetsSub->SetName(fJetsSubName);
fJetTask->GetEvent()->AddObject(fJetsSub);
}
else {
AliError(Form("%s: Object for subtracted jet branch with name %s already in event! Returning", GetName(), fJetsSubName.Data()));
return;
}
}
if (!fParticlesSubName.IsNull()) {
if (!(fJetTask->GetEvent()->FindListObject(fParticlesSubName))) {
fParticlesSub = new TClonesArray("AliEmcalParticle");
fParticlesSub->SetName(fParticlesSubName);
fJetTask->GetEvent()->AddObject(fParticlesSub);
} else {
AliError(Form("%s: Object with name %s already in event! Returning", GetName(), fParticlesSubName.Data()));
return;
}
}
if (!fRhoName.IsNull() && !fRhoParam) {
fRhoParam = dynamic_cast<AliRhoParameter*>(fJetTask->GetEvent()->FindListObject(fRhoName));
if (!fRhoParam) {
AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoName.Data()));
return;
}
}
if (!fRhomName.IsNull() && !fRhomParam) {
fRhomParam = dynamic_cast<AliRhoParameter*>(fJetTask->GetEvent()->FindListObject(fRhomName));
if (!fRhomParam) {
AliError(Form("%s: Could not retrieve rho_m %s!", GetName(), fRhomName.Data()));
return;
}
}
fInit = kTRUE;
}
void AliEmcalJetUtilityConstSubtractor::Prepare(AliFJWrapper& fjw)
{
if (!fInit) return;
if (fRhoParam) fRho = fRhoParam->GetVal();
if (fRhomParam) fRhom = fRhomParam->GetVal();
if (fJetsSub) fJetsSub->Delete();
fjw.SetUseExternalBkg(fUseExternalBkg, fRho, fRhom);
fjw.DoConstituentSubtraction();
}
void AliEmcalJetUtilityConstSubtractor::ProcessJet(AliEmcalJet* , Int_t , AliFJWrapper& )
{
}
void AliEmcalJetUtilityConstSubtractor::Terminate(AliFJWrapper& fjw)
{
if (!fInit) return;
if (!fJetsSub) {
AliWarning(Form("No jet branch to write to for subtracted jets. fJetsSubName: %s", fJetsSubName.Data()));
return;
}
#ifdef FASTJET_VERSION
std::vector<fastjet::PseudoJet> jets_sub;
jets_sub = fjw.GetConstituentSubtrJets();
AliDebug(1,Form("%d constituent subtracted jets found", (Int_t)jets_sub.size()));
for (UInt_t ijet = 0, jetCount = 0; ijet < jets_sub.size(); ++ijet) {
AliEmcalJet *jet_sub = new ((*fJetsSub)[jetCount])
AliEmcalJet(jets_sub[ijet].perp(), jets_sub[ijet].eta(), jets_sub[ijet].phi(), jets_sub[ijet].m());
jet_sub->SetLabel(ijet);
fastjet::PseudoJet area(fjw.GetJetAreaVector(ijet));
jet_sub->SetArea(area.perp());
jet_sub->SetAreaEta(area.eta());
jet_sub->SetAreaPhi(area.phi());
jet_sub->SetAreaEmc(area.perp());
std::vector<fastjet::PseudoJet> constituents_unsub(fjw.GetJetConstituents(ijet));
std::vector<fastjet::PseudoJet> constituents_sub = jets_sub[ijet].constituents();
jet_sub->SetNumberOfTracks(constituents_sub.size());
fJetTask->FillJetConstituents(jet_sub, constituents_sub, fJetTask->GetTracks(), fJetTask->GetClusters(), constituents_unsub, 1, fParticlesSub);
jetCount++;
}
#endif
}
AliEmcalJetUtilityConstSubtractor.cxx:1 AliEmcalJetUtilityConstSubtractor.cxx:2 AliEmcalJetUtilityConstSubtractor.cxx:3 AliEmcalJetUtilityConstSubtractor.cxx:4 AliEmcalJetUtilityConstSubtractor.cxx:5 AliEmcalJetUtilityConstSubtractor.cxx:6 AliEmcalJetUtilityConstSubtractor.cxx:7 AliEmcalJetUtilityConstSubtractor.cxx:8 AliEmcalJetUtilityConstSubtractor.cxx:9 AliEmcalJetUtilityConstSubtractor.cxx:10 AliEmcalJetUtilityConstSubtractor.cxx:11 AliEmcalJetUtilityConstSubtractor.cxx:12 AliEmcalJetUtilityConstSubtractor.cxx:13 AliEmcalJetUtilityConstSubtractor.cxx:14 AliEmcalJetUtilityConstSubtractor.cxx:15 AliEmcalJetUtilityConstSubtractor.cxx:16 AliEmcalJetUtilityConstSubtractor.cxx:17 AliEmcalJetUtilityConstSubtractor.cxx:18 AliEmcalJetUtilityConstSubtractor.cxx:19 AliEmcalJetUtilityConstSubtractor.cxx:20 AliEmcalJetUtilityConstSubtractor.cxx:21 AliEmcalJetUtilityConstSubtractor.cxx:22 AliEmcalJetUtilityConstSubtractor.cxx:23 AliEmcalJetUtilityConstSubtractor.cxx:24 AliEmcalJetUtilityConstSubtractor.cxx:25 AliEmcalJetUtilityConstSubtractor.cxx:26 AliEmcalJetUtilityConstSubtractor.cxx:27 AliEmcalJetUtilityConstSubtractor.cxx:28 AliEmcalJetUtilityConstSubtractor.cxx:29 AliEmcalJetUtilityConstSubtractor.cxx:30 AliEmcalJetUtilityConstSubtractor.cxx:31 AliEmcalJetUtilityConstSubtractor.cxx:32 AliEmcalJetUtilityConstSubtractor.cxx:33 AliEmcalJetUtilityConstSubtractor.cxx:34 AliEmcalJetUtilityConstSubtractor.cxx:35 AliEmcalJetUtilityConstSubtractor.cxx:36 AliEmcalJetUtilityConstSubtractor.cxx:37 AliEmcalJetUtilityConstSubtractor.cxx:38 AliEmcalJetUtilityConstSubtractor.cxx:39 AliEmcalJetUtilityConstSubtractor.cxx:40 AliEmcalJetUtilityConstSubtractor.cxx:41 AliEmcalJetUtilityConstSubtractor.cxx:42 AliEmcalJetUtilityConstSubtractor.cxx:43 AliEmcalJetUtilityConstSubtractor.cxx:44 AliEmcalJetUtilityConstSubtractor.cxx:45 AliEmcalJetUtilityConstSubtractor.cxx:46 AliEmcalJetUtilityConstSubtractor.cxx:47 AliEmcalJetUtilityConstSubtractor.cxx:48 AliEmcalJetUtilityConstSubtractor.cxx:49 AliEmcalJetUtilityConstSubtractor.cxx:50 AliEmcalJetUtilityConstSubtractor.cxx:51 AliEmcalJetUtilityConstSubtractor.cxx:52 AliEmcalJetUtilityConstSubtractor.cxx:53 AliEmcalJetUtilityConstSubtractor.cxx:54 AliEmcalJetUtilityConstSubtractor.cxx:55 AliEmcalJetUtilityConstSubtractor.cxx:56 AliEmcalJetUtilityConstSubtractor.cxx:57 AliEmcalJetUtilityConstSubtractor.cxx:58 AliEmcalJetUtilityConstSubtractor.cxx:59 AliEmcalJetUtilityConstSubtractor.cxx:60 AliEmcalJetUtilityConstSubtractor.cxx:61 AliEmcalJetUtilityConstSubtractor.cxx:62 AliEmcalJetUtilityConstSubtractor.cxx:63 AliEmcalJetUtilityConstSubtractor.cxx:64 AliEmcalJetUtilityConstSubtractor.cxx:65 AliEmcalJetUtilityConstSubtractor.cxx:66 AliEmcalJetUtilityConstSubtractor.cxx:67 AliEmcalJetUtilityConstSubtractor.cxx:68 AliEmcalJetUtilityConstSubtractor.cxx:69 AliEmcalJetUtilityConstSubtractor.cxx:70 AliEmcalJetUtilityConstSubtractor.cxx:71 AliEmcalJetUtilityConstSubtractor.cxx:72 AliEmcalJetUtilityConstSubtractor.cxx:73 AliEmcalJetUtilityConstSubtractor.cxx:74 AliEmcalJetUtilityConstSubtractor.cxx:75 AliEmcalJetUtilityConstSubtractor.cxx:76 AliEmcalJetUtilityConstSubtractor.cxx:77 AliEmcalJetUtilityConstSubtractor.cxx:78 AliEmcalJetUtilityConstSubtractor.cxx:79 AliEmcalJetUtilityConstSubtractor.cxx:80 AliEmcalJetUtilityConstSubtractor.cxx:81 AliEmcalJetUtilityConstSubtractor.cxx:82 AliEmcalJetUtilityConstSubtractor.cxx:83 AliEmcalJetUtilityConstSubtractor.cxx:84 AliEmcalJetUtilityConstSubtractor.cxx:85 AliEmcalJetUtilityConstSubtractor.cxx:86 AliEmcalJetUtilityConstSubtractor.cxx:87 AliEmcalJetUtilityConstSubtractor.cxx:88 AliEmcalJetUtilityConstSubtractor.cxx:89 AliEmcalJetUtilityConstSubtractor.cxx:90 AliEmcalJetUtilityConstSubtractor.cxx:91 AliEmcalJetUtilityConstSubtractor.cxx:92 AliEmcalJetUtilityConstSubtractor.cxx:93 AliEmcalJetUtilityConstSubtractor.cxx:94 AliEmcalJetUtilityConstSubtractor.cxx:95 AliEmcalJetUtilityConstSubtractor.cxx:96 AliEmcalJetUtilityConstSubtractor.cxx:97 AliEmcalJetUtilityConstSubtractor.cxx:98 AliEmcalJetUtilityConstSubtractor.cxx:99 AliEmcalJetUtilityConstSubtractor.cxx:100 AliEmcalJetUtilityConstSubtractor.cxx:101 AliEmcalJetUtilityConstSubtractor.cxx:102 AliEmcalJetUtilityConstSubtractor.cxx:103 AliEmcalJetUtilityConstSubtractor.cxx:104 AliEmcalJetUtilityConstSubtractor.cxx:105 AliEmcalJetUtilityConstSubtractor.cxx:106 AliEmcalJetUtilityConstSubtractor.cxx:107 AliEmcalJetUtilityConstSubtractor.cxx:108 AliEmcalJetUtilityConstSubtractor.cxx:109 AliEmcalJetUtilityConstSubtractor.cxx:110 AliEmcalJetUtilityConstSubtractor.cxx:111 AliEmcalJetUtilityConstSubtractor.cxx:112 AliEmcalJetUtilityConstSubtractor.cxx:113 AliEmcalJetUtilityConstSubtractor.cxx:114 AliEmcalJetUtilityConstSubtractor.cxx:115 AliEmcalJetUtilityConstSubtractor.cxx:116 AliEmcalJetUtilityConstSubtractor.cxx:117 AliEmcalJetUtilityConstSubtractor.cxx:118 AliEmcalJetUtilityConstSubtractor.cxx:119 AliEmcalJetUtilityConstSubtractor.cxx:120 AliEmcalJetUtilityConstSubtractor.cxx:121 AliEmcalJetUtilityConstSubtractor.cxx:122 AliEmcalJetUtilityConstSubtractor.cxx:123 AliEmcalJetUtilityConstSubtractor.cxx:124 AliEmcalJetUtilityConstSubtractor.cxx:125 AliEmcalJetUtilityConstSubtractor.cxx:126 AliEmcalJetUtilityConstSubtractor.cxx:127 AliEmcalJetUtilityConstSubtractor.cxx:128 AliEmcalJetUtilityConstSubtractor.cxx:129 AliEmcalJetUtilityConstSubtractor.cxx:130 AliEmcalJetUtilityConstSubtractor.cxx:131 AliEmcalJetUtilityConstSubtractor.cxx:132 AliEmcalJetUtilityConstSubtractor.cxx:133 AliEmcalJetUtilityConstSubtractor.cxx:134 AliEmcalJetUtilityConstSubtractor.cxx:135 AliEmcalJetUtilityConstSubtractor.cxx:136 AliEmcalJetUtilityConstSubtractor.cxx:137 AliEmcalJetUtilityConstSubtractor.cxx:138 AliEmcalJetUtilityConstSubtractor.cxx:139 AliEmcalJetUtilityConstSubtractor.cxx:140 AliEmcalJetUtilityConstSubtractor.cxx:141 AliEmcalJetUtilityConstSubtractor.cxx:142 AliEmcalJetUtilityConstSubtractor.cxx:143 AliEmcalJetUtilityConstSubtractor.cxx:144 AliEmcalJetUtilityConstSubtractor.cxx:145 AliEmcalJetUtilityConstSubtractor.cxx:146 AliEmcalJetUtilityConstSubtractor.cxx:147 AliEmcalJetUtilityConstSubtractor.cxx:148 AliEmcalJetUtilityConstSubtractor.cxx:149 AliEmcalJetUtilityConstSubtractor.cxx:150 AliEmcalJetUtilityConstSubtractor.cxx:151 AliEmcalJetUtilityConstSubtractor.cxx:152 AliEmcalJetUtilityConstSubtractor.cxx:153 AliEmcalJetUtilityConstSubtractor.cxx:154 AliEmcalJetUtilityConstSubtractor.cxx:155 AliEmcalJetUtilityConstSubtractor.cxx:156 AliEmcalJetUtilityConstSubtractor.cxx:157 AliEmcalJetUtilityConstSubtractor.cxx:158 AliEmcalJetUtilityConstSubtractor.cxx:159 AliEmcalJetUtilityConstSubtractor.cxx:160 AliEmcalJetUtilityConstSubtractor.cxx:161 AliEmcalJetUtilityConstSubtractor.cxx:162 AliEmcalJetUtilityConstSubtractor.cxx:163 AliEmcalJetUtilityConstSubtractor.cxx:164 AliEmcalJetUtilityConstSubtractor.cxx:165 AliEmcalJetUtilityConstSubtractor.cxx:166 AliEmcalJetUtilityConstSubtractor.cxx:167 AliEmcalJetUtilityConstSubtractor.cxx:168 AliEmcalJetUtilityConstSubtractor.cxx:169 AliEmcalJetUtilityConstSubtractor.cxx:170 AliEmcalJetUtilityConstSubtractor.cxx:171 AliEmcalJetUtilityConstSubtractor.cxx:172 AliEmcalJetUtilityConstSubtractor.cxx:173 AliEmcalJetUtilityConstSubtractor.cxx:174 AliEmcalJetUtilityConstSubtractor.cxx:175 AliEmcalJetUtilityConstSubtractor.cxx:176 AliEmcalJetUtilityConstSubtractor.cxx:177 AliEmcalJetUtilityConstSubtractor.cxx:178 AliEmcalJetUtilityConstSubtractor.cxx:179 AliEmcalJetUtilityConstSubtractor.cxx:180 AliEmcalJetUtilityConstSubtractor.cxx:181 AliEmcalJetUtilityConstSubtractor.cxx:182 AliEmcalJetUtilityConstSubtractor.cxx:183 AliEmcalJetUtilityConstSubtractor.cxx:184 AliEmcalJetUtilityConstSubtractor.cxx:185 AliEmcalJetUtilityConstSubtractor.cxx:186 AliEmcalJetUtilityConstSubtractor.cxx:187 AliEmcalJetUtilityConstSubtractor.cxx:188 AliEmcalJetUtilityConstSubtractor.cxx:189 AliEmcalJetUtilityConstSubtractor.cxx:190 AliEmcalJetUtilityConstSubtractor.cxx:191 AliEmcalJetUtilityConstSubtractor.cxx:192 AliEmcalJetUtilityConstSubtractor.cxx:193 AliEmcalJetUtilityConstSubtractor.cxx:194 AliEmcalJetUtilityConstSubtractor.cxx:195