add histograms for combination of threshold 2 trigger when there is no threshold...
authorgconesab <gustavo.conesa.balbastre@cern.ch>
Mon, 17 Feb 2014 14:44:42 +0000 (15:44 +0100)
committergconesab <gustavo.conesa.balbastre@cern.ch>
Mon, 17 Feb 2014 14:45:13 +0000 (15:45 +0100)
PWGGA/EMCALTasks/AliAnalysisTaskEMCALTriggerQA.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALTriggerQA.h

index dada78d..4f317bd 100644 (file)
@@ -483,7 +483,10 @@ void AliAnalysisTaskEMCALTriggerQA::ClusterAnalysis()
     if( fEventL1G2) FillClusterHistograms(kL1GammaTrig2   ,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
     if( fEventL1J ) FillClusterHistograms(kL1JetTrig      ,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
     if( fEventL1J2) FillClusterHistograms(kL1JetTrig2     ,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
-    
+
+    if( fEventL1G2 && !fEventL1G) FillClusterHistograms(kL1Gamma2OnlyGammaTrig,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
+    if( fEventL1J2 && !fEventL1J) FillClusterHistograms(kL1Jet2OnlyJetTrig    ,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
+
     if( fEventL1G && !fEventL1J )
     FillClusterHistograms       (kL1GammaOnlyTrig,kFALSE,e,eta,phi,ieta,iphi,centrality,fV0A+fV0C);
     if( fEventL1J && !fEventL1G )
@@ -506,7 +509,10 @@ void AliAnalysisTaskEMCALTriggerQA::ClusterAnalysis()
   if( fEventL1G2) FillClusterHistograms(kL1GammaTrig2   ,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
   if( fEventL1J ) FillClusterHistograms(kL1JetTrig      ,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
   if( fEventL1J2) FillClusterHistograms(kL1JetTrig2     ,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
-  
+
+  if( fEventL1G2 && !fEventL1G) FillClusterHistograms(kL1Gamma2OnlyGammaTrig,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
+  if( fEventL1J2 && !fEventL1J) FillClusterHistograms(kL1Jet2OnlyJetTrig    ,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
+
   if( fEventL1G && !fEventL1J )
   FillClusterHistograms         (kL1GammaOnlyTrig,kTRUE,emax,etamax,phimax,ietamax,iphimax,centrality,fV0A+fV0C);
   if( fEventL1J && !fEventL1G )
@@ -647,8 +653,12 @@ void AliAnalysisTaskEMCALTriggerQA::FillEventCounterHistogram()
     if(fEventCen || fEventSem) fhNEvents->Fill(16.5);
   }
        
-  if( fEventL1G2 )fhNEvents->Fill(6.5);
-  if( fEventL1J2 )fhNEvents->Fill(8.5);
+  if( fEventL1G2 )
+  {
+    fhNEvents->Fill(6.5);
+    if( !fEventL1G ) fhNEvents->Fill(18.5);
+    
+  }
   
   if( fEventL1J )
   {
@@ -657,6 +667,12 @@ void AliAnalysisTaskEMCALTriggerQA::FillEventCounterHistogram()
     if(fEventCen || fEventSem) fhNEvents->Fill(17.5);
   }
   
+  if( fEventL1J2 )
+  {
+    fhNEvents->Fill(8.5);
+    if( !fEventL1J ) fhNEvents->Fill(19.5);
+  }
+  
   if(fEventL1J && fEventL1G) fhNEvents->Fill(11.5);
   
 }
@@ -915,9 +931,10 @@ void AliAnalysisTaskEMCALTriggerQA::FillV0Histograms()
     if( fEventL0  )  fhV0[kL0Trig]         ->Fill(fV0A+fV0C);
     if( fEventCen )  fhV0[kCentralTrig]    ->Fill(fV0A+fV0C);
     if( fEventSem )  fhV0[kSemiCentralTrig]->Fill(fV0A+fV0C);
-    if( fEventL1G && !fEventL1J)  fhV0[kL1GammaOnlyTrig]->Fill(fV0A+fV0C);
-    if( fEventL1J && !fEventL1G)  fhV0[kL1JetOnlyTrig]  ->Fill(fV0A+fV0C);
-    
+    if( fEventL1G  && !fEventL1J) fhV0[kL1GammaOnlyTrig]      ->Fill(fV0A+fV0C);
+    if( fEventL1J  && !fEventL1G) fhV0[kL1JetOnlyTrig]        ->Fill(fV0A+fV0C);
+    if( fEventL1G2 && !fEventL1G) fhV0[kL1Gamma2OnlyGammaTrig]->Fill(fV0A+fV0C);
+    if( fEventL1J2 && !fEventL1J) fhV0[kL1Jet2OnlyJetTrig]    ->Fill(fV0A+fV0C);
     //if(nL0Patch!=0 || nL1Patch!=0) printf("total TRU %f, total STU %f, V0C+V0A %f; nL0 %d, nL1 %d \n",
     //       fTRUTotal,fSTUTotal,fV0A+fV0C,nL0Patch,nL1Patch);
   }
@@ -1025,7 +1042,7 @@ void AliAnalysisTaskEMCALTriggerQA::InitHistogramArrays()
 {
   //Histograms array initialization
   
-  for (Int_t i = 0; i < 10; i++)
+  for (Int_t i = 0; i < fgkTriggerCombi; i++)
   {
     fhV0     [i] = 0;
     fhClus   [i] = 0;              fhClusMax   [i] = 0;
@@ -1098,27 +1115,29 @@ void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects()
   fOutputList  = new TList;
   fOutputList ->SetOwner(kTRUE);
   
-  fhNEvents    = new TH1F("hNEvents","Number of selected events",18,0,18);
+  fhNEvents    = new TH1F("hNEvents","Number of selected events",20,0,20);
   fhNEvents   ->SetYTitle("N events");
   fhNEvents   ->GetXaxis()->SetBinLabel(1 ,"All");
   fhNEvents   ->GetXaxis()->SetBinLabel(2 ,"MB");
   fhNEvents   ->GetXaxis()->SetBinLabel(3 ,"Central Pb");
   fhNEvents   ->GetXaxis()->SetBinLabel(4 ,"SemiCentral Pb");
   fhNEvents   ->GetXaxis()->SetBinLabel(5 ,"L0");
-  fhNEvents   ->GetXaxis()->SetBinLabel(6 ,"L1-G");
+  fhNEvents   ->GetXaxis()->SetBinLabel(6 ,"L1-G1");
   fhNEvents   ->GetXaxis()->SetBinLabel(7 ,"L1-G2");
-  fhNEvents   ->GetXaxis()->SetBinLabel(8 ,"L1-J");
+  fhNEvents   ->GetXaxis()->SetBinLabel(8 ,"L1-J1");
   fhNEvents   ->GetXaxis()->SetBinLabel(9 ,"L1-J2");
-  fhNEvents   ->GetXaxis()->SetBinLabel(10 ,"L1-G & !L1-J");
-  fhNEvents   ->GetXaxis()->SetBinLabel(11 ,"L1-J & !L1-G");
-  fhNEvents   ->GetXaxis()->SetBinLabel(12 ,"L1-J & L1-G");
+  fhNEvents   ->GetXaxis()->SetBinLabel(10 ,"L1-G1 & !L1-J1");
+  fhNEvents   ->GetXaxis()->SetBinLabel(11 ,"L1-J1 & !L1-G1");
+  fhNEvents   ->GetXaxis()->SetBinLabel(12 ,"L1-J1 & L1-G1");
   fhNEvents   ->GetXaxis()->SetBinLabel(13 ,"MB & !L1 & !L0");
   fhNEvents   ->GetXaxis()->SetBinLabel(14,"L0 & !MB");
-  fhNEvents   ->GetXaxis()->SetBinLabel(15,"L1-G & !MB");
-  fhNEvents   ->GetXaxis()->SetBinLabel(16,"L1-J & !MB");
-  fhNEvents   ->GetXaxis()->SetBinLabel(17,"L1-G & (Cen | Semi)");
-  fhNEvents   ->GetXaxis()->SetBinLabel(18,"L1-J & (Cen | Semi)");
-  
+  fhNEvents   ->GetXaxis()->SetBinLabel(15,"L1-G1 & !MB");
+  fhNEvents   ->GetXaxis()->SetBinLabel(16,"L1-J1 & !MB");
+  fhNEvents   ->GetXaxis()->SetBinLabel(17,"L1-G1 & (Cen | Semi)");
+  fhNEvents   ->GetXaxis()->SetBinLabel(18,"L1-J1 & (Cen | Semi)");
+  fhNEvents   ->GetXaxis()->SetBinLabel(19,"L1-G2 & !L1-G1");
+  fhNEvents   ->GetXaxis()->SetBinLabel(20,"L1-J2 & !L1-J1");
+
   fhFORAmp     = new TH2F("hFORAmp", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column",
                           fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
   fhFORAmp    ->SetXTitle("Index #eta (columnns)");
@@ -1425,9 +1444,11 @@ void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects()
   fOutputList->Add(fhL1J2PatchMax);
   
   // Cluster histograms, E
-  TString hName [] = {"MB","L0","L1G","L1G2","L1J","L1J2","L1GOnly","L1JOnly","Central","SemiCentral"};
-  TString hTitle [] = {"MB trigger","L0 trigger","L1 Gamma trigger","L1 Gamma2 trigger","L1 Jet trigger","L1 Jet2 trigger",
-    "L1 Gamma trigger and not L1 Jet","L1 Jet trigger and not L1 Gamma","Central trigger","SemiCentral trigger"};
+  TString hName  [] = {"MB","L0","L1G1","L1G2","L1J1","L1J2","L1G1NoL1J1","L1J1NoLG1","L1G2NoL1G1","L1J2NoL1J1","Central","SemiCentral"};
+  TString hTitle [] = {"MB trigger","L0 trigger","L1 Gamma1 trigger","L1 Gamma2 trigger","L1 Jet1 trigger","L1 Jet2 trigger",
+                       "L1 Gamma1 trigger and not L1 Jet1"  ,"L1 Jet1 trigger and not L1 Gamma1",
+                       "L1 Gamma2 trigger and not L1 Gamma1","L1 Jet2 trigger and not L1 Jet1",
+                        "Central trigger","SemiCentral trigger"};
        
   for(Int_t i=0; i < 3; i++)
   {
@@ -1447,7 +1468,7 @@ void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects()
     fOutputList->Add(fhClusMaxMBPure[i]);
   }
   
-  for(Int_t i=0; i < 10; i++)
+  for(Int_t i=0; i < fgkTriggerCombi; i++)
   {
     fhV0[i] = new TH1F(Form("hV0%s",hName[i].Data()),
                        Form("V0 distribution for %s",hTitle[i].Data()),
index 3850a13..9317ab6 100644 (file)
@@ -176,44 +176,52 @@ private:
   TProfile2D       *fhFORMeanAmp;     //! Mean FastOR(FEE) signal per Row and Column
   TProfile2D       *fhL0MeanAmp;      //! Mean FastOR(TRU) signal per Row and Column
   TProfile2D       *fhL1MeanAmp;      //! Mean FastOR(STU) signal per Row and Column
-  TH1F             *fhV0[10];         //! V0 distribution for a triggered event
   TH2F             *fhL1GPatchMax;    //! FOR of max. amplitude patch with L1 Gamma patch associated
   TH2F             *fhL1G2PatchMax;   //! FOR of max. amplitude patch with L1 Gamma patch associated
   TH2F             *fhL1JPatchMax;    //! FOR of max. amplitude patch with L1 Jet patch associated  
   TH2F             *fhL1J2PatchMax;   //! FOR of max. amplitude patch with L1 Jet patch associated
   
   // Cluster vs trigger histograms
-  enum triggerType{kMBTrig = 0, kL0Trig = 1, kL1GammaTrig = 2, kL1GammaTrig2 = 3, kL1JetTrig = 4, kL1JetTrig2 = 5, kL1GammaOnlyTrig = 6, kL1JetOnlyTrig = 7, kCentralTrig = 8, kSemiCentralTrig = 9 };
+  enum triggerType{ kMBTrig                = 0,  kL0Trig            = 1,
+                    kL1GammaTrig           = 2,  kL1GammaTrig2      = 3,
+                    kL1JetTrig             = 4,  kL1JetTrig2        = 5,
+                    kL1GammaOnlyTrig       = 6,  kL1JetOnlyTrig     = 7,
+                    kL1Gamma2OnlyGammaTrig = 8,  kL1Jet2OnlyJetTrig = 9,
+                    kCentralTrig           = 10, kSemiCentralTrig   = 11 };
   
   TH1F             *fhClusMBPure[3];       //! Clusters E distribution for pure MB trigger
   TH1F             *fhClusMaxMBPure[3];    //! Maximum E Cluster per event distribution for pure MB trigger
   
-  TH1F             *fhClus[10];            //! Clusters E distribution for a trigger
-  TH1F             *fhClusMax[10];         //! Maximum E Cluster per event distribution for MB trigger
+  static const int  fgkTriggerCombi = 12;   // total number of trigger combinations defined above
+  
+  TH1F             *fhClus   [fgkTriggerCombi];                     //! Clusters E distribution for a trigger
+  TH1F             *fhClusMax[fgkTriggerCombi];                     //! Maximum E Cluster per event distribution for MB trigger
 
-  TH2F             *fhClusCen[10];         //! Clusters Centrality vs E distribution for a trigger
-  TH2F             *fhClusCenMax[10];      //! Maximum E Cluster  vs Centrality per event distribution for a trigger
+  TH2F             *fhClusCen   [fgkTriggerCombi];                  //! Clusters Centrality vs E distribution for a trigger
+  TH2F             *fhClusCenMax[fgkTriggerCombi];                  //! Maximum E Cluster  vs Centrality per event distribution for a trigger
   
-  TH2F             *fhClusV0[10];          //! Clusters V0 vs E distribution for a trigger
-  TH2F             *fhClusV0Max[10];       //! Maximum E Cluster  vs Centrality per event distribution for a trigger
+  TH2F             *fhClusV0   [fgkTriggerCombi];                   //! Clusters V0 vs E distribution for a trigger
+  TH2F             *fhClusV0Max[fgkTriggerCombi];                   //! Maximum E Cluster  vs Centrality per event distribution for a trigger
 
-  TH2F             *fhClusEta[10];         //! Clusters eta vs E distribution for a trigger
-  TH2F             *fhClusEtaMax[10];      //! Maximum E Cluster  vs Eta per event distribution for a trigger
+  TH2F             *fhClusEta   [fgkTriggerCombi];                  //! Clusters eta vs E distribution for a trigger
+  TH2F             *fhClusEtaMax[fgkTriggerCombi];                  //! Maximum E Cluster  vs Eta per event distribution for a trigger
 
-  TH2F             *fhClusPhi[10];         //! Clusters Phi vs E distribution for a trigger
-  TH2F             *fhClusPhiMax[10];      //! Maximum E Cluster  vs Phi per event distribution for a trigger
+  TH2F             *fhClusPhi   [fgkTriggerCombi];                   //! Clusters Phi vs E distribution for a trigger
+  TH2F             *fhClusPhiMax[fgkTriggerCombi];                   //! Maximum E Cluster  vs Phi per event distribution for a trigger
 
-  TH2F             *fhClusEtaPhiHigh[10];               //! Clusters eta vs phi distribution for a trigger, energy above 10 GeV
-  TH2F             *fhClusEtaPhiHighCluMax[10];         //! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above 10 GeV
+  TH2F             *fhClusEtaPhiHigh      [fgkTriggerCombi];         //! Clusters eta vs phi distribution for a trigger, energy above 10 GeV
+  TH2F             *fhClusEtaPhiHighCluMax[fgkTriggerCombi];         //! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above 10 GeV
  
-  TH2F             *fhClusEtaPhiHighCellMax[10];        //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy above 10 GeV
-  TH2F             *fhClusEtaPhiHighCellMaxCluMax[10];  //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
+  TH2F             *fhClusEtaPhiHighCellMax      [fgkTriggerCombi];  //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy above 10 GeV
+  TH2F             *fhClusEtaPhiHighCellMaxCluMax[fgkTriggerCombi];  //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
  
-  TH2F             *fhClusEtaPhiLow[10];                //! Clusters eta vs phi distribution for MB trigger, energy below 10 GeV
-  TH2F             *fhClusEtaPhiLowCluMax[10];          //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
+  TH2F             *fhClusEtaPhiLow      [fgkTriggerCombi];          //! Clusters eta vs phi distribution for MB trigger, energy below 10 GeV
+  TH2F             *fhClusEtaPhiLowCluMax[fgkTriggerCombi];          //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
  
-  TH2F             *fhClusEtaPhiLowCellMax[10];         //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy below 10 GeV
-  TH2F             *fhClusEtaPhiLowCellMaxCluMax[10];   //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
+  TH2F             *fhClusEtaPhiLowCellMax      [fgkTriggerCombi];   //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy below 10 GeV
+  TH2F             *fhClusEtaPhiLowCellMaxCluMax[fgkTriggerCombi];   //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
+
+  TH1F             *fhV0[fgkTriggerCombi];//! V0 distribution for a triggered event
 
   // Histograms bins