]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
QA: Move n cells in cluster from TH3 to TH2, remove eta range; add histograms to...
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Aug 2011 21:00:21 +0000 (21:00 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Aug 2011 21:00:21 +0000 (21:00 +0000)
Photon: Set variable dimension of ncells per cluster histogram

PWG4/PartCorrDep/AliAnaCalorimeterQA.cxx
PWG4/PartCorrDep/AliAnaCalorimeterQA.h
PWG4/PartCorrDep/AliAnaPhoton.cxx
PWG4/PartCorrDep/AliAnaPhoton.h

index 5f61fc6e2fd29e3953df839357fc19094e2d26b5..d73195e3566c65d56a57eacaaa34791548f5dcee 100755 (executable)
@@ -77,6 +77,8 @@ fhNClusters(0),
 //Timing, bad cells
 fhClusterTimeEnergy(0),           fhCellTimeSpreadRespectToCellMax(0), fhCellIdCellLargeTimeSpread(0), 
 fhBadClusterMaxCellTimeEnergy(0), fhBadClusterMaxCellCloseCellRatio(0), 
+fhBadClusterLambda0(0),           fhBadClusterLambda1(0), 
+fhBadClusterL0L1(0),              fhBadClusterDispersion(0), 
 fhClusterMaxCellTimeEnergy(0),    fhClusterMaxCellCloseCellRatio(0), 
 
 //Position
@@ -190,7 +192,8 @@ TList *  AliAnaCalorimeterQA::GetCreateOutputObjects()
   Int_t nv0sbins    = GetHistoV0SignalBins();     Int_t nv0smax     = GetHistoV0SignalMax();     Int_t nv0smin     = GetHistoV0SignalMin(); 
   Int_t nv0mbins    = GetHistoV0MultiplicityBins();Int_t nv0mmax    = GetHistoV0MultiplicityMax();Int_t nv0mmin    = GetHistoV0MultiplicityMin(); 
   Int_t ntrmbins    = GetHistoTrackMultiplicityBins();Int_t ntrmmax = GetHistoTrackMultiplicityMax();Int_t ntrmmin = GetHistoTrackMultiplicityMin(); 
-  
+  Int_t ssbins      = GetHistoShowerShapeBins();  Float_t ssmax     = GetHistoShowerShapeMax();  Float_t ssmin     = GetHistoShowerShapeMin();
+
   //EMCAL
   Int_t colmax = 48;
   Int_t rowmax = 24;
@@ -203,7 +206,7 @@ TList *  AliAnaCalorimeterQA::GetCreateOutputObjects()
   }
   
   
-  fhE  = new TH1F ("hE","E reconstructed clusters ", nptbins*5,ptmin,ptmax*5); 
+  fhE  = new TH1F ("hE","E reconstructed clusters ", nptbins*5,ptmin,ptmax*5);  
   fhE->SetXTitle("E (GeV)");
   outputContainer->Add(fhE);
   
@@ -259,6 +262,32 @@ TList *  AliAnaCalorimeterQA::GetCreateOutputObjects()
     fhBadClusterMaxCellTimeEnergy->SetXTitle("E_{cluster} (GeV) ");
     fhBadClusterMaxCellTimeEnergy->SetYTitle("TOF (ns)");
     outputContainer->Add(fhBadClusterMaxCellTimeEnergy);    
