6 #include <TClonesArray.h>
11 #include <THnSparse.h>
13 #include <TLorentzVector.h>
15 #include "AliVVZERO.h"
20 #include "AliEMCALTriggerPatchInfo.h"
27 namespace JETriggerRejectionAna {
29 AliAnalysisTaskTriggerRejection::AliAnalysisTaskTriggerRejection() :
35 fMainPatchType(kManual),
36 fMainTrigCat(kTriggerLevel1Jet),
37 fMainTrigSimple(kFALSE)
40 SetMakeGeneralHistograms(kTRUE);
44 AliAnalysisTaskTriggerRejection::AliAnalysisTaskTriggerRejection(
const char *name) :
50 fMainPatchType(kManual),
51 fMainTrigCat(kTriggerLevel1Jet),
52 fMainTrigSimple(kFALSE)
55 SetMakeGeneralHistograms(kTRUE);
59 AliAnalysisTaskTriggerRejection::~AliAnalysisTaskTriggerRejection()
65 void AliAnalysisTaskTriggerRejection::UserCreateOutputObjects()
71 Bool_t oldStatus = TH1::AddDirectoryStatus();
72 TH1::AddDirectory(kFALSE);
74 Int_t fgkNCentBins = 21;
75 Float_t kMinCent = 0.;
76 Float_t kMaxCent = 105.;
78 Int_t fgkNPtBins = 170;
79 Float_t kMinPt = -50.;
80 Float_t kMaxPt = 120.;
82 Int_t fgkNVZEROBins = 100;
83 Float_t kMinVZERO = 0.;
84 Float_t kMaxVZERO = 25000;
86 const Int_t fgkNEPatch = 100;
87 Float_t kMinEPatch = 0.;
88 Float_t kMaxEPatch = 200.;
90 const Int_t fgkNADC = 100;
92 Float_t kMaxADC = 1500.;
94 const Int_t fgkNEta = 10;
95 const Int_t fgkNPhi = 10;
98 const Int_t nBins[nDim] = {fgkNCentBins,fgkNVZEROBins,fgkNPtBins,fgkNPtBins,fgkNEPatch,fgkNADC,fgkNEta,fgkNPhi};
99 const Double_t xmin0[nDim] = {kMinCent,kMinVZERO,kMinPt,kMinPt,kMinEPatch,kMinADC,-0.7,1.4};
100 const Double_t xmax0[nDim] = {kMaxCent,kMaxVZERO,kMaxPt,kMaxPt,kMaxEPatch,kMaxADC, 0.7,3.14};
101 fhnTriggerInfo =
new THnSparseF(
"fhnTriggerInfo",
102 "hnTriggerInfo;cent;V0mult;ptjet1;ptjet2;Epatch;ADCpatch;EtaPatch;PhiPatch",nDim,nBins,xmin0,xmax0);
103 fOutput->Add(fhnTriggerInfo);
106 for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
107 TH1 *h1 =
dynamic_cast<TH1*
>(fOutput->At(i));
112 TH2 *h2 =
dynamic_cast<TH2*
>(fOutput->At(i));
117 TH3 *h3 =
dynamic_cast<TH3*
>(fOutput->At(i));
122 THnSparse *hn =
dynamic_cast<THnSparse*
>(fOutput->At(i));
126 TH1::AddDirectory(oldStatus);
128 PostData(1, fOutput);
132 void AliAnalysisTaskTriggerRejection::ExtractMainPatch() {
135 if(!fTriggerPatchInfo)
139 Int_t nPatch = fTriggerPatchInfo->GetEntriesFast();
143 for (Int_t iPatch = 0; iPatch < nPatch; iPatch++) {
144 AliEMCALTriggerPatchInfo *patch = (AliEMCALTriggerPatchInfo*)fTriggerPatchInfo->At( iPatch );
145 if(patch->GetPatchE()>emax) {
147 emax = patch->GetPatchE();
152 Bool_t AliAnalysisTaskTriggerRejection::FillHistograms()
156 if(!GetJetContainer(fContainerFull) || !GetJetContainer(fContainerCharged) || !fMaxPatch)
160 AliEmcalJet *leadJet1 = GetJetContainer(fContainerFull)->GetLeadingJet(
"rho");
161 AliEmcalJet *leadJet2 = GetJetContainer(fContainerCharged)->GetLeadingJet(
"rho");
163 Double_t ptLeadJet1 = -999;
164 Double_t ptLeadJet2 = -999;
166 if(leadJet1) ptLeadJet1 = leadJet1->
Pt() - GetRhoVal(fContainerFull)*leadJet1->
Area();
167 if(leadJet2) ptLeadJet2 = leadJet2->
Pt() - GetRhoVal(fContainerCharged)*leadJet2->
Area();
169 Double_t VZEROAmp = (Double_t)(InputEvent()->GetVZEROData()->GetTriggerChargeA() + InputEvent()->GetVZEROData()->GetTriggerChargeC());
177 fMaxPatch->GetPatchE(),
178 (Double_t)fMaxPatch->GetADCAmp(),
179 fMaxPatch->GetEtaGeo(),
180 fMaxPatch->GetPhiGeo()
182 fhnTriggerInfo->Fill(var);
188 Bool_t AliAnalysisTaskTriggerRejection::Run()
192 if(fTriggerPatchInfo) {
193 if(fMainPatchType==kManual) ExtractMainPatch();
194 else if(fMainPatchType==kEmcalJet)
195 fMaxPatch = GetMainTriggerPatch(fMainTrigCat,fMainTrigSimple);
202 void AliAnalysisTaskTriggerRejection::Terminate(Option_t *)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
void UserCreateOutputObjects()
ClassImp(JETriggerRejectionAna::AliAnalysisTaskTriggerRejection) namespace JETriggerRejectionAna