+
+ //=========================== Full jet vs charged jet matrix ==========================
+ if(fIsFullMC){
+ //Count full jets and charged-jet pairs at MC generator level
+ for(Int_t ij=0; ij<fListJetsGenFull->GetEntries(); ij++){
+ AliAODJet* jetFull = (AliAODJet*)(fListJetsGenFull->At(ij));
+ if(!jetFull) continue;
+ Double_t etaJetFull = jetFull->Eta();
+ Double_t ptJetFull = jetFull->Pt();
+
+ if((fJetEtaMin<=etaJetFull) && (etaJetFull<=fJetEtaMax)){
+ fhJetPtGenFull->Fill(ptJetFull); // generator level pt spectum of full jets
+ }
+ }
+ if(fListJetsGen->GetEntries()>0 && fListJetsGenFull->GetEntries()>0){ //at least some reconstructed jets
+ Int_t nful = (Int_t) fListJetsGenFull->GetEntries();
+ Int_t nchr = (Int_t) fListJetsGen->GetEntries();
+
+ //Find closest MC generator full - charged jet
+ if(faGenIndex.GetSize()<nchr) faGenIndex.Set(nchr); //idx of gen FULL jet assoc to gen CHARGED jet
+ if(faRecIndex.GetSize()<nful) faRecIndex.Set(nful); //idx of gen CHARGED jet assoc to gen FULL jet
+
+ if(fDebug){
+ Printf("New Charg List %d Full index Array %d",nchr,faGenIndex.GetSize());
+ Printf("New Full List %d Charg index Array %d",nful,faRecIndex.GetSize());
+ }
+ //matching of MC genrator level and reconstructed jets
+ AliAnalysisHelperJetTasks::GetClosestJets(fListJetsGenFull,nful,fListJetsGen,nchr,faGenIndex,faRecIndex,fDebug);
+
+ // Fill response matrix
+ for(Int_t ichr = 0; ichr < nchr; ichr++){ //charged jet loop
+ AliAODJet *chJet = (AliAODJet*) fListJetsGen->At(ichr);
+ Double_t etaJetCh = chJet->Eta();
+ Double_t ptJetCh = chJet->Pt();
+ //fill response matrix if generator and reconstructed jets are within |eta|<0.9-fiduc
+
+ if((fJetEtaMin <= etaJetCh) && (etaJetCh <= fJetEtaMax)){
+ Int_t iful = faGenIndex[ichr]; //associated generator level jet
+ if(iful >= 0 && iful < nful){
+ if(fDebug > 10) Printf("%s:%d iful = %d ichr = %d",(char*)__FILE__,__LINE__,iful,ichr);
+ AliAODJet *genJetFull = (AliAODJet*) fListJetsGenFull->At(iful);
+ Double_t ptJetFull = genJetFull->Pt();
+ Double_t etaJetFull = genJetFull->Eta();
+
+ //fill response matrix if generator and reconstructed jets are within |eta|<0.9-fiduc
+ if((fJetEtaMin <= etaJetFull) && (etaJetFull <= fJetEtaMax)){
+ fhJetPtGenChargVsJetPtGenFull->Fill(ptJetFull,ptJetCh);
+ }
+ }//iful>=0
+ }//rec jet in eta acceptance
+ }//loop over reconstructed jets
+ }// # of rec jets >0
+ }//pointer MC generator jets
+ } //fill resp mx only for bin
+ }//analyze generator level MC
+
+
+ if(fIsKine){ //skip reconstructed data analysis in case of kine
+ PostData(1, fOutputList);
+ return;
+ }