]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
updates from Salvatore
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2012 21:04:55 +0000 (21:04 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2012 21:04:55 +0000 (21:04 +0000)
PWGGA/EMCALTasks/AliAnalysisTaskSAJF.cxx
PWGGA/EMCALTasks/AliAnalysisTaskSAJF.h
PWGGA/EMCALTasks/AliAnalysisTaskSAQA.cxx
PWGGA/EMCALTasks/AliAnalysisTaskSAQA.h

index 7f82f96339a382f6d45a75220d75d540fbc1dac1..557f0c7e216f7699ae23bfbf77b34022ad475a71 100644 (file)
@@ -652,7 +652,7 @@ void AliAnalysisTaskSAJF::DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)
 }
 
 //________________________________________________________________________
-Float_t AliAnalysisTaskSAJF::DoKtJetLoop()
+Float_t AliAnalysisTaskSAJF::DoKtJetLoop(Int_t nLJs)
 {
   Float_t ktJetsMedian = 0;
   Int_t nktjets =  GetNumberOfKtJets();
@@ -689,11 +689,15 @@ Float_t AliAnalysisTaskSAJF::DoKtJetLoop()
     } //kt jet loop 
 
     nktjets -= NoOfZeroJets;
+    
+    if (nktjets < 1) return 0;
+
     memmove(ktJets.GetArray(), ktJets.GetArray() + NoOfZeroJets, nktjets * sizeof(Float_t));
 
-    if (nktjets < 3) return 0;
+    nktjets -= nLJs;
+
+    if (nktjets < 1) return 0;
 
-    nktjets -= 2;
     if (nktjets % 2)
       ktJetsMedian = ktJets[nktjets / 2];
     else
