1 // $Id: AliJetEmbeddingFromAODTask.cxx $
3 // Jet embedding from AOD task.
5 // Author: S.Aiola, C.Loizides
7 #include "AliJetEmbeddingFromAODTask.h"
9 // C++ standard library
15 #include <TClonesArray.h>
16 #include <TObjArray.h>
17 #include <TObjString.h>
21 #include <TStreamerInfo.h>
24 #include <TLorentzVector.h>
27 #include "AliVEvent.h"
28 #include "AliAODTrack.h"
29 #include "AliESDtrack.h"
30 #include "AliPicoTrack.h"
31 #include "AliVTrack.h"
32 #include "AliVCluster.h"
33 #include "AliVCaloCells.h"
34 #include "AliAODMCParticle.h"
35 #include "AliCentrality.h"
36 #include "AliVHeader.h"
37 #include "AliVVertex.h"
38 #include "AliAODHeader.h"
39 #include "AliFJWrapper.h"
41 #include "AliInputEventHandler.h"
42 #include "AliNamedString.h"
44 ClassImp(AliJetEmbeddingFromAODTask)
46 //________________________________________________________________________
47 AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() :
48 AliJetModelBaseTask("AliJetEmbeddingFromAODTask"),
50 fRandomAccess(kFALSE),
57 fAODMCParticlesName(),
60 fTriggerMask(AliVEvent::kAny),
68 fJetConstituentMinPt(0),
72 fJetParticleLevel(kTRUE),
75 fParticleSelection(0),
76 fIncludeNoITS(kFALSE),
77 fCutMaxFractionSharedTPCClusters(0.4),
78 fUseNegativeLabels(kTRUE),
101 fHistRejectedEvents(0)
103 // Default constructor.
104 SetSuffix("AODEmbedding");
105 fAODfilterBits[0] = -1;
106 fAODfilterBits[1] = -1;
115 //________________________________________________________________________
116 AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t drawqa) :
117 AliJetModelBaseTask(name, drawqa),
119 fRandomAccess(kFALSE),
120 fAODTreeName("aodTree"),
121 fAODHeaderName("header"),
122 fAODVertexName("vertices"),
123 fAODTrackName("tracks"),
125 fAODCellsName("emcalCells"),
126 fAODMCParticlesName(AliAODMCParticle::StdBranchName()),
129 fTriggerMask(AliVEvent::kAny),
137 fJetConstituentMinPt(0),
141 fJetParticleLevel(kTRUE),
144 fParticleSelection(0),
145 fIncludeNoITS(kFALSE),
146 fCutMaxFractionSharedTPCClusters(0.4),
147 fUseNegativeLabels(kTRUE),
152 fEsdTreeMode(kFALSE),
154 fCurrentAODFileID(0),
156 fPicoTrackVersion(0),
164 fCurrentAODEntry(-1),
166 fHistFileMatching(0),
167 fHistAODFileError(0),
170 fHistRejectedEvents(0)
172 // Standard constructor.
173 SetSuffix("AODEmbedding");
174 fAODfilterBits[0] = -1;
175 fAODfilterBits[1] = -1;
184 //________________________________________________________________________
185 AliJetEmbeddingFromAODTask::~AliJetEmbeddingFromAODTask()
189 if (fCurrentAODFile) {
190 fCurrentAODFile->Close();
191 delete fCurrentAODFile;
195 //________________________________________________________________________
196 void AliJetEmbeddingFromAODTask::UserCreateOutputObjects()
201 AliJetModelBaseTask::UserCreateOutputObjects();
203 fHistFileMatching = new TH2C("fHistFileMatching", "fHistFileMatching", fTotalFiles, -0.5, fTotalFiles - 0.5, fFileList->GetEntriesFast(), -0.5, fFileList->GetEntriesFast() -0.5);
204 fHistFileMatching->GetXaxis()->SetTitle("File no. (PYTHIA)");
205 fHistFileMatching->GetYaxis()->SetTitle("File no. (Embedded AOD)");
206 fHistFileMatching->GetZaxis()->SetTitle("counts");
207 fOutput->Add(fHistFileMatching);
209 fHistAODFileError = new TH1C("fHistAODFileError", "fHistAODFileError", fFileList->GetEntriesFast(), -0.5, fFileList->GetEntriesFast() -0.5);
210 fHistAODFileError->GetXaxis()->SetTitle("File no. (Embedded AOD)");
211 fHistAODFileError->GetYaxis()->SetTitle("counts");
212 fOutput->Add(fHistAODFileError);
214 fHistNotEmbedded = new TH1C("fHistNotEmbedded", "fHistNotEmbedded", fTotalFiles, -0.5, fTotalFiles - 0.5);
215 fHistNotEmbedded->GetXaxis()->SetTitle("File no. (PYTHIA)");
216 fHistNotEmbedded->GetYaxis()->SetTitle("counts");
217 fOutput->Add(fHistNotEmbedded);
219 fHistEmbeddingQA = new TH1F("fHistEmbeddingQA", "fHistEmbeddingQA", 2, 0, 2);
220 fHistEmbeddingQA->GetXaxis()->SetTitle("Event state");
221 fHistEmbeddingQA->GetYaxis()->SetTitle("counts");
222 fHistEmbeddingQA->GetXaxis()->SetBinLabel(1, "OK");
223 fHistEmbeddingQA->GetXaxis()->SetBinLabel(2, "Not embedded");
224 fOutput->Add(fHistEmbeddingQA);
226 fHistRejectedEvents = new TH1F("fHistRejectedEvents", "fHistRejectedEvents", 500, -0.5, 499.5);
227 fHistRejectedEvents->GetXaxis()->SetTitle("# of rejected events");
228 fHistRejectedEvents->GetYaxis()->SetTitle("counts");
229 fOutput->Add(fHistRejectedEvents);
231 PostData(1, fOutput);
234 //________________________________________________________________________
235 Bool_t AliJetEmbeddingFromAODTask::UserNotify()
237 TString path(fInputHandler->GetTree()->GetCurrentFile()->GetPath());
238 if (path.EndsWith("/"))
239 path.Remove(path.Length()-1);
240 path.Remove(path.Last('/'));
241 path.Remove(0, path.Last('/')+1);
243 AliWarning(Form("Could not extract file number from path %s", path.Data()));
246 fCurrentFileID = path.Atoi();
247 if (!fRandomAccess) {
248 fCurrentAODFileID = fFileList->GetEntriesFast() * fCurrentFileID / fTotalFiles-1;
249 AliInfo(Form("Start embedding from file ID %d", fCurrentAODFileID));
254 //________________________________________________________________________
255 Bool_t AliJetEmbeddingFromAODTask::ExecOnce()
257 if (fAODTreeName.Contains("aod"))
258 fEsdTreeMode = kFALSE;
260 fEsdTreeMode = kTRUE;
262 fAODFilePath = static_cast<AliNamedString*>(InputEvent()->FindListObject("AODEmbeddingFile"));
264 fAODFilePath = new AliNamedString("AODEmbeddingFile", "");
265 AliDebug(3,"Adding AOD embedding file path object to the event list...");
266 InputEvent()->AddObject(fAODFilePath);
269 return AliJetModelBaseTask::ExecOnce();
272 //________________________________________________________________________
273 Bool_t AliJetEmbeddingFromAODTask::OpenNextFile()
275 if (fCurrentAODFile) {
276 fCurrentAODFile->Close();
277 delete fCurrentAODFile;
283 while ((!fCurrentAODFile || fCurrentAODFile->IsZombie()) && i < fAttempts) {
284 if (i > 0 && fHistAODFileError) {
285 fHistAODFileError->Fill(fCurrentAODFileID);
288 fCurrentAODFile = GetNextFile();
292 if (!fCurrentAODFile || fCurrentAODFile->IsZombie()) {
293 AliError("Could not open AOD file to embed!");
297 const TList *clist = fCurrentAODFile->GetStreamerInfoCache();
299 TStreamerInfo *cinfo = static_cast<TStreamerInfo*>(clist->FindObject("AliPicoTrack"));
301 fPicoTrackVersion = cinfo->GetClassVersion();
303 fPicoTrackVersion = 0;
306 fCurrentAODTree = static_cast<TTree*>(fCurrentAODFile->Get(fAODTreeName));
307 if (!fCurrentAODTree) {
308 AliError(Form("Could not get tree %s from file %s", fAODTreeName.Data(), fCurrentAODFile->GetName()));
312 if (!fAODHeaderName.IsNull())
313 fCurrentAODTree->SetBranchAddress(fAODHeaderName, &fAODHeader);
315 if (!fAODVertexName.IsNull())
316 fCurrentAODTree->SetBranchAddress(fAODVertexName, &fAODVertex);
318 if (!fAODTrackName.IsNull())
319 fCurrentAODTree->SetBranchAddress(fAODTrackName, &fAODTracks);
321 if (!fAODClusName.IsNull())
322 fCurrentAODTree->SetBranchAddress(fAODClusName, &fAODClusters);
324 if (!fAODCellsName.IsNull())
325 fCurrentAODTree->SetBranchAddress(fAODCellsName, &fAODCaloCells);
327 if (!fAODMCParticlesName.IsNull())
328 fCurrentAODTree->SetBranchAddress(fAODMCParticlesName, &fAODMCParticles);
331 fCurrentAODEntry = TMath::Nint(gRandom->Rndm()*fCurrentAODTree->GetEntries());
333 fCurrentAODEntry = -1;
335 AliDebug(3,Form("Will start embedding from entry %d", fCurrentAODEntry+1));
337 if (fHistFileMatching)
338 fHistFileMatching->Fill(fCurrentFileID, fCurrentAODFileID-1);
343 //________________________________________________________________________
344 TFile* AliJetEmbeddingFromAODTask::GetNextFile()
347 fCurrentAODFileID = TMath::Nint(gRandom->Rndm()*fFileList->GetEntriesFast());
351 if (fCurrentAODFileID >= fFileList->GetEntriesFast()) {
352 AliError("No more file in the list!");
356 TObjString *objFileName = static_cast<TObjString*>(fFileList->At(fCurrentAODFileID));
357 TString fileName(objFileName->GetString());
359 if (fileName.BeginsWith("alien://") && !gGrid) {
360 AliInfo("Trying to connect to AliEn ...");
361 TGrid::Connect("alien://");
364 TString baseFileName(fileName);
365 if (baseFileName.Contains(".zip#")) {
366 Ssiz_t pos = baseFileName.Last('#');
367 baseFileName.Remove(pos);
370 if (gSystem->AccessPathName(baseFileName)) {
371 AliError(Form("File %s does not exist!", baseFileName.Data()));
375 AliDebug(3,Form("Trying to open file %s...", fileName.Data()));
376 TFile *file = TFile::Open(fileName);
378 if (!file || file->IsZombie()) {
379 AliError(Form("Unable to open file: %s!", fileName.Data()));
386 //________________________________________________________________________
387 Bool_t AliJetEmbeddingFromAODTask::GetNextEntry()
392 if (!fCurrentAODFile || !fCurrentAODTree || fCurrentAODEntry+1 >= fCurrentAODTree->GetEntries()) {
393 if (!OpenNextFile()) {
394 AliError("Could not open the next file!");
399 if (!fCurrentAODTree) {
400 AliError("Could not get the tree!");
405 fCurrentAODTree->GetEntry(fCurrentAODEntry);
408 if (attempts == 1000)
409 AliWarning("After 1000 attempts no event has been accepted by the event selection (trigger, centrality...)!");
411 } while (!IsAODEventSelected());
413 if (fHistRejectedEvents)
414 fHistRejectedEvents->Fill(attempts);
416 if (!fCurrentAODTree)
422 //________________________________________________________________________
423 Bool_t AliJetEmbeddingFromAODTask::IsAODEventSelected()
425 // AOD event selection.
427 if (!fEsdTreeMode && fAODHeader) {
428 AliAODHeader *aodHeader = static_cast<AliAODHeader*>(fAODHeader);
431 if (fTriggerMask != 0) {
432 UInt_t offlineTrigger = aodHeader->GetOfflineTrigger();
434 if ((offlineTrigger & fTriggerMask) == 0) {
435 AliDebug(2,Form("Event rejected due to physics selection. Event trigger mask: %d, trigger mask selection: %d.",
436 offlineTrigger, fTriggerMask));
441 // Centrality selection
442 if (fMinCentrality >= 0) {
443 AliCentrality *cent = aodHeader->GetCentralityP();
444 Float_t centVal = cent->GetCentralityPercentile("V0M");
445 if (centVal < fMinCentrality || centVal >= fMaxCentrality) {
446 AliDebug(2,Form("Event rejected due to centrality selection. Event centrality: %f, centrality range selection: %f to %f",
447 centVal, fMinCentrality, fMaxCentrality));
455 Double_t vert[3]={0};
456 ((AliVVertex*)fAODVertex->At(0))->GetXYZ(vert);
457 if (TMath::Abs(vert[2]) > fZVertexCut) {
458 AliDebug(2,Form("Event rejected due to Z vertex selection. Event Z vertex: %f, Z vertex cut: %f",
459 vert[2], fZVertexCut));
462 Double_t dist = TMath::Sqrt((vert[0]-fVertex[0])*(vert[0]-fVertex[0])+(vert[1]-fVertex[1])*(vert[1]-fVertex[1])+(vert[2]-fVertex[2])*(vert[2]-fVertex[2]));
463 if (dist > fMaxVertexDist) {
464 AliDebug(2,Form("Event rejected because the distance between the current and embedded verteces is > %f. "
465 "Current event vertex (%f, %f, %f), embedded event vertex (%f, %f, %f). Distance = %f",
466 fMaxVertexDist, fVertex[0], fVertex[1], fVertex[2], vert[0], vert[1], vert[2], dist));
472 // Particle selection
473 if ((fParticleSelection == 1 && FindParticleInRange(fAODTracks)==kFALSE) ||
474 (fParticleSelection == 2 && FindParticleInRange(fAODClusters)==kFALSE) ||
475 (fParticleSelection == 3 && FindParticleInRange(fAODMCParticles)==kFALSE))
482 if (fJetParticleLevel) {
484 jet = GetLeadingJet(fAODMCParticles);
486 AliWarning("Particle level jets selected, but not MC particles found. The jet event selection will be skipped.");
491 if (fAODTracks || fAODClusters)
492 jet = GetLeadingJet(fAODTracks, fAODClusters);
494 AliWarning("Detector level jets selected, but not tracks or clusters found. The jet event selection will be skipped.");
499 AliDebug(1, Form("Leading jet pt = %f", jet.Pt()));
500 if (jet.Pt() < fJetMinPt)
507 //________________________________________________________________________
508 Bool_t AliJetEmbeddingFromAODTask::FindParticleInRange(TClonesArray *array)
510 if (!array) return kFALSE;
512 if (array->GetClass()->InheritsFrom("AliVParticle")) {
513 const Int_t nentries = array->GetEntriesFast();
514 for (Int_t i = 0; i < nentries; i++) {
515 AliVParticle *part = static_cast<AliVParticle*>(array->At(i));
517 if (part->Pt() > fParticleMinPt && part->Pt() < fParticleMaxPt) return kTRUE;
520 else if (array->GetClass()->InheritsFrom("AliVCluster")) {
521 const Int_t nentries = array->GetEntriesFast();
522 for (Int_t i = 0; i < nentries; i++) {
523 AliVCluster *clus = static_cast<AliVCluster*>(array->At(i));
527 Double_t vert[3] = {0,0,0};
528 clus->GetMomentum(vect,vert);
530 if (vect.Pt() > fParticleMinPt && vect.Pt() < fParticleMaxPt) return kTRUE;
534 AliWarning(Form("Unable to do event selection based on particle pT: %s class type not recognized.",array->GetClass()->GetName()));
540 //________________________________________________________________________
541 void AliJetEmbeddingFromAODTask::Run()
543 if (!GetNextEntry()) {
544 if (fHistNotEmbedded)
545 fHistNotEmbedded->Fill(fCurrentFileID);
546 if (fHistEmbeddingQA)
547 fHistEmbeddingQA->Fill("Not embedded", 1);
548 AliError("Unable to get the AOD event to embed. Nothing will be embedded.");
552 if (fHistEmbeddingQA)
553 fHistEmbeddingQA->Fill("OK", 1);
555 fAODFilePath->SetString(fCurrentAODFile->GetName());
557 if (fOutMCParticles) {
559 if (fCopyArray && fMCParticles)
562 if (fAODMCParticles) {
563 AliDebug(3, Form("%d MC particles will be processed for embedding.", fAODMCParticles->GetEntriesFast()));
564 for (Int_t i = 0; i < fAODMCParticles->GetEntriesFast(); i++) {
565 AliAODMCParticle *part = static_cast<AliAODMCParticle*>(fAODMCParticles->At(i));
567 AliError(Form("Could not find MC particle %d in branch %s of tree %s!", i, fAODMCParticlesName.Data(), fAODTreeName.Data()));
571 AliDebug(3, Form("Processing MC particle %d with pT = %f, eta = %f, phi = %f", i, part->Pt(), part->Eta(), part->Phi()));
573 if (!part->IsPhysicalPrimary())
576 if (part->Pt() < fPtMin || part->Pt() > fPtMax ||
577 part->Eta() < fEtaMin || part->Eta() > fEtaMax ||
578 part->Phi() < fPhiMin || part->Phi() > fPhiMax)
581 AddMCParticle(part, i);
582 AliDebug(3, "Embedded!");
589 if (fCopyArray && fTracks)
592 AliDebug(3, Form("Start embedding with %d tracks.", fOutTracks->GetEntriesFast()));
595 AliDebug(3, Form("%d tracks will be processed for embedding.", fAODTracks->GetEntriesFast()));
596 for (Int_t i = 0; i < fAODTracks->GetEntriesFast(); i++) {
597 AliVTrack *track = static_cast<AliVTrack*>(fAODTracks->At(i));
599 AliError(Form("Could not find track %d in branch %s of tree %s!", i, fAODTrackName.Data(), fAODTreeName.Data()));
603 AliDebug(3, Form("Processing track %d with pT = %f, eta = %f, phi = %f, label = %d", i, track->Pt(), track->Eta(), track->Phi(), track->GetLabel()));
606 Bool_t isEmc = kFALSE;
608 AliAODTrack *aodtrack = static_cast<AliAODTrack*>(track);
609 if (aodtrack->TestFilterBit(fAODfilterBits[0])) {
612 else if (aodtrack->TestFilterBit(fAODfilterBits[1])) {
613 if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
617 AliDebug(3, "Track not embedded because ITS refit failed.");
625 else { /*not a good track*/
626 AliDebug(3, "Track not embedded because not an hybrid track.");
629 if (fCutMaxFractionSharedTPCClusters > 0) {
630 Double_t frac = Double_t(aodtrack->GetTPCnclsS()) / Double_t(aodtrack->GetTPCncls());
631 if (frac > fCutMaxFractionSharedTPCClusters)
634 if (TMath::Abs(aodtrack->GetTrackEtaOnEMCal()) < 0.75 &&
635 aodtrack->GetTrackPhiOnEMCal() > 70 * TMath::DegToRad() &&
636 aodtrack->GetTrackPhiOnEMCal() < 190 * TMath::DegToRad())
639 else if (fPicoTrackVersion > 0) { /*not AOD mode, let's see if it is PicoTrack*/
640 AliPicoTrack *ptrack = dynamic_cast<AliPicoTrack*>(track);
642 if (fPicoTrackVersion >= 3)
643 type = ptrack->GetTrackType();
645 type = ptrack->GetLabel();
646 isEmc = ptrack->IsEMCAL();
650 if (track->Pt() < fPtMin || track->Pt() > fPtMax ||
651 track->Eta() < fEtaMin || track->Eta() > fEtaMax ||
652 track->Phi() < fPhiMin || track->Phi() > fPhiMax) {
653 AliDebug(3, "Track not embedded because out of limits.");
657 if (fTrackEfficiency < 1) {
658 Double_t r = gRandom->Rndm();
659 if (fTrackEfficiency < r) {
660 AliDebug(3, "Track not embedded because of artificial inefiiciency.");
667 if (fUseNegativeLabels)
668 label = track->GetLabel();
670 label = TMath::Abs(track->GetLabel());
673 AliDebug(1,Form("%s: Track %d with label==0", GetName(), i));
676 AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), track->GetTrackPtOnEMCal(), isEmc, label, track->Charge());
677 AliDebug(3, "Track embedded!");
684 if (fCopyArray && fClusters)
688 for (Int_t i = 0; i < fAODClusters->GetEntriesFast(); i++) {
689 AliVCluster *clus = static_cast<AliVCluster*>(fAODClusters->At(i));
691 AliError(Form("Could not find cluster %d in branch %s of tree %s!", i, fAODClusName.Data(), fAODTreeName.Data()));
695 if (!clus->IsEMCAL())
699 Double_t vert[3] = {0,0,0};
700 clus->GetMomentum(vect,vert);
702 if (vect.Pt() < fPtMin || vect.Pt() > fPtMax ||
703 vect.Eta() < fEtaMin || vect.Eta() > fEtaMax ||
704 vect.Phi() < fPhiMin || vect.Phi() > fPhiMax)
709 label = clus->GetLabel();
711 AliDebug(1,Form("%s: Clus %d with label<=0", GetName(), i));
720 Double_t totalEnergy = 0;
721 Int_t totalCells = 0;
724 totalCells += fCaloCells->GetNumberOfCells();
726 totalCells += fAODCaloCells->GetNumberOfCells();
728 SetNumberOfOutCells(totalCells);
734 for (Short_t i = 0; i < fAODCaloCells->GetNumberOfCells(); i++) {
738 Short_t cellNum = -1;
741 fAODCaloCells->GetCell(i, cellNum, amp, time, mclabel, efrac);
745 AliDebug(1,Form("%s: Cell %d with label<=0", GetName(), i));
751 AliDebug(2,Form("Adding cell with amplitude %f, absolute ID %d, time %f, mc label %d", amp, cellNum, time, mclabel));
752 AddCell(amp, cellNum, time, mclabel);
756 AliDebug(2,Form("Added cells = %d (energy = %f), total cells = %d", fAddedCells, totalEnergy, totalCells));
760 //________________________________________________________________________
761 TLorentzVector AliJetEmbeddingFromAODTask::GetLeadingJet(TClonesArray *tracks, TClonesArray *clusters)
764 fastjet::JetAlgorithm jalgo(fastjet::kt_algorithm);
767 jalgo = fastjet::antikt_algorithm;
771 AliFJWrapper fjw(name, name);
772 fjw.SetAreaType(fastjet::active_area_explicit_ghosts);
773 fjw.SetGhostArea(1); // set a very large ghost area to speed up jet finding
774 fjw.SetR(fJetRadius);
775 fjw.SetAlgorithm(jalgo);
780 const Int_t Ntracks = tracks->GetEntries();
781 for (Int_t iTracks = 0; iTracks < Ntracks; ++iTracks) {
782 AliVParticle *t = static_cast<AliVParticle*>(tracks->At(iTracks));
786 AliAODMCParticle *aodmcpart = dynamic_cast<AliAODMCParticle*>(t);
787 if (aodmcpart && !aodmcpart->IsPhysicalPrimary())
790 if ((fJetType == 1 && t->Charge() == 0) ||
791 (fJetType == 2 && t->Charge() != 0))
794 if (t->Pt() < fJetConstituentMinPt)
797 fjw.AddInputVector(t->Px(), t->Py(), t->Pz(), t->P(), iTracks + 100);
801 if (clusters && fJetType != 1) {
802 Double_t vert[3]={0};
804 ((AliVVertex*)fAODVertex->At(0))->GetXYZ(vert);
806 const Int_t Nclus = clusters->GetEntries();
807 for (Int_t iClus = 0; iClus < Nclus; ++iClus) {
808 AliVCluster *c = static_cast<AliVCluster*>(clusters->At(iClus));
816 c->GetMomentum(nP, vert);
818 if (nP.Pt() < fJetConstituentMinPt)
821 fjw.AddInputVector(nP.Px(), nP.Py(), nP.Pz(), nP.P(), -iClus - 100);
828 std::vector<fastjet::PseudoJet> jets_incl = fjw.GetInclusiveJets();
829 AliDebug(1,Form("%d jets found", (Int_t)jets_incl.size()));
833 Int_t njets = jets_incl.size();
836 //std::vector<fastjet::PseudoJet> jets_incl_sorted = fastjet::sorted_by_pt(jets_incl);
837 for (Int_t i = 0; i < njets; i++) {
838 if (jet.Pt() >= jets_incl[i].perp())
840 if (jets_incl[i].eta() < fJetMinEta || jets_incl[i].eta() > fJetMaxEta || jets_incl[i].phi() < fJetMinPhi || jets_incl[i].phi() > fJetMaxPhi)
842 jet.SetPxPyPzE(jets_incl[i].px(), jets_incl[i].py(), jets_incl[i].pz(), jets_incl[i].E());