+
+    fhBadClusterLambda0  = new TH2F ("hBadClusterLambda0","bad clusters, shower shape, #lambda^{2}_{0} vs E ",
+                                               nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+    fhBadClusterLambda0->SetXTitle("E_{cluster} (GeV) ");
+    fhBadClusterLambda0->SetYTitle("#lambda^{2}_{0}");
+    outputContainer->Add(fhBadClusterLambda0); 
+    
+    fhBadClusterLambda1  = new TH2F ("hBadClusterLambda1","bad clusters, shower shape, #lambda^{2}_{1} vs E ",
+                              nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+    fhBadClusterLambda1->SetXTitle("E_{cluster} (GeV) ");
+    fhBadClusterLambda1->SetYTitle("#lambda^{2}_{1}");
+    outputContainer->Add(fhBadClusterLambda1); 
+
+    
+    fhBadClusterDispersion  = new TH2F ("hBadClusterDispersion","bad clusters, shower shape, dispersion^{2} vs E ",
+                              nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+    fhBadClusterDispersion->SetXTitle("E_{cluster} (GeV) ");
+    fhBadClusterDispersion->SetYTitle("D^{2}_{}");
+    outputContainer->Add(fhBadClusterDispersion); 
+
+    
+    fhBadClusterL0L1  = new TH2F ("hBadClusterL0L1","bad clusters, shower shape, #lambda^{2}_{0} vs #lambda^{2}_{1}",
+                              ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+    fhBadClusterL0L1->SetXTitle("#lambda^{2}_{0}");
+    fhBadClusterL0L1->SetYTitle("#lambda^{2}_{1}");
+    outputContainer->Add(fhBadClusterL0L1); 
     
   }
   
@@ -333,32 +362,25 @@ TList *  AliAnaCalorimeterQA::GetCreateOutputObjects()
     
   }
   
-  if(fFillAllTH3){
-    Int_t nlargeetabins = 3;
-    if(fCalorimeter=="EMCAL") nlargeetabins = 8;
-    
-    fhNCellsPerCluster  = new TH3F ("hNCellsPerCluster","# cells per cluster vs energy vs #eta",nptbins,ptmin,ptmax, nbins,nmin,nmax, nlargeetabins,etamin,etamax); 
-    fhNCellsPerCluster->SetXTitle("E (GeV)");
-    fhNCellsPerCluster->SetYTitle("n cells");
-    fhNCellsPerCluster->SetZTitle("#eta");
-    outputContainer->Add(fhNCellsPerCluster);
     
+  fhNCellsPerCluster  = new TH2F ("hNCellsPerCluster","# cells per cluster vs energy vs #eta",nptbins,ptmin,ptmax, nbins,nmin,nmax); 
+  fhNCellsPerCluster->SetXTitle("E (GeV)");
+  fhNCellsPerCluster->SetYTitle("n cells");
+  fhNCellsPerCluster->SetZTitle("#eta");
+  outputContainer->Add(fhNCellsPerCluster);
     
-    fhNCellsPerClusterMIP  = new TH3F ("hNCellsPerClusterMIP","# cells per cluster vs energy vs #eta, smaller bin for MIP search", 
-                                       40,0.,2., 11,0,10,nlargeetabins,etamin,etamax); 
-    fhNCellsPerClusterMIP->SetXTitle("E (GeV)");
-    fhNCellsPerClusterMIP->SetYTitle("n cells");
-    fhNCellsPerClusterMIP->SetZTitle("#eta");
-    outputContainer->Add(fhNCellsPerClusterMIP);
+  fhNCellsPerClusterMIP  = new TH2F ("hNCellsPerClusterMIP","# cells per cluster vs energy vs #eta, smaller bin for MIP search", 
+                                       40,0.,2., 11,0,10); 
+  fhNCellsPerClusterMIP->SetXTitle("E (GeV)");
+  fhNCellsPerClusterMIP->SetYTitle("n cells");
+  outputContainer->Add(fhNCellsPerClusterMIP);
     
-    if(fFillAllTMHisto){
-      fhNCellsPerClusterMIPCharged  = new TH3F ("hNCellsPerClusterMIPCharged","# cells per track-matched cluster vs energy vs #eta, smaller bin for MIP search", 
-                                                40,0.,2., 11,0,10,nlargeetabins,etamin,etamax); 
-      fhNCellsPerClusterMIPCharged->SetXTitle("E (GeV)");
-      fhNCellsPerClusterMIPCharged->SetYTitle("n cells");
-      fhNCellsPerClusterMIPCharged->SetZTitle("#eta");
-      outputContainer->Add(fhNCellsPerClusterMIPCharged);
-    }
+  if(fFillAllTMHisto){
+    fhNCellsPerClusterMIPCharged  = new TH2F ("hNCellsPerClusterMIPCharged","# cells per track-matched cluster vs energy vs #eta, smaller bin for MIP search", 
+                                                40,0.,2., 11,0,10); 
+    fhNCellsPerClusterMIPCharged->SetXTitle("E (GeV)");
+    fhNCellsPerClusterMIPCharged->SetYTitle("n cells");
+    outputContainer->Add(fhNCellsPerClusterMIPCharged);
        }
        
   fhNClusters  = new TH1F ("hNClusters","# clusters", nbins,nmin,nmax); 
@@ -1530,7 +1552,7 @@ void  AliAnaCalorimeterQA::MakeAnalysisFillHistograms()
       Bool_t badCluster = kFALSE;
       if(fCalorimeter=="EMCAL" && !GetCaloUtils()->GetEMCALRecoUtils()->IsRejectExoticCluster()){
         //Bad clusters histograms
-        Float_t minNCells = 1+mom.E()/3;//-x*x*0.0033
+        Float_t minNCells = 1+mom.E()/4;//-x*x*0.0033
         if(nCaloCellsPerCluster < minNCells) {
           badCluster = kTRUE;
           if(GetReader()->GetDataType()==AliCaloTrackReader::kESD) 
@@ -1548,6 +1570,16 @@ void  AliAnaCalorimeterQA::MakeAnalysisFillHistograms()
               fhBadClusterMaxCellCloseCellRatio->Fill(mom.E(),frac);
             }
           }
+          
+          //Shower shape
+          if(nCaloCellsPerCluster > 1){
+            fhBadClusterLambda0   ->Fill(mom.E(),clus->GetM02());
+            fhBadClusterLambda1   ->Fill(mom.E(),clus->GetM20());
+            fhBadClusterDispersion->Fill(mom.E(),clus->GetDispersion()*clus->GetDispersion());
+            if(mom.E() > 2)
+              fhBadClusterL0L1    ->Fill(clus->GetM02(),clus->GetM20());
+          }
+          
         }//Bad cluster
       }
       
@@ -1876,10 +1908,8 @@ void AliAnaCalorimeterQA::ClusterHistograms(const TLorentzVector mom, const Doub
   fhEtaPhiE->Fill(eta,phi,e);
   
   //Cells per cluster
-  if(fFillAllTH3){
-    fhNCellsPerCluster   ->Fill(e, nCaloCellsPerCluster,eta);
-    fhNCellsPerClusterMIP->Fill(e, nCaloCellsPerCluster,eta);
-  }
+  fhNCellsPerCluster   ->Fill(e, nCaloCellsPerCluster);
+  fhNCellsPerClusterMIP->Fill(e, nCaloCellsPerCluster);
   
   //Position
   if(fFillAllPosHisto2){
@@ -2187,9 +2217,9 @@ void AliAnaCalorimeterQA::ClusterHistograms(const TLorentzVector mom, const Doub
       fhEtaCharged    ->Fill(eta);
     }
     
-    if(fFillAllTMHisto && fFillAllTH3){
-      fhEtaPhiECharged->Fill(eta,phi,e);               
-      fhNCellsPerClusterMIPCharged->Fill(e, nCaloCellsPerCluster,eta);
+    if(fFillAllTMHisto){
+      if(fFillAllTH3)fhEtaPhiECharged->Fill(eta,phi,e);                
+      fhNCellsPerClusterMIPCharged->Fill(e, nCaloCellsPerCluster);
     }
     //printf("track index %d ntracks %d\n", esd->GetNumberOfTracks()); 
     //Study the track and matched cluster if track exists.
@@ -2510,9 +2540,9 @@ void AliAnaCalorimeterQA::ReadHistograms(TList* outputList)
   fhIMCellCut = (TH2F *) outputList->At(index++);
   fhAsym      = (TH2F *) outputList->At(index++);
   
-  fhNCellsPerCluster           = (TH3F *) outputList->At(index++);
-  fhNCellsPerClusterMIP        = (TH3F *) outputList->At(index++);
-  fhNCellsPerClusterMIPCharged = (TH3F *) outputList->At(index++);
+  fhNCellsPerCluster           = (TH2F *) outputList->At(index++);
+  fhNCellsPerClusterMIP        = (TH2F *) outputList->At(index++);
+  fhNCellsPerClusterMIPCharged = (TH2F *) outputList->At(index++);
   fhNClusters  = (TH1F *) outputList->At(index++); 
   
   fhRNCells = (TH2F *) outputList->At(index++);
@@ -4104,7 +4134,7 @@ void  AliAnaCalorimeterQA::Terminate(TList* outputList)
   cN->cd(5) ; 
   if(fhNCellsPerCluster->GetEntries() > 0) gPad->SetLogy();
   gPad->SetLogx();
-  TH1D *cpc = fhNCellsPerCluster->ProjectionY("cpc",-1,-1,-1,-1);
+  TH1D *cpc = fhNCellsPerCluster->ProjectionY("cpc",-1,-1);
   cpc->SetLineColor(1);
   cpc->SetTitle("# cells per cluster");
   cpc->Draw("HE"); 
index a2a1e60ba42830decf15a76d2fe1b5868ecfb42e..aeb5aef12b42fde920adc958f26a5615c36520f0 100755 (executable)
@@ -156,9 +156,9 @@ public:
   TH2F *   fhIMCellCut;                       //! cluster pairs invariant mass, n cells > 1 per cluster
   TH2F *   fhAsym;                            //! cluster pairs invariant mass 
   
-  TH3F *   fhNCellsPerCluster;                //! N cells per cluster vs cluster energy vs eta of cluster      
-  TH3F *   fhNCellsPerClusterMIP;             //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search.
-  TH3F *   fhNCellsPerClusterMIPCharged;      //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search, cluster matched with track.      
+  TH2F *   fhNCellsPerCluster;                //! N cells per cluster vs cluster energy vs eta of cluster      
+  TH2F *   fhNCellsPerClusterMIP;             //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search.
+  TH2F *   fhNCellsPerClusterMIPCharged;      //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search, cluster matched with track.      
   
   TH1F *   fhNClusters;                       //! Number of clusters
 
@@ -168,6 +168,10 @@ public:
        
   TH2F *   fhBadClusterMaxCellTimeEnergy;     //! Time Max cell of bad cluster
   TH2F *   fhBadClusterMaxCellCloseCellRatio; //! Ratio between max cell energy and cell energy of the same cluster for bad clusters 
+  TH2F *   fhBadClusterLambda0;               //! Lambda0 of bad cluster
+  TH2F *   fhBadClusterLambda1;               //! Lambda1 of bad cluster
+  TH2F *   fhBadClusterL0L1;                  //! Lambda0 of bad cluster  
+  TH2F *   fhBadClusterDispersion;            //! Dispersion of bad cluster
   TH2F *   fhClusterMaxCellTimeEnergy;        //! Time of Max cell
   TH2F *   fhClusterMaxCellCloseCellRatio;    //! Ratio between max cell energy and cell energy of the same cluster 
   
index 7480aa60282d64b265d28c44ca91b09afe23e818..dbc2098806cd1320f73d4a7423e9b2171b161200 100755 (executable)
@@ -949,7 +949,7 @@ TList *  AliAnaPhoton::GetCreateOutputObjects()
   Int_t netabins = GetHistoEtaBins(); Float_t etamax = GetHistoEtaMax(); Float_t etamin = GetHistoEtaMin();    
   Int_t ssbins   = GetHistoShowerShapeBins();  Float_t ssmax = GetHistoShowerShapeMax();  Float_t ssmin = GetHistoShowerShapeMin();
 
-  fhNCellsE  = new TH2F ("hNCellsE","# of cells in cluster vs E of clusters", 100,0, 20, 20,0,20); 
+  fhNCellsE  = new TH2F ("hNCellsE","# of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, 20,0,20); 
   fhNCellsE->SetXTitle("E (GeV)");
   fhNCellsE->SetYTitle("# of cells in cluster");
   outputContainer->Add(fhNCellsE);  
index e2617c83d0a2102794b29855db5c623b593b9210..fe775d605f6e7a04d32efbca1c899e2b8309b8ab 100755 (executable)
@@ -127,13 +127,14 @@ class AliAnaPhoton : public AliAnaPartCorrBaseClass {
   Float_t      GetConvDPhiMaxCut()              const { return fConvDPhiMaxCut     ; }
   
   // For histograms in arrays, index in the array, corresponding to a particle
-  enum mcTypes   { mcPhoton = 0,        mcPrompt = 1,        mcFragmentation = 2, 
-                   mcISR = 3,           mcPi0Decay = 4,      mcOtherDecay = 5,  
-                   mcOther = 6,         mcPi0 = 7,           mcConversion = 8,    
-                   mcElectron = 9,      mcAntiNeutron = 10,  mcAntiProton = 11,   mcString = 12};  
+  enum mcTypes    { mcPhoton = 0,        mcPrompt = 1,        mcFragmentation = 2, 
+                    mcISR = 3,           mcPi0Decay = 4,      mcOtherDecay = 5,  
+                    mcOther = 6,         mcPi0 = 7,           mcConversion = 8,    
+                    mcElectron = 9,      mcAntiNeutron = 10,  mcAntiProton = 11,   
+                    mcString = 12};  
 
-  enum mcssTypes  { mcssPhoton = 0,     mcssOther = 1,       mcssPi0 = 2,         
-                    mcssEta = 3,        mcssConversion = 4,  mcssElectron = 5 };  
+  enum mcssTypes  { mcssPhoton = 0,      mcssOther = 1,       mcssPi0 = 2,         
+                    mcssEta = 3,         mcssConversion = 4,  mcssElectron = 5 };  
   
   private: