]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add a check properly the bad/exotic cluster in the corresponding array, add few histo...
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Jun 2013 12:49:20 +0000 (12:49 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Jun 2013 12:49:20 +0000 (12:49 +0000)
PWG/CaloTrackCorrBase/AliAnaCaloTrackCorrMaker.cxx
PWG/CaloTrackCorrBase/AliAnaCaloTrackCorrMaker.h
PWG/CaloTrackCorrBase/AliCaloTrackReader.cxx
PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx
PWGGA/CaloTrackCorrelations/AliAnaPhoton.h

index 5cd8c2eb5cadfc10881b68e5ea3ac85de2dc4835..efa9b2270bf7e5528c09b8b1eb7e003d8890e248 100755 (executable)
@@ -61,8 +61,10 @@ fhEMCalBCEvent(0),            fhEMCalBCEventCut(0),
 fhTrackBCEvent(0),            fhTrackBCEventCut(0),
 fhPrimaryVertexBC(0),         fhTimeStampFraction(0),
 fhNPileUpVertSPD(0),          fhNPileUpVertTracks(0),
-fhClusterTriggerBC(0),        fhClusterTriggerBCExotic(0),        fhClusterTriggerBCBad(0),
-fhClusterTriggerBCUnMatch(0), fhClusterTriggerBCExoticUnMatch(0), fhClusterTriggerBCBadUnMatch(0)
+fhClusterTriggerBC(0),        fhClusterTriggerBCExotic(0),
+fhClusterTriggerBCBad(0),     fhClusterTriggerBCBadExotic(0),
+fhClusterTriggerBCUnMatch(0), fhClusterTriggerBCExoticUnMatch(0),
+fhClusterTriggerBCBadUnMatch(0), fhClusterTriggerBCBadExoticUnMatch(0)
 {
   //Default Ctor
   if(fAnaDebug > 1 ) printf("*** Analysis Maker Constructor *** \n");
@@ -104,9 +106,11 @@ fhNPileUpVertTracks(maker.fhNPileUpVertTracks),
 fhClusterTriggerBC(maker.fhClusterTriggerBC),
 fhClusterTriggerBCExotic(maker.fhClusterTriggerBCExotic),
 fhClusterTriggerBCBad(maker.fhClusterTriggerBCBad),
+fhClusterTriggerBCBadExotic(maker.fhClusterTriggerBCBadExotic),
 fhClusterTriggerBCUnMatch(maker.fhClusterTriggerBCUnMatch),
 fhClusterTriggerBCExoticUnMatch(maker.fhClusterTriggerBCExoticUnMatch),
-fhClusterTriggerBCBadUnMatch(maker.fhClusterTriggerBCBadUnMatch)
+fhClusterTriggerBCBadUnMatch(maker.fhClusterTriggerBCBadUnMatch),
+fhClusterTriggerBCBadExoticUnMatch(maker.fhClusterTriggerBCBadExoticUnMatch)
 {
   // cpy ctor
 }
@@ -324,56 +328,77 @@ TList *AliAnaCaloTrackCorrMaker::GetOutputContainer()
   fhNEventsNoTriggerFound->SetYTitle("# exotic events");
   fOutputContainer->Add(fhNEventsNoTriggerFound);
   
+  Int_t   nbin   = 11;
+  Float_t minbin =-5.5;
+  Float_t maxbin = 5.5;
+  Int_t  labelshift = 6;
   fhClusterTriggerBC              = new TH1F("hClusterTriggerBC",
                                              "Number of analyzed events triggered by a cluster in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBC->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBC->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBC->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBC);
   
   fhClusterTriggerBCExotic        = new TH1F("hClusterTriggerBCExotic",
                                              "Number of analyzed events triggered by a exotic cluster in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBCExotic->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBCExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBCExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBCExotic);
   
   fhClusterTriggerBCBad           = new TH1F("hClusterTriggerBCBad",
                                              "Number of analyzed events triggered by a bad cluster in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBCBad->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBCBad->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBCBad->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBCBad);
   
   
+  fhClusterTriggerBCBadExotic    = new TH1F("hClusterTriggerBCBadExotic",
+                                             "Number of analyzed events triggered by a bad&exotic cluster in a given BC",
+                                             nbin , minbin ,maxbin) ;
+  fhClusterTriggerBCBadExotic->SetYTitle("# events");
+  for(Int_t i = 1; i < 12; i++)
+    fhClusterTriggerBCBadExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
+  fOutputContainer->Add(fhClusterTriggerBCBadExotic);
+  
   fhClusterTriggerBCUnMatch       = new TH1F("hClusterTriggerBCUnMatch",
                                              "Number of analyzed events triggered by a cluster (no trigger patch match) in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBCUnMatch->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBCUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBCUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBCUnMatch);
   
   fhClusterTriggerBCExoticUnMatch = new TH1F("hClusterTriggerBCExoticUnMatch",
                                              "Number of analyzed events triggered by a exotic cluster (no trigger patch match) in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBCExoticUnMatch->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBCExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBCExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBCExoticUnMatch);
   
   fhClusterTriggerBCBadUnMatch    = new TH1F("hClusterTriggerBCBadUnMatch",
                                              "Number of analyzed events triggered by a bad cluster  (no trigger patch match) in a given BC",
-                                             11 , -5 , 5  ) ;
+                                             nbin , minbin ,maxbin) ;
   fhClusterTriggerBCBadUnMatch->SetYTitle("# events");
   for(Int_t i = 1; i < 12; i++)
-    fhClusterTriggerBCBadUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-6));
+    fhClusterTriggerBCBadUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
   fOutputContainer->Add(fhClusterTriggerBCBadUnMatch);
 
   
+  fhClusterTriggerBCBadExoticUnMatch = new TH1F("hClusterTriggerBCBadExoticUnMatch",
+                                                "Number of analyzed events triggered by a bad&exotic cluster  (no trigger patch match) in a given BC",
+                                             nbin , minbin ,maxbin) ;
+  fhClusterTriggerBCBadExoticUnMatch->SetYTitle("# events");
+  for(Int_t i = 1; i < 12; i++)
+    fhClusterTriggerBCBadExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
+  fOutputContainer->Add(fhClusterTriggerBCBadExoticUnMatch);
+
+  
   fhNPileUpEvents      = new TH1F("hNPileUpEvents",   "Number of events considered as pile-up", 8 , 0 , 8 ) ;
   fhNPileUpEvents->SetYTitle("# events");
   fhNPileUpEvents->GetXaxis()->SetBinLabel(1 ,"SPD");
@@ -664,16 +689,17 @@ void AliAnaCaloTrackCorrMaker::ProcessEvent(const Int_t iEntry,
   {
     if(triggerMatch)
     {
-      if     (!exotic && !badCell) fhClusterTriggerBC      ->Fill(triggerBC);
-      else if(exotic)              fhClusterTriggerBCExotic->Fill(triggerBC);
-      else if(badCell)             fhClusterTriggerBCBad   ->Fill(triggerBC);
-      
+      if     (!exotic  && !badCell) fhClusterTriggerBC         ->Fill(triggerBC);
+      else if( exotic  &&  badCell) fhClusterTriggerBCBadExotic->Fill(triggerBC);
+      else if( exotic  && !badCell) fhClusterTriggerBCExotic   ->Fill(triggerBC);
+      else if( badCell && !exotic ) fhClusterTriggerBCBad      ->Fill(triggerBC);
     }
     else
     {
-      if     (!exotic && !badCell) fhClusterTriggerBCUnMatch      ->Fill(triggerBC);
-      else if(exotic)              fhClusterTriggerBCExoticUnMatch->Fill(triggerBC);
-      else if(badCell)             fhClusterTriggerBCBadUnMatch   ->Fill(triggerBC);
+      if     (!exotic  && !badCell) fhClusterTriggerBCUnMatch         ->Fill(triggerBC);
+      else if( exotic  &&  badCell) fhClusterTriggerBCBadExoticUnMatch->Fill(triggerBC);
+      else if( exotic  && !badCell) fhClusterTriggerBCExoticUnMatch   ->Fill(triggerBC);
+      else if( badCell && !exotic ) fhClusterTriggerBCBadUnMatch      ->Fill(triggerBC);
     }
   }
   
index 75196ebc4d9a109eb806c8ac9aa864c6858c879e..27410aeb11f52e4faa5d9019d307c20b61f05f9b 100755 (executable)
@@ -118,9 +118,11 @@ class AliAnaCaloTrackCorrMaker : public TObject {
   TH1F *   fhClusterTriggerBC;       //! number of events triggered, depending on BC of the cluster
   TH1F *   fhClusterTriggerBCExotic; //! number of events triggered, depending on BC of the cluster
   TH1F *   fhClusterTriggerBCBad;    //! number of events triggered, depending on BC of the cluster
+  TH1F *   fhClusterTriggerBCBadExotic;     //! number of events triggered, depending on BC of the cluster
   TH1F *   fhClusterTriggerBCUnMatch;       //! number of events triggered, depending on BC of the cluster
   TH1F *   fhClusterTriggerBCExoticUnMatch; //! number of events triggered, depending on BC of the cluster
   TH1F *   fhClusterTriggerBCBadUnMatch;    //! number of events triggered, depending on BC of the cluster
+  TH1F *   fhClusterTriggerBCBadExoticUnMatch;//! number of events triggered, depending on BC of the cluster
 
   AliAnaCaloTrackCorrMaker & operator = (const AliAnaCaloTrackCorrMaker & ) ; // cpy assignment
   
index 155af3fdca4cd82e1e9b2804ca8e2e1051423c0e..d1fd48ea26c3f5a17cf73abd6969ff84e7908ba7 100755 (executable)
@@ -2415,7 +2415,7 @@ void  AliCaloTrackReader::MatchTriggerCluster(TArrayI patches)
 //  
 //  if(!fIsTriggerMatch)  printf("\t highest energy cluster:  index %d, ID %d, E = %2.2f, tof = %2.2f, bad cell? %d, exotic? %d\n",clusMax, idclusMax, eMax,tofMax, badMax,exoMax);
   
-  if(fIsBadCellEvent) fIsExoticEvent = kFALSE;
+  //if(fIsBadCellEvent) fIsExoticEvent = kFALSE;
   
 }
 
index d38cbf2efc43534b9cebb1360e09a2ff64b6fde5..f3cdddba18f9581e8ebc98158b5f6a9519103474 100755 (executable)
@@ -76,12 +76,16 @@ AliAnaPhoton::AliAnaPhoton() :
     fhEtaPhiTriggerEMCALBCUMClusterBelowTh2(0),
     fhEtaPhiTriggerEMCALBCExotic(0),             fhTimeTriggerEMCALBCExotic(0),
     fhEtaPhiTriggerEMCALBCUMExotic(0),           fhTimeTriggerEMCALBCUMExotic(0), 
-    fhEtaPhiTriggerEMCALBCBad(0),                fhTimeTriggerEMCALBCBad(0), 
-    fhEtaPhiTriggerEMCALBCUMBad(0),              fhTimeTriggerEMCALBCUMBad(0), 
-    fhEtaPhiTriggerEMCALBCExoticCluster(0),      fhTimeTriggerEMCALBCExoticCluster(0), 
+    fhEtaPhiTriggerEMCALBCBad(0),                fhTimeTriggerEMCALBCBad(0),
+    fhEtaPhiTriggerEMCALBCUMBad(0),              fhTimeTriggerEMCALBCUMBad(0),
+    fhEtaPhiTriggerEMCALBCBadExotic(0),          fhTimeTriggerEMCALBCBadExotic(0),
+    fhEtaPhiTriggerEMCALBCUMBadExotic(0),        fhTimeTriggerEMCALBCUMBadExotic(0),
+    fhEtaPhiTriggerEMCALBCExoticCluster(0),      fhTimeTriggerEMCALBCExoticCluster(0),
     fhEtaPhiTriggerEMCALBCUMExoticCluster(0),    fhTimeTriggerEMCALBCUMExoticCluster(0), 
     fhEtaPhiTriggerEMCALBCBadCluster(0),         fhTimeTriggerEMCALBCBadCluster(0),
-    fhEtaPhiTriggerEMCALBCUMBadCluster(0),       fhTimeTriggerEMCALBCUMBadCluster(0), 
+    fhEtaPhiTriggerEMCALBCUMBadCluster(0),       fhTimeTriggerEMCALBCUMBadCluster(0),
+    fhEtaPhiTriggerEMCALBCBadExoticCluster(0),   fhTimeTriggerEMCALBCBadExoticCluster(0),
+    fhEtaPhiTriggerEMCALBCUMBadExoticCluster(0), fhTimeTriggerEMCALBCUMBadExoticCluster(0),
     fhEtaPhiNoTrigger(0),                        fhTimeNoTrigger(0),
 
     fhEPhoton(0),                 fhPtPhoton(0),
@@ -346,6 +350,31 @@ Bool_t  AliAnaPhoton::ClusterSelected(AliVCluster* calo, TLorentzVector mom, Int
           }
         }
       }// neither bad nor exotic
+      else if(GetReader()->IsBadCellTriggerEvent() && GetReader()->IsExoticEvent())
+      {
+        if(GetReader()->IsTriggerMatched())
+        {
+          if(ecluster > 2) fhEtaPhiTriggerEMCALBCBadExotic->Fill(etacluster, phicluster);
+          fhTimeTriggerEMCALBCBadExotic->Fill(ecluster, tofcluster);
+          
+          if(calo->GetID() ==  GetReader()->GetTriggerClusterId())
+          {
+            fhEtaPhiTriggerEMCALBCBadExoticCluster->Fill(etacluster, phicluster);
+            fhTimeTriggerEMCALBCBadExoticCluster  ->Fill(ecluster, tofcluster);
+          }
+        }
+        else
+        {
+          if(ecluster > 2) fhEtaPhiTriggerEMCALBCUMBadExotic->Fill(etacluster, phicluster);
+          fhTimeTriggerEMCALBCUMBadExotic->Fill(ecluster, tofcluster);
+          
+          if(calo->GetID() ==  GetReader()->GetTriggerClusterId())
+          {
+            fhEtaPhiTriggerEMCALBCUMBadExoticCluster->Fill(etacluster, phicluster);
+            fhTimeTriggerEMCALBCUMBadExoticCluster  ->Fill(ecluster, tofcluster);
+          }
+        }
+      }// Bad and exotic cluster trigger
       else if(GetReader()->IsBadCellTriggerEvent() )
       {
         if(GetReader()->IsTriggerMatched())
@@ -1916,6 +1945,70 @@ TList *  AliAnaPhoton::GetCreateOutputObjects()
     fhTimeTriggerEMCALBCUMBadCluster->SetYTitle("time (ns)");
     outputContainer->Add(fhTimeTriggerEMCALBCUMBadCluster);
     
+    fhEtaPhiTriggerEMCALBCBadExotic = new TH2F
+    ("hEtaPhiTriggerBadExotic",
+     "cluster E > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
+     netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiTriggerEMCALBCBadExotic->SetYTitle("#phi (rad)");
+    fhEtaPhiTriggerEMCALBCBadExotic->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiTriggerEMCALBCBadExotic) ;
+    
+    fhTimeTriggerEMCALBCBadExotic = new TH2F
+    ("hTimeTriggerBadExotic",
+     "cluster time vs E of clusters, Trigger Bad&Exotic ",
+     nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+    fhTimeTriggerEMCALBCBadExotic->SetXTitle("E (GeV)");
+    fhTimeTriggerEMCALBCBadExotic->SetYTitle("time (ns)");
+    outputContainer->Add(fhTimeTriggerEMCALBCBadExotic);
+    
+    fhEtaPhiTriggerEMCALBCUMBadExotic = new TH2F
+    ("hEtaPhiTriggerBadExotic_UnMatch",
+     "cluster E > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
+     netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiTriggerEMCALBCUMBadExotic->SetYTitle("#phi (rad)");
+    fhEtaPhiTriggerEMCALBCUMBadExotic->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBadExotic) ;
+    
+    fhTimeTriggerEMCALBCUMBadExotic = new TH2F
+    ("hTimeTriggerBadExotic_UnMatch",
+     "cluster time vs E of clusters, unmatched trigger Bad&Exotic",
+     nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+    fhTimeTriggerEMCALBCUMBadExotic->SetXTitle("E (GeV)");
+    fhTimeTriggerEMCALBCUMBadExotic->SetYTitle("time (ns)");
+    outputContainer->Add(fhTimeTriggerEMCALBCUMBadExotic);
+    
+    fhEtaPhiTriggerEMCALBCBadExoticCluster = new TH2F
+    ("hEtaPhiTriggerBadExotic_OnlyTrigger",
+     "trigger cluster E > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
+     netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiTriggerEMCALBCBadExoticCluster->SetYTitle("#phi (rad)");
+    fhEtaPhiTriggerEMCALBCBadExoticCluster->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiTriggerEMCALBCBadExoticCluster) ;
+    
+    fhTimeTriggerEMCALBCBadExoticCluster = new TH2F
+    ("hTimeTriggerBadExotic_OnlyTrigger",
+     "trigger cluster time vs E of clusters, Trigger Bad&Exotic",
+     nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+    fhTimeTriggerEMCALBCBadExoticCluster->SetXTitle("E (GeV)");
+    fhTimeTriggerEMCALBCBadExoticCluster->SetYTitle("time (ns)");
+    outputContainer->Add(fhTimeTriggerEMCALBCBadExoticCluster);
+    
+    fhEtaPhiTriggerEMCALBCUMBadExoticCluster = new TH2F
+    ("hEtaPhiTriggerBadExotic_OnlyTrigger_UnMatch",
+     "trigger cluster E > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
+     netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiTriggerEMCALBCUMBadExoticCluster->SetYTitle("#phi (rad)");
+    fhEtaPhiTriggerEMCALBCUMBadExoticCluster->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBadExoticCluster) ;
+    
+    fhTimeTriggerEMCALBCUMBadExoticCluster = new TH2F
+    ("hTimeTriggerBadExotic_OnlyTrigger_UnMatch",
+     "trigger cluster time vs E of clusters, unmatched trigger Bad&Exotic",
+     nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+    fhTimeTriggerEMCALBCUMBadExoticCluster->SetXTitle("E (GeV)");
+    fhTimeTriggerEMCALBCUMBadExoticCluster->SetYTitle("time (ns)");
+    outputContainer->Add(fhTimeTriggerEMCALBCUMBadExoticCluster);
+    
     fhTimeNoTrigger = new TH2F
     ("hTimeNoTrigger",
      "events with no foundable trigger, time vs e of clusters",
@@ -3171,17 +3264,39 @@ void  AliAnaPhoton::MakeAnalysisFillAOD()
       {
         AliVCluster * clus = dynamic_cast<AliVCluster*> (clusterList->At(iclus));        
         if(clus)fhClusterCuts[0]->Fill(clus->E());
-      }  
+      }
     }
   }
   
   // Fill some trigger related histograms
-  Int_t idTrig = GetReader()->GetTriggerClusterId();
+  Int_t   idTrig = GetReader()->GetTriggerClusterIndex();
+  Float_t exotic = GetReader()->IsExoticEvent();
+  Float_t bad    = GetReader()->IsBadCellTriggerEvent();
+
   if( fFillEMCALBCHistograms && fCalorimeter=="EMCAL" &&
-      ( GetReader()->IsBadCellTriggerEvent() || GetReader()->IsExoticEvent())  && idTrig >= 0)
+      ( bad || exotic )  && idTrig >= 0)
   {
-    AliVCluster * badClusTrig = GetReader()->GetInputEvent()->GetCaloCluster(GetReader()->GetTriggerClusterIndex());
+//    printf("Index %d, Id %d,  bad %d, exo %d\n",
+//           GetReader()->GetTriggerClusterIndex(),
+//           GetReader()->GetTriggerClusterId(),
+//           GetReader()->IsBadCellTriggerEvent(),
+//           GetReader()->IsExoticEvent() );
+    
+    TClonesArray * clusterList = 0;
+    TString  clusterListName   = GetReader()->GetEMCALClusterListName();
+    if     (GetReader()->GetInputEvent()->FindListObject(clusterListName))
+      clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetInputEvent() ->FindListObject(clusterListName));
+    else if(GetReader()->GetOutputEvent())
+      clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetOutputEvent()->FindListObject(clusterListName));
+    
+    AliVCluster  *  badClusTrig = 0;
+    if(clusterList) badClusTrig = (AliVCluster*) clusterList->At(idTrig);
+    else            badClusTrig = GetReader()->GetInputEvent()->GetCaloCluster(idTrig);
+
+    if(!badClusTrig) printf("AliAnaPhoton::MakeAnalysisFillAOD() - No cluster (bad-exotic trigger) found with requested index %d \n",idTrig);
+    
     TLorentzVector momBadClus;
     badClusTrig->GetMomentum(momBadClus,GetVertex(0));
   
     Float_t etaclusterBad = momBadClus.Eta();
@@ -3190,7 +3305,21 @@ void  AliAnaPhoton::MakeAnalysisFillAOD()
     Float_t tofclusterBad = badClusTrig->GetTOF()*1.e9;
     Float_t eclusterBad   = badClusTrig->E();
     
-    if(GetReader()->IsBadCellTriggerEvent() )
+
+    if( bad && exotic )
+    {
+      if(GetReader()->IsTriggerMatched())
+      {
+        fhEtaPhiTriggerEMCALBCBadExoticCluster->Fill(etaclusterBad, phiclusterBad);
+        fhTimeTriggerEMCALBCBadExoticCluster  ->Fill(eclusterBad,   tofclusterBad);
+      }
+      else
+      {
+        fhEtaPhiTriggerEMCALBCUMBadExoticCluster->Fill(etaclusterBad, phiclusterBad);
+        fhTimeTriggerEMCALBCUMBadExoticCluster  ->Fill(eclusterBad,   tofclusterBad);
+      }
+    }
+    else if( bad && !exotic )
     {
       if(GetReader()->IsTriggerMatched())
       {
@@ -3203,7 +3332,7 @@ void  AliAnaPhoton::MakeAnalysisFillAOD()
         fhTimeTriggerEMCALBCUMBadCluster  ->Fill(eclusterBad,   tofclusterBad);
       }
     }// Bad cluster trigger
-    else if(GetReader()->IsExoticEvent() )
+    else if( !bad && exotic )
     {
       if(GetReader()->IsTriggerMatched())
       {
index 294782f4ebed1c72f8462ee641da07715f799824..c591dfd9a3f1920e40f4ff9bf13de92bbb4eab4c 100755 (executable)
@@ -175,26 +175,36 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2   ; //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
   TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2 ; //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, 2 GeV below nominal threshold
 
-  TH2F * fhEtaPhiTriggerEMCALBCExotic   ; //! Pseudorapidity vs Phi of trigger exotic clusters
-  TH2F * fhTimeTriggerEMCALBCExotic     ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
-  TH2F * fhEtaPhiTriggerEMCALBCUMExotic ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
-  TH2F * fhTimeTriggerEMCALBCUMExotic   ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
-
-  TH2F * fhEtaPhiTriggerEMCALBCBad      ; //! Pseudorapidity vs Phi of trigger exotic clusters
-  TH2F * fhTimeTriggerEMCALBCBad        ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
-  TH2F * fhEtaPhiTriggerEMCALBCUMBad    ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
-  TH2F * fhTimeTriggerEMCALBCUMBad      ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
-  
-  TH2F * fhEtaPhiTriggerEMCALBCExoticCluster   ; //! Pseudorapidity vs Phi of trigger exotic clusters
-  TH2F * fhTimeTriggerEMCALBCExoticCluster     ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
-  TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
-  TH2F * fhTimeTriggerEMCALBCUMExoticCluster   ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
-  
-  TH2F * fhEtaPhiTriggerEMCALBCBadCluster      ; //! Pseudorapidity vs Phi of trigger exotic clusters
-  TH2F * fhTimeTriggerEMCALBCBadCluster        ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
-  TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster    ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
-  TH2F * fhTimeTriggerEMCALBCUMBadCluster      ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
-
+  TH2F * fhEtaPhiTriggerEMCALBCExotic     ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCExotic       ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMExotic     ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMExotic     ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+
+  TH2F * fhEtaPhiTriggerEMCALBCBad        ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCBad          ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMBad      ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMBad        ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+  
+  TH2F * fhEtaPhiTriggerEMCALBCBadExotic  ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCBadExotic    ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMBadExotic  ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+  
+  TH2F * fhEtaPhiTriggerEMCALBCExoticCluster     ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCExoticCluster       ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster   ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMExoticCluster     ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+  
+  TH2F * fhEtaPhiTriggerEMCALBCBadCluster        ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCBadCluster          ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster      ; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMBadCluster        ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+
+  TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster  ; //! Pseudorapidity vs Phi of trigger exotic clusters
+  TH2F * fhTimeTriggerEMCALBCBadExoticCluster    ; //! Time distribution of clusters, when trigger exotic cluster is in a given BC
+  TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster; //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
+  TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster  ; //! Time distribution of highest energy exotic cluster in event, when trigger is in a given BC, not
+  
   TH2F * fhEtaPhiNoTrigger ;             //! Pseudorapidity vs Phi of highest E exotic cluster  in event, no trigger at all
   TH2F * fhTimeNoTrigger   ;             //! Time distribution of highest energy exotic cluster in event, no trigger at all