]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
from Megan
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Apr 2013 14:32:57 +0000 (14:32 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Apr 2013 14:32:57 +0000 (14:32 +0000)
PWGJE/EMCALJetTasks/AliAnalysisTaskRho.cxx
PWGJE/EMCALJetTasks/AliAnalysisTaskRho.h
PWGJE/EMCALJetTasks/AliAnalysisTaskRhoSparse.cxx
PWGJE/EMCALJetTasks/AliAnalysisTaskRhoSparse.h
PWGJE/EMCALJetTasks/AliEmcalJetTask.cxx

index 45263c4d3908132742372832445b06a3a342f848..c7a9ca43478166a399f2ddb5b847d825b443bb91 100644 (file)
@@ -21,6 +21,7 @@ ClassImp(AliAnalysisTaskRho)
 //________________________________________________________________________
 AliAnalysisTaskRho::AliAnalysisTaskRho() : 
   AliAnalysisTaskRhoBase("AliAnalysisTaskRho"),
+  fHistOccCorrvsCent(0),
   fNExclLeadJets(0)
 {
   // Constructor.
@@ -29,11 +30,24 @@ AliAnalysisTaskRho::AliAnalysisTaskRho() :
 //________________________________________________________________________
 AliAnalysisTaskRho::AliAnalysisTaskRho(const char *name, Bool_t histo) :
   AliAnalysisTaskRhoBase(name, histo),
+  fHistOccCorrvsCent(0),
   fNExclLeadJets(0)
 {
   // Constructor.
 }
 
+//________________________________________________________________________
+void AliAnalysisTaskRho::UserCreateOutputObjects()
+{
+  if (!fCreateHisto)
+    return;
+
+  AliAnalysisTaskRhoBase::UserCreateOutputObjects();
+  
+  fHistOccCorrvsCent = new TH2F("OccCorrvsCent", "OccCorrvsCent", 101, -1, 100, 2000, 0 , 2);
+  fOutput->Add(fHistOccCorrvsCent);
+}
+
 //________________________________________________________________________
 Bool_t AliAnalysisTaskRho::Run() 
 {
@@ -80,6 +94,8 @@ Bool_t AliAnalysisTaskRho::Run()
 
   static Double_t rhovec[999];
   Int_t NjetAcc = 0;
+  Double_t TotaljetArea=0;
+  Double_t TotaljetAreaPhys=0;
 
   // push all jets within selected acceptance into stack
   for (Int_t iJets = 0; iJets < Njets; ++iJets) {
@@ -94,20 +110,41 @@ Bool_t AliAnalysisTaskRho::Run()
       continue;
     } 
 
+    //cout << "jetpt: " << jet->Pt() << " jetArea: " << jet->Area() <<endl;
+
     if (!AcceptJet(jet))
       continue;
 
-    rhovec[NjetAcc] = jet->Pt() / jet->Area();
+
+    if(jet->Pt()>0.01) rhovec[NjetAcc] = jet->Pt() / jet->Area();
+    //cout << "ACCEPTED: jetpt: " << jet->Pt() << " jetArea: " << jet->Area() << " jetRho: " << rhovec[NjetAcc] <<endl;
+    if(jet->Pt()>0.01) TotaljetAreaPhys+=jet->Area();
+    TotaljetArea+=jet->Area();
     ++NjetAcc;
   }
 
+  const Double_t TpcMaxPhi = TMath::Pi()*2.;
+
+  const Double_t TpcArea = TpcMaxPhi * 2.*(0.7);
+  Double_t OccCorr=0.0;
+  //cout << "Area Physical: " << TotaljetAreaPhys << " total: " << TotaljetArea <<endl;
+  //if(TotaljetArea>0) OccCorr=TotaljetAreaPhys/TotaljetArea;
+  if(TpcArea>0) OccCorr=TotaljetAreaPhys/TpcArea;
+  fHistOccCorrvsCent->Fill(fCent, OccCorr);
+
+  //cout << "Accepted " << NjetAcc << " of " << Njets <<endl;
+  //if (fOccCorr)fOccCorr->SetVal(OccCorr);
+
   if (NjetAcc > 0) {
     //find median value
     Double_t rho = TMath::Median(NjetAcc, rhovec);
     fRho->SetVal(rho);
 
     if (fRhoScaled) {
-      Double_t rhoScaled = rho * GetScaleFactor(fCent);
+      //Double_t rhoScaled = rho * GetScaleFactor(fCent);
+      Double_t rhoScaled = rho * OccCorr;
+      //cout << "OCC_CORR " << OccCorr <<endl;
       fRhoScaled->SetVal(rhoScaled);
     }
   }
index b54a79786fb6f345c2dc235340590b3017bd8e1a..89e3af6c504f1523c8de2159f7e8e1c7a8899ff7 100644 (file)
@@ -12,16 +12,18 @@ class AliAnalysisTaskRho : public AliAnalysisTaskRhoBase {
   AliAnalysisTaskRho(const char *name, Bool_t histo=kFALSE);
   virtual ~AliAnalysisTaskRho() {}
 
+  void                   UserCreateOutputObjects();
   void             SetExcludeLeadJets(UInt_t n)    { fNExclLeadJets = n    ; }
 
  protected:
   Bool_t           Run();
+  TH2F                  *fHistOccCorrvsCent;             //!occupancy correction vs. centrality
 
   UInt_t           fNExclLeadJets;                 // number of leading jets to be excluded from the median calculation
 
   AliAnalysisTaskRho(const AliAnalysisTaskRho&);             // not implemented
   AliAnalysisTaskRho& operator=(const AliAnalysisTaskRho&);  // not implemented
   
-  ClassDef(AliAnalysisTaskRho, 8); // Rho task
+  ClassDef(AliAnalysisTaskRho, 9); // Rho task
 };
 #endif
index 41ef12964f03c9a39b2d04a9a88068fe7f5609cc..557a05f757ca58a261126a5c631e8483ee68c016 100644 (file)
@@ -23,7 +23,8 @@ AliAnalysisTaskRhoSparse::AliAnalysisTaskRhoSparse() :
   AliAnalysisTaskRhoBase("AliAnalysisTaskRhoSparse"),
   fHistOccCorrvsCent(0),
   fNExclLeadJets(0),
-  fRhoCMS(0)
+  fRhoCMS(0),
+  fSigJetsName("SJets")
 {
   // Constructor.
 }
@@ -33,7 +34,8 @@ AliAnalysisTaskRhoSparse::AliAnalysisTaskRhoSparse(const char *name, Bool_t hist
   AliAnalysisTaskRhoBase(name, histo),
   fHistOccCorrvsCent(0),
   fNExclLeadJets(0),
-  fRhoCMS(0)
+  fRhoCMS(0),
+  fSigJetsName("SJets")
 {
   // Constructor.
 }
@@ -50,6 +52,33 @@ void AliAnalysisTaskRhoSparse::UserCreateOutputObjects()
   fOutput->Add(fHistOccCorrvsCent);
 }
 
+//________________________________________________________________________
+Bool_t AliAnalysisTaskRhoSparse::IsJetOverlapping(AliEmcalJet* jet1, AliEmcalJet* jet2)
+{
+  for (Int_t i = 0; i < jet1->GetNumberOfTracks(); ++i)
+  {
+    Int_t jet1Track = jet1->TrackAt(i);
+    for (Int_t j = 0; j < jet2->GetNumberOfTracks(); ++j)
+    {
+      Int_t jet2Track = jet2->TrackAt(j);
+      if (jet1Track == jet2Track)
+        return kTRUE;
+    }
+  }
+  return kFALSE;
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskRhoSparse::IsJetSignal(AliEmcalJet* jet)
+{
+  if(jet->Pt()>5){
+      return kTRUE;
+  }else{
+    return kFALSE;
+  }
+}
+
+
 //________________________________________________________________________
 Bool_t AliAnalysisTaskRhoSparse::Run() 
 {
@@ -64,6 +93,13 @@ Bool_t AliAnalysisTaskRhoSparse::Run()
 
   const Int_t Njets   = fJets->GetEntries();
 
+  TClonesArray *sigjets = 0;
+  sigjets= dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fSigJetsName));
+
+  Int_t NjetsSig = 0;
+  if(sigjets) NjetsSig = sigjets->GetEntries();
+
   Int_t maxJetIds[]   = {-1, -1};
   Float_t maxJetPts[] = { 0,  0};
 
@@ -112,17 +148,37 @@ Bool_t AliAnalysisTaskRhoSparse::Run()
       continue;
     } 
 
-    //cout << "jetpt: " << jet->Pt() << " jetArea: " << jet->Area() <<endl;
-
     if (!AcceptJet(jet))
       continue;
 
+   // Search for overlap with signal jets
+    Bool_t isOverlapping = kFALSE;
+    if(sigjets){
+      for(Int_t j=0;j<NjetsSig;j++)
+       {
+         AliEmcalJet* signalJet = static_cast<AliEmcalJet*>(sigjets->At(j));
+         if(!AcceptJet(signalJet))
+           continue;
+         if(!IsJetSignal(signalJet))     
+           continue;
+         
+         if(IsJetOverlapping(signalJet, jet))
+           {
+             isOverlapping = kTRUE;
+             break;
+           }
+       }
+    }
+
+    if(isOverlapping) 
+      continue;
 
-    if(jet->Pt()>0.01) rhovec[NjetAcc] = jet->Pt() / jet->Area();
-    //cout << "ACCEPTED: jetpt: " << jet->Pt() << " jetArea: " << jet->Area() << " jetRho: " << rhovec[NjetAcc] <<endl;
-    if(jet->Pt()>0.01) TotaljetAreaPhys+=jet->Area();
+    rhovec[NjetAcc] = jet->Pt() / jet->Area();
+
+    TotaljetAreaPhys+=jet->Area();
     TotaljetArea+=jet->Area();
     ++NjetAcc;
+
   }
 
   const Double_t TpcMaxPhi = TMath::Pi()*2.;
