#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TProfile.h>
#include <THnSparse.h>
#include <TList.h>
#include <TLorentzVector.h>
#include "AliVVZERO.h"
#include "AliEmcalJet.h"
#include "AliRhoParameter.h"
#include "AliLog.h"
#include "AliJetContainer.h"
#include "AliEmcalTriggerPatchInfo.h"
#include "AliPicoTrack.h"
#include "AliAnalysisTaskTriggerRejection.h"
ClassImp(JETriggerRejectionAna::AliAnalysisTaskTriggerRejection)
namespace JETriggerRejectionAna {
AliAnalysisTaskTriggerRejection::AliAnalysisTaskTriggerRejection() :
AliAnalysisTaskEmcalJet("AliAnalysisTaskTriggerRejection", kTRUE),
fContainerFull(0),
fContainerCharged(1),
fMaxPatch(0),
fhnTriggerInfo(0),
fMainPatchType(kManual),
fMainTrigCat(kTriggerLevel1Jet),
fMainTrigSimple(kFALSE)
{
SetMakeGeneralHistograms(kTRUE);
}
AliAnalysisTaskTriggerRejection::AliAnalysisTaskTriggerRejection(const char *name) :
AliAnalysisTaskEmcalJet(name, kTRUE),
fContainerFull(0),
fContainerCharged(1),
fMaxPatch(0),
fhnTriggerInfo(0),
fMainPatchType(kManual),
fMainTrigCat(kTriggerLevel1Jet),
fMainTrigSimple(kFALSE)
{
SetMakeGeneralHistograms(kTRUE);
}
AliAnalysisTaskTriggerRejection::~AliAnalysisTaskTriggerRejection()
{
}
void AliAnalysisTaskTriggerRejection::UserCreateOutputObjects()
{
AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
Int_t fgkNCentBins = 21;
Float_t kMinCent = 0.;
Float_t kMaxCent = 105.;
Int_t fgkNPtBins = 170;
Float_t kMinPt = -50.;
Float_t kMaxPt = 120.;
Int_t fgkNVZEROBins = 100;
Float_t kMinVZERO = 0.;
Float_t kMaxVZERO = 25000;
const Int_t fgkNEPatch = 100;
Float_t kMinEPatch = 0.;
Float_t kMaxEPatch = 200.;
const Int_t fgkNADC = 100;
Float_t kMinADC = 0.;
Float_t kMaxADC = 1500.;
const Int_t fgkNEta = 10;
const Int_t fgkNPhi = 10;
const Int_t nDim = 8;
const Int_t nBins[nDim] = {fgkNCentBins,fgkNVZEROBins,fgkNPtBins,fgkNPtBins,fgkNEPatch,fgkNADC,fgkNEta,fgkNPhi};
const Double_t xmin0[nDim] = {kMinCent,kMinVZERO,kMinPt,kMinPt,kMinEPatch,kMinADC,-0.7,1.4};
const Double_t xmax0[nDim] = {kMaxCent,kMaxVZERO,kMaxPt,kMaxPt,kMaxEPatch,kMaxADC, 0.7,3.14};
fhnTriggerInfo = new THnSparseF("fhnTriggerInfo",
"hnTriggerInfo;cent;V0mult;ptjet1;ptjet2;Epatch;ADCpatch;EtaPatch;PhiPatch",nDim,nBins,xmin0,xmax0);
fOutput->Add(fhnTriggerInfo);
for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
TH1 *h1 = dynamic_cast<TH1*>(fOutput->At(i));
if (h1){
h1->Sumw2();
continue;
}
TH2 *h2 = dynamic_cast<TH2*>(fOutput->At(i));
if (h2){
h2->Sumw2();
continue;
}
TH3 *h3 = dynamic_cast<TH3*>(fOutput->At(i));
if (h3){
h3->Sumw2();
continue;
}
THnSparse *hn = dynamic_cast<THnSparse*>(fOutput->At(i));
if(hn)hn->Sumw2();
}
TH1::AddDirectory(oldStatus);
PostData(1, fOutput);
}
void AliAnalysisTaskTriggerRejection::ExtractMainPatch() {
if(!fTriggerPatchInfo)
return;
Int_t nPatch = fTriggerPatchInfo->GetEntriesFast();
Double_t emax = -1.;
for (Int_t iPatch = 0; iPatch < nPatch; iPatch++) {
AliEmcalTriggerPatchInfo *patch = (AliEmcalTriggerPatchInfo*)fTriggerPatchInfo->At( iPatch );
if(patch->GetPatchE()>emax) {
fMaxPatch = patch;
emax = patch->GetPatchE();
}
}
}
Bool_t AliAnalysisTaskTriggerRejection::FillHistograms()
{
if(!GetJetContainer(fContainerFull) || !GetJetContainer(fContainerCharged) || !fMaxPatch)
return kFALSE;
AliEmcalJet *leadJet1 = GetJetContainer(fContainerFull)->GetLeadingJet("rho");
AliEmcalJet *leadJet2 = GetJetContainer(fContainerCharged)->GetLeadingJet("rho");
Double_t ptLeadJet1 = -999;
Double_t ptLeadJet2 = -999;
if(leadJet1) ptLeadJet1 = leadJet1->Pt() - GetRhoVal(fContainerFull)*leadJet1->Area();
if(leadJet2) ptLeadJet2 = leadJet2->Pt() - GetRhoVal(fContainerCharged)*leadJet2->Area();
Double_t VZEROAmp = (Double_t)(InputEvent()->GetVZEROData()->GetTriggerChargeA() + InputEvent()->GetVZEROData()->GetTriggerChargeC());
Double_t var[8] = {
fCent,
VZEROAmp,
ptLeadJet1,
ptLeadJet2,
fMaxPatch->GetPatchE(),
(Double_t)fMaxPatch->GetADCAmp(),
fMaxPatch->GetEtaGeo(),
fMaxPatch->GetPhiGeo()
};
fhnTriggerInfo->Fill(var);
return kTRUE;
}
Bool_t AliAnalysisTaskTriggerRejection::Run()
{
if(fTriggerPatchInfo) {
if(fMainPatchType==kManual) ExtractMainPatch();
else if(fMainPatchType==kEmcalJet)
fMaxPatch = GetMainTriggerPatch(fMainTrigCat,fMainTrigSimple);
}
return kTRUE;
}
void AliAnalysisTaskTriggerRejection::Terminate(Option_t *)
{
}
}
AliAnalysisTaskTriggerRejection.cxx:1 AliAnalysisTaskTriggerRejection.cxx:2 AliAnalysisTaskTriggerRejection.cxx:3 AliAnalysisTaskTriggerRejection.cxx:4 AliAnalysisTaskTriggerRejection.cxx:5 AliAnalysisTaskTriggerRejection.cxx:6 AliAnalysisTaskTriggerRejection.cxx:7 AliAnalysisTaskTriggerRejection.cxx:8 AliAnalysisTaskTriggerRejection.cxx:9 AliAnalysisTaskTriggerRejection.cxx:10 AliAnalysisTaskTriggerRejection.cxx:11 AliAnalysisTaskTriggerRejection.cxx:12 AliAnalysisTaskTriggerRejection.cxx:13 AliAnalysisTaskTriggerRejection.cxx:14 AliAnalysisTaskTriggerRejection.cxx:15 AliAnalysisTaskTriggerRejection.cxx:16 AliAnalysisTaskTriggerRejection.cxx:17 AliAnalysisTaskTriggerRejection.cxx:18 AliAnalysisTaskTriggerRejection.cxx:19 AliAnalysisTaskTriggerRejection.cxx:20 AliAnalysisTaskTriggerRejection.cxx:21 AliAnalysisTaskTriggerRejection.cxx:22 AliAnalysisTaskTriggerRejection.cxx:23 AliAnalysisTaskTriggerRejection.cxx:24 AliAnalysisTaskTriggerRejection.cxx:25 AliAnalysisTaskTriggerRejection.cxx:26 AliAnalysisTaskTriggerRejection.cxx:27 AliAnalysisTaskTriggerRejection.cxx:28 AliAnalysisTaskTriggerRejection.cxx:29 AliAnalysisTaskTriggerRejection.cxx:30 AliAnalysisTaskTriggerRejection.cxx:31 AliAnalysisTaskTriggerRejection.cxx:32 AliAnalysisTaskTriggerRejection.cxx:33 AliAnalysisTaskTriggerRejection.cxx:34 AliAnalysisTaskTriggerRejection.cxx:35 AliAnalysisTaskTriggerRejection.cxx:36 AliAnalysisTaskTriggerRejection.cxx:37 AliAnalysisTaskTriggerRejection.cxx:38 AliAnalysisTaskTriggerRejection.cxx:39 AliAnalysisTaskTriggerRejection.cxx:40 AliAnalysisTaskTriggerRejection.cxx:41 AliAnalysisTaskTriggerRejection.cxx:42 AliAnalysisTaskTriggerRejection.cxx:43 AliAnalysisTaskTriggerRejection.cxx:44 AliAnalysisTaskTriggerRejection.cxx:45 AliAnalysisTaskTriggerRejection.cxx:46 AliAnalysisTaskTriggerRejection.cxx:47 AliAnalysisTaskTriggerRejection.cxx:48 AliAnalysisTaskTriggerRejection.cxx:49 AliAnalysisTaskTriggerRejection.cxx:50 AliAnalysisTaskTriggerRejection.cxx:51 AliAnalysisTaskTriggerRejection.cxx:52 AliAnalysisTaskTriggerRejection.cxx:53 AliAnalysisTaskTriggerRejection.cxx:54 AliAnalysisTaskTriggerRejection.cxx:55 AliAnalysisTaskTriggerRejection.cxx:56 AliAnalysisTaskTriggerRejection.cxx:57 AliAnalysisTaskTriggerRejection.cxx:58 AliAnalysisTaskTriggerRejection.cxx:59 AliAnalysisTaskTriggerRejection.cxx:60 AliAnalysisTaskTriggerRejection.cxx:61 AliAnalysisTaskTriggerRejection.cxx:62 AliAnalysisTaskTriggerRejection.cxx:63 AliAnalysisTaskTriggerRejection.cxx:64 AliAnalysisTaskTriggerRejection.cxx:65 AliAnalysisTaskTriggerRejection.cxx:66 AliAnalysisTaskTriggerRejection.cxx:67 AliAnalysisTaskTriggerRejection.cxx:68 AliAnalysisTaskTriggerRejection.cxx:69 AliAnalysisTaskTriggerRejection.cxx:70 AliAnalysisTaskTriggerRejection.cxx:71 AliAnalysisTaskTriggerRejection.cxx:72 AliAnalysisTaskTriggerRejection.cxx:73 AliAnalysisTaskTriggerRejection.cxx:74 AliAnalysisTaskTriggerRejection.cxx:75 AliAnalysisTaskTriggerRejection.cxx:76 AliAnalysisTaskTriggerRejection.cxx:77 AliAnalysisTaskTriggerRejection.cxx:78 AliAnalysisTaskTriggerRejection.cxx:79 AliAnalysisTaskTriggerRejection.cxx:80 AliAnalysisTaskTriggerRejection.cxx:81 AliAnalysisTaskTriggerRejection.cxx:82 AliAnalysisTaskTriggerRejection.cxx:83 AliAnalysisTaskTriggerRejection.cxx:84 AliAnalysisTaskTriggerRejection.cxx:85 AliAnalysisTaskTriggerRejection.cxx:86 AliAnalysisTaskTriggerRejection.cxx:87 AliAnalysisTaskTriggerRejection.cxx:88 AliAnalysisTaskTriggerRejection.cxx:89 AliAnalysisTaskTriggerRejection.cxx:90 AliAnalysisTaskTriggerRejection.cxx:91 AliAnalysisTaskTriggerRejection.cxx:92 AliAnalysisTaskTriggerRejection.cxx:93 AliAnalysisTaskTriggerRejection.cxx:94 AliAnalysisTaskTriggerRejection.cxx:95 AliAnalysisTaskTriggerRejection.cxx:96 AliAnalysisTaskTriggerRejection.cxx:97 AliAnalysisTaskTriggerRejection.cxx:98 AliAnalysisTaskTriggerRejection.cxx:99 AliAnalysisTaskTriggerRejection.cxx:100 AliAnalysisTaskTriggerRejection.cxx:101 AliAnalysisTaskTriggerRejection.cxx:102 AliAnalysisTaskTriggerRejection.cxx:103 AliAnalysisTaskTriggerRejection.cxx:104 AliAnalysisTaskTriggerRejection.cxx:105 AliAnalysisTaskTriggerRejection.cxx:106 AliAnalysisTaskTriggerRejection.cxx:107 AliAnalysisTaskTriggerRejection.cxx:108 AliAnalysisTaskTriggerRejection.cxx:109 AliAnalysisTaskTriggerRejection.cxx:110 AliAnalysisTaskTriggerRejection.cxx:111 AliAnalysisTaskTriggerRejection.cxx:112 AliAnalysisTaskTriggerRejection.cxx:113 AliAnalysisTaskTriggerRejection.cxx:114 AliAnalysisTaskTriggerRejection.cxx:115 AliAnalysisTaskTriggerRejection.cxx:116 AliAnalysisTaskTriggerRejection.cxx:117 AliAnalysisTaskTriggerRejection.cxx:118 AliAnalysisTaskTriggerRejection.cxx:119 AliAnalysisTaskTriggerRejection.cxx:120 AliAnalysisTaskTriggerRejection.cxx:121 AliAnalysisTaskTriggerRejection.cxx:122 AliAnalysisTaskTriggerRejection.cxx:123 AliAnalysisTaskTriggerRejection.cxx:124 AliAnalysisTaskTriggerRejection.cxx:125 AliAnalysisTaskTriggerRejection.cxx:126 AliAnalysisTaskTriggerRejection.cxx:127 AliAnalysisTaskTriggerRejection.cxx:128 AliAnalysisTaskTriggerRejection.cxx:129 AliAnalysisTaskTriggerRejection.cxx:130 AliAnalysisTaskTriggerRejection.cxx:131 AliAnalysisTaskTriggerRejection.cxx:132 AliAnalysisTaskTriggerRejection.cxx:133 AliAnalysisTaskTriggerRejection.cxx:134 AliAnalysisTaskTriggerRejection.cxx:135 AliAnalysisTaskTriggerRejection.cxx:136 AliAnalysisTaskTriggerRejection.cxx:137 AliAnalysisTaskTriggerRejection.cxx:138 AliAnalysisTaskTriggerRejection.cxx:139 AliAnalysisTaskTriggerRejection.cxx:140 AliAnalysisTaskTriggerRejection.cxx:141 AliAnalysisTaskTriggerRejection.cxx:142 AliAnalysisTaskTriggerRejection.cxx:143 AliAnalysisTaskTriggerRejection.cxx:144 AliAnalysisTaskTriggerRejection.cxx:145 AliAnalysisTaskTriggerRejection.cxx:146 AliAnalysisTaskTriggerRejection.cxx:147 AliAnalysisTaskTriggerRejection.cxx:148 AliAnalysisTaskTriggerRejection.cxx:149 AliAnalysisTaskTriggerRejection.cxx:150 AliAnalysisTaskTriggerRejection.cxx:151 AliAnalysisTaskTriggerRejection.cxx:152 AliAnalysisTaskTriggerRejection.cxx:153 AliAnalysisTaskTriggerRejection.cxx:154 AliAnalysisTaskTriggerRejection.cxx:155 AliAnalysisTaskTriggerRejection.cxx:156 AliAnalysisTaskTriggerRejection.cxx:157 AliAnalysisTaskTriggerRejection.cxx:158 AliAnalysisTaskTriggerRejection.cxx:159 AliAnalysisTaskTriggerRejection.cxx:160 AliAnalysisTaskTriggerRejection.cxx:161 AliAnalysisTaskTriggerRejection.cxx:162 AliAnalysisTaskTriggerRejection.cxx:163 AliAnalysisTaskTriggerRejection.cxx:164 AliAnalysisTaskTriggerRejection.cxx:165 AliAnalysisTaskTriggerRejection.cxx:166 AliAnalysisTaskTriggerRejection.cxx:167 AliAnalysisTaskTriggerRejection.cxx:168 AliAnalysisTaskTriggerRejection.cxx:169 AliAnalysisTaskTriggerRejection.cxx:170 AliAnalysisTaskTriggerRejection.cxx:171 AliAnalysisTaskTriggerRejection.cxx:172 AliAnalysisTaskTriggerRejection.cxx:173 AliAnalysisTaskTriggerRejection.cxx:174 AliAnalysisTaskTriggerRejection.cxx:175 AliAnalysisTaskTriggerRejection.cxx:176 AliAnalysisTaskTriggerRejection.cxx:177 AliAnalysisTaskTriggerRejection.cxx:178 AliAnalysisTaskTriggerRejection.cxx:179 AliAnalysisTaskTriggerRejection.cxx:180 AliAnalysisTaskTriggerRejection.cxx:181 AliAnalysisTaskTriggerRejection.cxx:182 AliAnalysisTaskTriggerRejection.cxx:183 AliAnalysisTaskTriggerRejection.cxx:184 AliAnalysisTaskTriggerRejection.cxx:185 AliAnalysisTaskTriggerRejection.cxx:186 AliAnalysisTaskTriggerRejection.cxx:187 AliAnalysisTaskTriggerRejection.cxx:188 AliAnalysisTaskTriggerRejection.cxx:189 AliAnalysisTaskTriggerRejection.cxx:190 AliAnalysisTaskTriggerRejection.cxx:191 AliAnalysisTaskTriggerRejection.cxx:192 AliAnalysisTaskTriggerRejection.cxx:193 AliAnalysisTaskTriggerRejection.cxx:194 AliAnalysisTaskTriggerRejection.cxx:195 AliAnalysisTaskTriggerRejection.cxx:196 AliAnalysisTaskTriggerRejection.cxx:197 AliAnalysisTaskTriggerRejection.cxx:198 AliAnalysisTaskTriggerRejection.cxx:199 AliAnalysisTaskTriggerRejection.cxx:200 AliAnalysisTaskTriggerRejection.cxx:201 AliAnalysisTaskTriggerRejection.cxx:202 AliAnalysisTaskTriggerRejection.cxx:203 AliAnalysisTaskTriggerRejection.cxx:204 AliAnalysisTaskTriggerRejection.cxx:205 AliAnalysisTaskTriggerRejection.cxx:206