Corrected analysis configuration and execution files after changes in PartCorr frame...
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisPhoton.C
1 /* $Id: $ */
2 /* $Log$ */
3
4 //------------------------------------
5 // Configuration macro example:
6 //
7 // Do photon identification analysis with ESDs
8 // Gamma in PHOS. For EMCAL clusters change 
9 // PHOS by EMCAL where necessary
10 //
11 // Author : Gustavo Conesa Balbastre (INFN-LNF)
12 //------------------------------------
13
14 AliAnaPartCorrMaker*  ConfigAnalysis()
15 {
16   //
17   // Configuration goes here
18   // 
19   printf("======================== \n");
20   printf("ConfigAnalysis() \n");
21   printf("======================== \n");
22   
23   
24   //Detector Fidutial Cuts
25   AliFidutialCut * fidCut = new AliFidutialCut();
26   fidCut->DoCTSFidutialCut(kFALSE) ;
27   fidCut->DoEMCALFidutialCut(kFALSE) ;
28   fidCut->DoPHOSFidutialCut(kFALSE) ;
29   
30   //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
31   //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
32   //fidCut->SetSimplePHOSFidutialCut(0.13,220.,320.);
33    
34   fidCut->Print("");
35   
36   //-----------------------------------------------------------  
37   // Reader
38   //-----------------------------------------------------------
39   AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
40   reader->SetDebug(-1);
41
42   //Switch on or off the detectors information that you want
43   reader->SwitchOffEMCAL();
44   reader->SwitchOffCTS();
45   reader->SwitchOnPHOS();
46   
47   //Min particle pT
48   //reader->SetEMCALPtMin(0.5); 
49   reader->SetPHOSPtMin(0.5);
50   //reader->SetCTSPtMin(0.2);
51   
52   reader->SetFidutialCut(fidCut);
53   reader->Print("");
54   
55   
56   //---------------------------------------------------------------------
57   // Analysis algorithm
58   //---------------------------------------------------------------------
59   
60   //Detector Fidutial Cuts for analysis part
61   AliFidutialCut * fidCut2 = new AliFidutialCut();
62   fidCut2->DoCTSFidutialCut(kFALSE) ;
63   fidCut2->DoEMCALFidutialCut(kFALSE) ;
64   fidCut2->DoPHOSFidutialCut(kFALSE) ;
65   
66   //fidCut2->SetSimpleCTSFidutialCut(0.9,0.,360.);
67   //fidCut2->SetSimpleEMCALFidutialCut(0.7,80.,190.);
68   //fidCut2->SetSimplePHOSFidutialCut(0.13,220.,320.);
69
70   fidCut2->Print("");
71
72   AliCaloPID * pid = new AliCaloPID();
73   // use selection with simple weights
74   pid->SetPHOSPhotonWeight(0.7);    pid->SetPHOSPi0Weight(0.7); 
75   // use more complicated selection, particle weight depending on cluster energy
76 //   pid->UsePHOSPIDWeightFormula(kTRUE);
77 //   TFormula * photonF = new TFormula("photonWeight","0.98*(x<40)+ 0.68*(x>=100)+(x>=40 && x<100)*(0.98+x*(6e-3)-x*x*(2e-04)+x*x*x*(1.1e-06))");
78 //   TFormula * pi0F = new TFormula("pi0Weight","0.98*(x<65)+ 0.915*(x>=100)+(x>=65 && x-x*(1.95e-3)-x*x*(4.31e-05)+x*x*x*(3.61e-07))");
79 //   pid->SetPHOSPhotonWeightFormula(photonF);
80 //   pid->SetPHOSPi0WeightFormula(pi0F);
81
82   pid->SetDispersionCut(1.5);
83   pid->SetTOFCut(5.e-9);
84   pid->SetDebug(-1);
85   pid->Print("");
86
87   AliAnaPhoton *ana = new AliAnaPhoton();
88   ana->SetDebug(-1);
89   ana->SetMinPt(5.);
90   ana->SetMinDistanceToBadChannel(2, 4, 5);
91   ana->SetCaloPID(pid);
92   ana->SetFidutialCut(fidCut2);
93   ana->SetCalorimeter("PHOS");
94   ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms
95   ana->SwitchOffCaloPID();
96   ana->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
97   ana->SwitchOffFidutialCut();
98   ana->SetOutputAODName("Photons");
99   ana->SetOutputAODClassName("AliAODPWG4Particle");
100   //Set Histrograms bins and ranges
101 //      ana->SetHistoPtRangeAndNBins(0, 50, 100) ;
102 //      ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
103 //      ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
104   ana->Print("");
105
106   //---------------------------------------------------------------------
107   // Set  analysis algorithm and reader
108   //---------------------------------------------------------------------
109   maker = new AliAnaPartCorrMaker();
110   maker->SetReader(reader);//pointer to reader
111   maker->AddAnalysis(ana,0);
112   maker->SetAnaDebug(-1)  ;
113   maker->SwitchOnHistogramsMaker()  ;
114   maker->SwitchOnAODsMaker()  ;
115   
116   maker->Print("");
117   //
118   printf("======================== \n");
119   printf("END ConfigAnalysis() \n");
120   printf("======================== \n");
121   return maker ;
122 }