@@ -784,7 +788,10 @@ Bool_t AliAnalysisTaskSAJF::DoEmbJetLoop(Float_t &maxJetPt, Float_t &maxPartPt)
 //________________________________________________________________________
 Float_t AliAnalysisTaskSAJF::DoTrackLoop(Int_t maxJetIndex, Int_t max2JetIndex)
 { 
-  AliEmcalJet* jet = GetJet(maxJetIndex);
+  AliEmcalJet* jet = 0;
+  if (max2JetIndex >= 0)
+    jet = GetJet(maxJetIndex);
+
   AliEmcalJet* jet2 = 0;
   if (max2JetIndex >= 0)
     jet2 = GetJet(max2JetIndex);
@@ -795,34 +802,36 @@ Float_t AliAnalysisTaskSAJF::DoTrackLoop(Int_t maxJetIndex, Int_t max2JetIndex)
   for(Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
     AliVTrack* track = GetTrack(iTracks);         
     if(!track) {
-      AliError(Form("ERROR: Could not retrieve track %d",iTracks)); 
+      AliError(Form("Could not retrieve track %d",iTracks)); 
       continue; 
     }
     
     if (!AcceptTrack(track)) continue;
     
-    if (IsJetTrack(jet, iTracks)) {
+    if (jet && IsJetTrack(jet, iTracks)) {
       fHistTracksPtLJ[fCentBin]->Fill(track->Pt());
     }
     else if (!jet2 || !IsJetTrack(jet2, iTracks)) {
       fHistTracksPtBkg[fCentBin]->Fill(track->Pt());
       rhoTracks += track->Pt();
       
-      Float_t dphijet = jet->Phi() - track->Phi();
-      if (dphijet < -1.6) dphijet += TMath::Pi() * 2;
-      if (dphijet > 4.8) dphijet -= TMath::Pi() * 2;
-      fHistBkgLJetPhiCorr[fCentBin]->Fill(dphijet);
+      if (jet) {
+       Float_t dphijet = jet->Phi() - track->Phi();
+       if (dphijet < -1.6) dphijet += TMath::Pi() * 2;
+       if (dphijet > 4.8) dphijet -= TMath::Pi() * 2;
+       fHistBkgLJetPhiCorr[fCentBin]->Fill(dphijet);
+      }
 
       for(Int_t it2 = iTracks+1; it2 < ntracks; it2++) {
        AliVTrack* track2 = GetTrack(it2);         
        if(!track2) {
-         AliError(Form("ERROR: Could not retrieve track %d", it2)); 
+         AliError(Form("Could not retrieve track %d", it2)); 
          continue; 
        }
        
        if (!AcceptTrack(track2)) continue;
        
-       if (IsJetTrack(jet, it2)) continue;
+       if (jet && IsJetTrack(jet, it2)) continue;
 
        if (jet2 && IsJetTrack(jet2, it2)) continue;
        
@@ -843,7 +852,10 @@ Float_t AliAnalysisTaskSAJF::DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex
   Double_t vertex[3] = {0, 0, 0};
   InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
 
-  AliEmcalJet* jet = GetJet(maxJetIndex);
+  AliEmcalJet* jet = 0;
+  if (max2JetIndex >= 0)
+    jet = GetJet(maxJetIndex);
+
   AliEmcalJet* jet2 = 0;
   if (max2JetIndex >= 0)
     jet2 = GetJet(max2JetIndex);
@@ -864,7 +876,7 @@ Float_t AliAnalysisTaskSAJF::DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex
     TLorentzVector nPart;
     cluster->GetMomentum(nPart, vertex);
 
-    if (IsJetCluster(jet, iClusters)) {
+    if (jet && IsJetCluster(jet, iClusters)) {
       fHistClusEtLJ[fCentBin]->Fill(nPart.Et());
     }
     else if (!jet2 || !IsJetCluster(jet2, iClusters)) {
@@ -875,10 +887,12 @@ Float_t AliAnalysisTaskSAJF::DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex
       cluster->GetPosition(pos1);
       TVector3 clusVec1(pos1);
 
-      Float_t dphijet = jet->Phi() - clusVec1.Phi();
-      if (dphijet < -1.6) dphijet += TMath::Pi() * 2;
-      if (dphijet > 4.8) dphijet -= TMath::Pi() * 2;
-      fHistBkgLJetPhiCorr[fCentBin]->Fill(dphijet);
+      if (jet) {
+       Float_t dphijet = jet->Phi() - clusVec1.Phi();
+       if (dphijet < -1.6) dphijet += TMath::Pi() * 2;
+       if (dphijet > 4.8) dphijet -= TMath::Pi() * 2;
+       fHistBkgLJetPhiCorr[fCentBin]->Fill(dphijet);
+      }
 
       for(Int_t ic2 = iClusters+1; ic2 < nclusters; ic2++) {
        AliVCluster* cluster2 = GetCaloCluster(ic2);
@@ -891,7 +905,7 @@ Float_t AliAnalysisTaskSAJF::DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex
 
        if (!AcceptCluster(cluster)) continue;
        
-       if (IsJetCluster(jet, ic2)) continue;
+       if (jet && IsJetCluster(jet, ic2)) continue;
        
        if (jet2 && IsJetCluster(jet2, ic2)) continue;
 
@@ -991,7 +1005,7 @@ Float_t AliAnalysisTaskSAJF::GetRigidConePt(AliEmcalJet *jet, Float_t minD)
   for(Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
     AliVTrack* track = GetTrack(iTracks);         
     if(!track) {
-      AliError(Form("ERROR: Could not retrieve track %d",iTracks)); 
+      AliError(Form("Could not retrieve track %d",iTracks)); 
       continue; 
     }
     
index dfcfee4822451d859fa1a7bc2264208e76d6a2cf..8827771abc9b40a89234fed32666c2b744b3c188 100644 (file)
@@ -66,7 +66,7 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskSE {
   void                        RetrieveEventObjects()                                                    ;
   void                        FillHistograms()                                                          ;
   void                        DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)                        ;
-  Float_t                     DoKtJetLoop()                                                             ;
+  Float_t                     DoKtJetLoop(Int_t nLJs = 2)                                                             ;
   Bool_t                      DoEmbJetLoop(Float_t &maxJetPt, Float_t &maxPartPt)                       ;
   Float_t                     DoTrackLoop(Int_t maxJetIndex, Int_t max2JetIndex)                        ;
   Float_t                     DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex)                      ;
index 3df63c60a92737225caebad720b47ff56475f593..39f17845fdeaebe46d8f52ad5bf81d2aa5116d7f 100644 (file)
@@ -42,14 +42,14 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
   fHistCentrality(0),
   fHistTracksCent(0),
   fHistClusCent(0),
-  fHistMaxL1Cent(0),
+  fHistMaxL1FastORCent(0),
+  fHistMaxL1ClusCent(0),
+  fHistMaxL1ThrCent(0),
   fHistTracksPt(0),
   fHistClustersEnergy(0),
   fHistEoverP(0),
   fHistTrPhiEta(0),
   fHistClusPhiEta(0),
-  fHistMaxTrgCluster(0),
-  fHistMaxTrgClusVSMaxL1(0),
   fHistClusPhiCorr(0),
   fHistTracksPhiCorr(0),
   fHistChVSneCells(0),
@@ -86,14 +86,14 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
   fHistCentrality(0),
   fHistTracksCent(0),
   fHistClusCent(0),
-  fHistMaxL1Cent(0),
+  fHistMaxL1FastORCent(0),
+  fHistMaxL1ClusCent(0),
+  fHistMaxL1ThrCent(0),
   fHistTracksPt(0),
   fHistClustersEnergy(0),
   fHistEoverP(0),
   fHistTrPhiEta(0),
   fHistClusPhiEta(0),
-  fHistMaxTrgCluster(0),
-  fHistMaxTrgClusVSMaxL1(0),
   fHistClusPhiCorr(0),
   fHistTracksPhiCorr(0),
   fHistChVSneCells(0),
@@ -143,10 +143,20 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
   fHistClusCent->GetYaxis()->SetTitle("No. of clusters");
   fOutput->Add(fHistClusCent);
 
-  fHistMaxL1Cent = new TH2F("fHistMaxL1Cent","L1 Time Sum Amplitude vs. centrality", 100, 0, 100, 250, 0, 250);
-  fHistMaxL1Cent->GetXaxis()->SetTitle("Centrality [%]");
-  fHistMaxL1Cent->GetYaxis()->SetTitle("Maximum L1 Time Sum Amplitude");
-  fOutput->Add(fHistMaxL1Cent);
+  fHistMaxL1FastORCent = new TH2F("fHistMaxL1FastORCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
+  fHistMaxL1FastORCent->GetXaxis()->SetTitle("Centrality [%]");
+  fHistMaxL1FastORCent->GetYaxis()->SetTitle("Maximum L1 FastOR");
+  fOutput->Add(fHistMaxL1FastORCent);
+
+  fHistMaxL1ClusCent = new TH2F("fHistMaxL1ClusCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
+  fHistMaxL1ClusCent->GetXaxis()->SetTitle("Centrality [%]");
+  fHistMaxL1ClusCent->GetYaxis()->SetTitle("Maximum L1 trigger cluster");
+  fOutput->Add(fHistMaxL1ClusCent);
+
+  fHistMaxL1ThrCent = new TH2F("fHistMaxL1ThrCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
+  fHistMaxL1ThrCent->GetXaxis()->SetTitle("Centrality [%]");
+  fHistMaxL1ThrCent->GetYaxis()->SetTitle("Maximum L1 threshold");
+  fOutput->Add(fHistMaxL1ThrCent);
     
   fHistTracksPt = new TH1F("fHistTracksPt","P_{T} spectrum of reconstructed tracks", fNbins, fMinPt, fMaxPt);
   fHistTracksPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");
@@ -173,16 +183,6 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
   fHistClusPhiEta->GetYaxis()->SetTitle("Phi");
   fOutput->Add(fHistClusPhiEta);
 
-  fHistMaxTrgCluster = new TH1F("fHistMaxTrgCluster","Energy distribution of max trigger clusters", fNbins, fMinPt, fMaxPt);
-  fHistMaxTrgCluster->GetXaxis()->SetTitle("E [GeV]");
-  fHistMaxTrgCluster->GetYaxis()->SetTitle("counts");
-  fOutput->Add(fHistMaxTrgCluster);
-
-  fHistMaxTrgClusVSMaxL1 = new TH2F("fHistMaxTrgClusVSMaxL1","Max trigger cluster energy vs. L1 Time Sum Amplitude", 250, 0, 250, fNbins, fMinPt, fMaxPt);
-  fHistMaxTrgClusVSMaxL1->GetXaxis()->SetTitle("Maximum L1 Time Sum Amplitude");
-  fHistMaxTrgClusVSMaxL1->GetYaxis()->SetTitle("Maximum trigger cluster energy [GeV]");
-  fOutput->Add(fHistMaxTrgClusVSMaxL1);
-
   fHistTracksPhiCorr = new TH1F("fHistTracksPhiCorr", "fHistTracksPhiCorr", 128, -1.6, 4.8);
   fHistTracksPhiCorr->GetXaxis()->SetTitle("#Delta#phi");
   fHistTracksPhiCorr->GetYaxis()->SetTitle("counts");
@@ -331,14 +331,18 @@ void AliAnalysisTaskSAQA::FillHistograms()
   fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
 
   Float_t maxTrgClus = DoTriggerClusLoop();
-  fHistMaxTrgCluster->Fill(maxTrgClus);
+  fHistMaxL1ClusCent->Fill(cent, maxTrgClus);
   
-  Float_t maxL1amp = DoTriggerPrimitives();
+  Int_t maxL1amp = -1;
+  Int_t maxL1thr = -1;
 
-  if (maxL1amp > -1) {
-    fHistMaxL1Cent->Fill(cent, maxL1amp);
-    fHistMaxTrgClusVSMaxL1->Fill(maxL1amp, maxTrgClus);
-  }
+  DoTriggerPrimitives(maxL1amp, maxL1thr);
+
+  if (maxL1amp > -1) 
+    fHistMaxL1FastORCent->Fill(cent, maxL1amp);
+
+  if (maxL1thr > -1) 
+    fHistMaxL1ThrCent->Fill(cent, maxL1thr);
 }
 
 //________________________________________________________________________
@@ -508,20 +512,20 @@ Float_t AliAnalysisTaskSAQA::DoTriggerClusLoop()
 }
 
 //________________________________________________________________________
-Float_t AliAnalysisTaskSAQA::DoTriggerPrimitives()
+void AliAnalysisTaskSAQA::DoTriggerPrimitives(Int_t &maxL1amp, Int_t &maxL1thr)
 {
   AliVCaloTrigger *triggers = InputEvent()->GetCaloTrigger("EMCAL");
 
   if (!triggers || triggers->GetEntries() == 0)
-    return -1;
+    return;
     
   triggers->Reset();
-  Float_t L0FastORamp = 0;
+  //Float_t L0FastORamp = 0;
   Int_t L1amp = 0;
-  Int_t maxL1amp = -1;
-  
+  Int_t L1thr = 0;
+
   while (triggers->Next()) {
-    
+    /*
     triggers->GetAmplitude(L0FastORamp);
     
     if (L0FastORamp < 0)
@@ -549,25 +553,27 @@ Float_t AliAnalysisTaskSAQA::DoTriggerPrimitives()
     Int_t gCol = 0, gRow = 0;
     triggers->GetPosition(gCol, gRow);
     
-    //Int_t find = -1;
-    //fGeom->GetAbsFastORIndexFromPositionInEMCAL(gCol, gRow, find);
+    Int_t find = -1;
+    fGeom->GetAbsFastORIndexFromPositionInEMCAL(gCol, gRow, find);
       
-    //if (find < 0)
-    //continue;
-    
-    //Int_t cidx[4] = {-1};
-    //Bool_t ret = fGeom->GetCellIndexFromFastORIndex(find, cidx);
+    if (find < 0)
+      continue;
     
-    //if (!ret)
-    //continue;
+    Int_t cidx[4] = {-1};
+    Bool_t ret = fGeom->GetCellIndexFromFastORIndex(find, cidx);
     
+    if (!ret)
+      continue;
+    */
+
     triggers->GetL1TimeSum(L1amp);
-    
     if (maxL1amp < L1amp) 
       maxL1amp = L1amp;
-  }
 
-  return maxL1amp;
+    triggers->GetL1Threshold(L1thr);
+    if (maxL1thr < L1thr) 
+      maxL1thr = L1thr;
+  }
 }
 
 //________________________________________________________________________
index 38d099f800b38cc6b71005b43f78a54b7bf6b728..ce9687d6be75636282649b00c693156a687d3ba9 100644 (file)
@@ -31,20 +31,20 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskSE {
 
  protected:
 
-  AliVTrack                  *GetTrack(const Int_t i)                      const;
-  Int_t                       GetNumberOfTracks()                          const;
-  AliVCluster                *GetCaloCluster(const Int_t i)                const;
-  Int_t                       GetNumberOfCaloClusters()                    const;
-  AliVCluster                *GetTrgCluster(const Int_t i)                 const;
-  Int_t                       GetNumberOfTrgClusters()                     const;
-  Bool_t                      AcceptTrack(AliVTrack* /*track*/)            const;
-  void                        FillHistograms()                                  ;
-  void                        RetrieveEventObjects()                            ;
-  void                        DoCellLoop(Float_t &sum, Float_t &sum_cut)        ;
-  Float_t                     DoTriggerPrimitives()                             ;
-  Float_t                     DoTriggerClusLoop()                               ;
-  Float_t                     DoTrackLoop()                                     ;
-  Float_t                     DoClusterLoop()                                   ;
+  AliVTrack                  *GetTrack(const Int_t i)                              const;
+  Int_t                       GetNumberOfTracks()                                  const;
+  AliVCluster                *GetCaloCluster(const Int_t i)                        const;
+  Int_t                       GetNumberOfCaloClusters()                            const;
+  AliVCluster                *GetTrgCluster(const Int_t i)                         const;
+  Int_t                       GetNumberOfTrgClusters()                             const;
+  Bool_t                      AcceptTrack(AliVTrack* /*track*/)                    const;
+  void                        FillHistograms()                                          ;
+  void                        RetrieveEventObjects()                                    ;
+  void                        DoCellLoop(Float_t &sum, Float_t &sum_cut)                ;
+  void                        DoTriggerPrimitives(Int_t &maxL1amp, Int_t &maxL1thr)     ;
+  Float_t                     DoTriggerClusLoop()                                       ;
+  Float_t                     DoTrackLoop()                                             ;
+  Float_t                     DoClusterLoop()                                           ;
 
   TList                      *fOutput;                 // Output list
   Float_t                     fCellEnergyCut;          // Energy cell cut
@@ -56,22 +56,28 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskSE {
   TClonesArray               *fJets;                   //!Jets
   TClonesArray               *fTrgClusters;            //!Trg Clusters
   AliCentrality              *fCent;                   // Event centrality
+
   TH1F                       *fHistCentrality;         // Event centrality distribution
   TH2F                       *fHistTracksCent;         // Number of tracks vs. centrality
   TH2F                       *fHistClusCent;           // Number of clusters vs. centrality
-  TH2F                       *fHistMaxL1Cent;          // Maximum L1 time sum amplitude vs. centrality
+
+  TH2F                       *fHistMaxL1FastORCent;    // Maximum L1 trigger FastOR amplitude vs. centrality
+  TH2F                       *fHistMaxL1ClusCent;      // Maximum L1 trigger cluster amplitude vs. centrality
+  TH2F                       *fHistMaxL1ThrCent;       // Maximum L1 trigger threshold vs. centrality
   TH1F                       *fHistTracksPt;           // Pt spectrum of tracks
   TH1F                       *fHistClustersEnergy;     // Energy spectrum of clusters
   TH2F                       *fHistEoverP;             // E/P vs. E
   TH2F                       *fHistTrPhiEta;           // Phi-Eta distribution of tracks
   TH2F                       *fHistClusPhiEta;         // Phi-Eta distribution of clusters
-  TH1F                       *fHistMaxTrgCluster;      // Energy distribution of max trigger clusters
-  TH2F                       *fHistMaxTrgClusVSMaxL1;  // Max trigger cluster vs. max L1 time sum amplitude
+
   TH1F                       *fHistClusPhiCorr;        // Clusters phi correlations
   TH1F                       *fHistTracksPhiCorr;      // Tracks phi correlations
+
   TH2F                       *fHistChVSneCells;        // Charged vs. neutral (cells) energy
   TH2F                       *fHistChVSneClus;         // Charged vs. neutral (clusters) energy
   TH2F                       *fHistChVSneCorrCells;    // Charged vs. neutral (corrected cells) energy
+
   TH1F                       *fHistTrackPhi[5];        // Phi distribution of hybrid tracks
   TH1F                       *fHistTrackEta[5];        // Eta distribution of hybrid tracks