index 3cb4fda091aa08116ae3a61f481c0420dcedb3d2..e8797677c5ebde2369fa0707e7a46845dd070a4f 100644 (file)
@@ -15,6 +15,9 @@ class AliAnalysisTaskRhoSparse : public AliAnalysisTaskRhoBase {
   void             UserCreateOutputObjects();
   void             SetExcludeLeadJets(UInt_t n)    { fNExclLeadJets = n    ; }
   void             SetRhoCMS(Bool_t cms)           { fRhoCMS = cms ; }
+  void             SetSigJetsName(const char *n)   { fSigJetsName = n ; }
+  Bool_t           IsJetOverlapping(AliEmcalJet* jet1, AliEmcalJet* jet2);
+  Bool_t           IsJetSignal(AliEmcalJet* jet1);
 
 
  protected:
@@ -23,12 +26,13 @@ class AliAnalysisTaskRhoSparse : public AliAnalysisTaskRhoBase {
 
   UInt_t           fNExclLeadJets;                 // number of leading jets to be excluded from the median calculation
 
-  Bool_t           fRhoCMS;
+  Bool_t           fRhoCMS;                      //Flag to run CMS method
+  TString          fSigJetsName;      //name of anti-kT jet collection used for excluding the signal from the rho calculation 
 
 
   AliAnalysisTaskRhoSparse(const AliAnalysisTaskRhoSparse&);             // not implemented
   AliAnalysisTaskRhoSparse& operator=(const AliAnalysisTaskRhoSparse&);  // not implemented
   
-  ClassDef(AliAnalysisTaskRhoSparse, 1); // Rho task
+  ClassDef(AliAnalysisTaskRhoSparse, 2); // Rho task
 };
 #endif
index 7924e86a6c32e8aaa026767db1e9f79ffd1403d2..27cd2d66e94a07d20cea7ed4a70eb9007c64ce4e 100644 (file)
@@ -122,7 +122,6 @@ void AliEmcalJetTask::UserCreateOutputObjects()
 void AliEmcalJetTask::UserExec(Option_t *) 
 {
   // Main loop, called for each event.
-
   if (!fIsInit) {
     if (!DoInit())
       return;
@@ -142,9 +141,11 @@ void AliEmcalJetTask::Terminate(Option_t *)
 void AliEmcalJetTask::FindJets()
 {
   // Find jets.
-
-  if (!fTracks && !fClus)
+  if (!fTracks && !fClus){
+    cout << "WARNING NO TRACKS OR CLUSTERS:"  <<endl;
     return;
+  }
+
 
   TString name("kt");
   fastjet::JetAlgorithm jalgo(fastjet::kt_algorithm);