]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/macros/ConfigAnalysisNeutralMeson.C
possiblity to read ESD friends (Jacek)
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisNeutralMeson.C
CommitLineData
9725fd2a 1/* $Id: $ */
2/* $Log$ */
3
4//------------------------------------
5// Configuration macro example:
6//
7// Do photon identification analysis with ESDs
8// in PHOS, after, pi0 identification with Invariant mass.
9// For EMCAL, change PHOS by EMCAL where necessary
10//
11// Author : Renzhuo Wan
12//------------------------------------
13
14AliAnaPartCorrMaker* 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(kTRUE) ;
28 fidCut->DoPHOSFidutialCut(kTRUE) ;
29
30 //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
31 fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
32 fidCut->SetSimplePHOSFidutialCut(0.12,220.,320.);
33
34 fidCut->Print("");
35
36
37 //-----------------------------------------------------------
38 // Reader
39 //-----------------------------------------------------------
40 AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
41 reader->SetDebug(-1);//10 for lots of messages
42
43 //Switch on or off the detectors information that you want
44 reader->SwitchOnEMCAL(); //switch off the EMCal
45 reader->SwitchOffCTS();
46 reader->SwitchOnPHOS();
47
48 //Min particle pT
49 reader->SetEMCALPtMin(0.2);
50 reader->SetPHOSPtMin(0.2);
51 //reader->SetCTSPtMin(0.2);
52
53 reader->SetFidutialCut(fidCut);
54 reader->Print("");
55
56 //PID settings
57 AliCaloPID * pid = new AliCaloPID();
58 // use selection with simple weights
59 pid->SetPHOSPhotonWeight(0.7); pid->SetPHOSPi0Weight(0.7);
60 // use more complicated selection, particle weight depending on cluster energy
61 // pid->UsePHOSPIDWeightFormula(kTRUE);
62 // 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))");
63 // 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))");
64 // pid->SetPHOSPhotonWeightFormula(photonF);
65 // pid->SetPHOSPi0WeightFormula(pi0F);
66
67 pid->SetDispersionCut(2);
68 pid->SetTOFCut(5.e-9);
69 pid->SetDebug(-1);
70 pid->Print("");
71
72
73 //---------------------------------------------------------------------
74 // Analysis algorithm PHOS
75 //---------------------------------------------------------------------
76
77 AliAnaPhoton *anaphoton = new AliAnaPhoton();
78 anaphoton->SetDebug(-1); //10 for lots of messages
79 anaphoton->SetMinPt(0.2);
80 anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
81 anaphoton->SetCaloPID(pid);
82 anaphoton->SetCalorimeter("PHOS");
83 anaphoton->SwitchOffDataMC() ;//Access MC stack and fill more histograms
84 anaphoton->SwitchOffCaloPID();
85 anaphoton->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
86 anaphoton->SwitchOffFidutialCut();
87 anaphoton->SetOutputAODName("PhotonsPHOS");
88 anaphoton->SetOutputAODClassName("AliAODPWG4Particle");
89 anaphoton->AddToHistogramsName("AnaPhotonPHOS_");
90 //Set Histrograms bins and ranges
91 anaphoton->SetHistoPtRangeAndNBins(0, 20, 200) ;
92 anaphoton->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
93 anaphoton->SetHistoEtaRangeAndNBins(-0.5, 0.5, 200) ;
94 anaphoton->Print("");
95
96 AliAnaNeutralMeson *ananeutral = new AliAnaNeutralMeson();
97 ananeutral->SetDebug(-1);//10 for lots of messages
98 ananeutral->SetInputAODName("PhotonsPHOS");
99 ananeutral->SetCaloPID(pid);
100// ananeutral->SetNCentrBin(5); //number of bins in centrality
101// ananeutral->SetNZvertBin(5); //number of bins for vertex position
102// ananeutral->SetNRPBin(6); //number of bins in reaction plain
103 ananeutral->SetAnaPi0Eta(kTRUE); //whether analysis pi0 and eta
104 ananeutral->SetAnaOmega(kTRUE); //whether analysis omega
105 ananeutral->SetNPID(3);
106 ananeutral->SetInvMassCut(1.);
107 ananeutral->SetNEventsMixed(6);
108 ananeutral->SetNAsyBinsMinMax(200,0,1.);
109 ananeutral->SetNPtBinsMinMax(200,0,20.);
110 ananeutral->SetNMassBinsMinMas(200,0,1.);
111 ananeutral->SetPi0MassPeakWidthCut(0.015);
112 ananeutral->SetCalorimeter("PHOS");
113 ananeutral->SwitchOnFidutialCut();
114 ananeutral->SwitchOffDataMC() ;//Access MC stack and fill more histograms
115 ananeutral->AddToHistogramsName("AnaNeuMesonPHOS_");
116 ananeutral->Print("");
117
118 //---------------------------------------------------------------------
119 // Analysis algorithm EMCAL
120 //---------------------------------------------------------------------
121
122 AliAnaPhoton *anaphoton2 = new AliAnaPhoton();
123 anaphoton2->SetDebug(-1); //10 for lots of messages
124 anaphoton2->SetMinPt(0.2);
125 anaphoton2->SetMinDistanceToBadChannel(2, 4, 5);
126 anaphoton2->SetCaloPID(pid);
127 anaphoton2->SetCalorimeter("EMCAL");
128 anaphoton2->SwitchOffDataMC() ;//Access MC stack and fill more histograms
129 anaphoton2->SwitchOffCaloPID();
130 anaphoton2->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
131 anaphoton2->SwitchOffFidutialCut();
132 anaphoton2->SetOutputAODName("PhotonsEMCAL");
133 anaphoton2->SetOutputAODClassName("AliAODPWG4Particle");
134 anaphoton2->AddToHistogramsName("AnaPhotonEMCAL_");
135 //Set Histrograms bins and ranges
136 anaphoton2->SetHistoPtRangeAndNBins(0, 20, 200) ;
137 anaphoton2->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
138 anaphoton2->SetHistoEtaRangeAndNBins(-0.5, 0.5, 200) ;
139 anaphoton2->Print("");
140
141 AliAnaNeutralMeson *ananeutral2 = new AliAnaNeutralMeson();
142 ananeutral2->SetDebug(-1);//10 for lots of messages
143 ananeutral2->SetInputAODName("PhotonsEMCAL");
144 ananeutral2->SetCaloPID(pid);
145 // ananeutral2->SetNCentrBin(5); //number of bins in centrality
146 // ananeutral2->SetNZvertBin(5); //number of bins for vertex position
147 // ananeutral2->SetNRPBin(6); //number of bins in reaction plain
148 ananeutral2->SetAnaPi0Eta(kTRUE); //whether analysis pi0 and eta
149 ananeutral2->SetAnaOmega(kTRUE); //whether analysis omega
150 ananeutral2->SetNPID(3);
151 ananeutral2->SetInvMassCut(1.);
152 ananeutral2->SetNEventsMixed(6);
153 ananeutral2->SetNAsyBinsMinMax(200,0,1.);
154 ananeutral2->SetNPtBinsMinMax(200,0,20.);
155 ananeutral2->SetNMassBinsMinMas(200,0,1.);
156 ananeutral2->SetPi0MassPeakWidthCut(0.015);
157 ananeutral2->SetCalorimeter("EMCAL");
158 ananeutral2->SwitchOnFidutialCut();
159 ananeutral2->SwitchOffDataMC() ;//Access MC stack and fill more histograms
160 ananeutral2->AddToHistogramsName("AnaNeutralMesonEMCAL_");
161 ananeutral2->Print("");
162
163
164 //---------------------------------------------------------------------
165 // Set analysis algorithm and reader
166 //---------------------------------------------------------------------
167 maker = new AliAnaPartCorrMaker();
168 maker->SetReader(reader);//pointer to reader
169 maker->AddAnalysis(anaphoton,0);
170 maker->AddAnalysis(ananeutral,1);
171 maker->AddAnalysis(anaphoton2,2);
172 maker->AddAnalysis(ananeutral2,3);
173 maker->SetAnaDebug(-1) ;
174 maker->SwitchOnHistogramsMaker() ;
175 maker->SwitchOnAODsMaker() ;
176
177 maker->Print("");
178 //
179 printf("======================== \n");
180 printf("END ConfigAnalysis() \n");
181 printf("======================== \n");
182 return maker ;
183}