]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/AddTaskPi0.C
cov fixes
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPi0.C
index ed47db8b95a0d400c256e581d3910f29ce68fc80..89b028cb2dc971af4e4e2b4a7853f32bac9feebc 100644 (file)
@@ -1,4 +1,6 @@
-AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter, Bool_t kPrintSettings = kFALSE,Bool_t kSimulation = kFALSE, Bool_t outputAOD=kFALSE, TString outputfile = "", Int_t year = 2010,TString col = "pp",Bool_t oldAOD=kFALSE)
+AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter, Bool_t kPrintSettings = kFALSE,Bool_t kSimulation = kFALSE, 
+                                               Bool_t outputAOD=kFALSE, TString outputfile = "", Int_t year = 2010,TString col = "pp",
+                                               Bool_t withQA = kFALSE)
 {
   // Creates a PartCorr task, configures it and adds it to the analysis manager.
   
@@ -51,8 +53,6 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
     reader->SwitchOnPHOSCells();  
     reader->SwitchOnPHOS();
   }
-
-   reader->SwitchOffSuspiciousClustersRemoval();  //EMCAL
   
   // for case data="deltaAOD", no need to fill the EMCAL/PHOS cluster lists
   if(data.Contains("delta")){
@@ -97,7 +97,6 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
   reader->SetPHOSPtMin(0.);
   reader->SetCTSPtMin(0.);
   if(outputAOD)  reader->SwitchOnWriteDeltaAOD()  ;
-  if(oldAOD) reader->SwitchOnOldAODs();
   if(kPrintSettings) reader->Print("");
   
   // *** Calorimeters Utils    ***
@@ -112,6 +111,7 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
     cu->SwitchOnCorrectClusterLinearity();
     AliEMCALRecoUtils * reco = cu->GetEMCALRecoUtils();
     reco->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
+    reco->SwitchOnRejectExoticCluster();
   }
   
   // Remove EMCAL hottest channels for first LHC10 periods     
@@ -226,16 +226,19 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
   anapi0->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
   if     (col=="pp"  ) {
     anapi0->SetNCentrBin(1);
-    anapi0->SetNZvertBin(50);
+    anapi0->SetNZvertBin(10);
+    anapi0->SetNRPBin(1);
+    anapi0->SetNMaxEvMix(100);    
     anapi0->SwitchOnSMCombinations();
   }
   else if(col=="PbPb") {
     anapi0->SetNCentrBin(10);
     anapi0->SetNZvertBin(10);
+    anapi0->SetNRPBin(4);
+    anapi0->SetNMaxEvMix(10);
     anapi0->SwitchOffSMCombinations();
   }
-  anapi0->SetNRPBin(1);
-  anapi0->SetNMaxEvMix(50);
+
   
   if(kUseKinematics)anapi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
   else              anapi0->SwitchOffDataMC() ;
@@ -255,6 +258,57 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
 
   if(kPrintSettings) anapi0->Print("");
 
+  //QA
+  if (withQA) {
+    AliAnaCalorimeterQA *emcalQA = new AliAnaCalorimeterQA();
+    //emcalQA->SetDebug(10); //10 for lots of messages
+    emcalQA->SetCalorimeter("EMCAL");
+    if(kUseKinematics) emcalQA->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
+    else  emcalQA->SwitchOffDataMC() ;
+    emcalQA->AddToHistogramsName("QA_"); //Begining of histograms name
+    //emcalQA->SetFiducialCut(fidCut);
+    emcalQA->SwitchOffFiducialCut();
+    emcalQA->SwitchOffPlotsMaking();
+    emcalQA->SwitchOffCorrelation();
+    //  if(!kUseKinematics)emcalQA->SetTimeCut(400,850);//Open for the moment
+    //Set Histrograms bins and ranges
+    emcalQA->SetHistoPtRangeAndNBins(0, 50, 200) ;
+    emcalQA->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
+    emcalQA->SetHistoEtaRangeAndNBins(-0.71, 0.71, 142) ;
+    
+    if(year==2010){  
+      emcalQA->SetNumberOfModules(4); 
+      emcalQA->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
+      emcalQA->SetHistoXRangeAndNBins(-230,90,60);
+      emcalQA->SetHistoYRangeAndNBins(370,450,20);
+    }
+    else{            
+      emcalQA->SetNumberOfModules(10); 
+      emcalQA->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
+      emcalQA->SetHistoXRangeAndNBins(-600,90,100);
+      emcalQA->SetHistoYRangeAndNBins(100,450,50);
+    }
+    
+    emcalQA->SwitchOffFillAllPi0Histogram();
+    emcalQA->SwitchOffFillAllTrackMatchingHistogram();
+    emcalQA->SwitchOffFillAllTH3Histogram();
+    emcalQA->SwitchOffFillAllPositionHistogram2();
+    
+    emcalQA->SetHistoMassRangeAndNBins(0., 1, 100) ;
+    emcalQA->SetHistoAsymmetryRangeAndNBins(0., 1. , 10 );
+    emcalQA->SetHistoPOverERangeAndNBins(0,10.,50);
+    emcalQA->SetHistodEdxRangeAndNBins(0.,200.,50);
+    emcalQA->SetHistodRRangeAndNBins(0.,TMath::Pi(),75);
+    emcalQA->SetHistoTimeRangeAndNBins(300.,900,150);
+    emcalQA->SetHistoRatioRangeAndNBins(0.,2.,100);
+    emcalQA->SetHistoVertexDistRangeAndNBins(0.,100.,100);
+    emcalQA->SetHistoNClusterCellRangeAndNBins(0,500,500);
+    emcalQA->SetHistoZRangeAndNBins(-400,400,100);
+    emcalQA->SetHistoRRangeAndNBins(400,450,25);
+    emcalQA->SetHistoV0SignalRangeAndNBins(0,5000,100);
+    emcalQA->SetHistoV0MultiplicityRangeAndNBins(0,5000,100);
+    emcalQA->SetHistoTrackMultiplicityRangeAndNBins(0,5000,100);
+  }//withQA
   
   // #### Configure Maker ####
   AliAnaPartCorrMaker * maker = new AliAnaPartCorrMaker();
@@ -264,6 +318,7 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
   // Particle selection analysis
   maker->AddAnalysis(anaphoton,n++);
   maker->AddAnalysis(anapi0,n++);
+  if(withQA)maker->AddAnalysis(emcalQA,n++);  
   maker->SetAnaDebug(-1)  ;
   maker->SwitchOnHistogramsMaker()  ;
   if(data.Contains("delta")) maker->SwitchOffAODsMaker()  ;
@@ -280,6 +335,7 @@ AliAnalysisTaskParticleCorrelation *AddTaskPi0(TString data, TString calorimeter
   AliAnalysisTaskParticleCorrelation * task = new AliAnalysisTaskParticleCorrelation (Form("PartCorr%s",calorimeter.Data()));
   task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
   //task->SetDebugLevel(-1);
+  task->SetBranches("ESD:AliESDRun.,AliESDHeader"); //just a trick to get Constantin's analysis to work
   if(data=="ESD")task->SelectCollisionCandidates();
   task->SetAnalysisMaker(maker);
   //if(!kSimulation)task->SelectCollisionCandidates(); //AliPhysicsSelection has to be attached before.