]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/ConfigAnalysisOmegaToPi0Gamma.C
extra cut for clusters
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisOmegaToPi0Gamma.C
1 AliAnaPartCorrMaker*  ConfigAnalysis()
2 {
3         //
4         // Configuration goes here
5         // 
6         printf("======================== \n");
7         printf("ConfigAnalysis() \n");
8         printf("======================== \n");
9         
10         //Detector Fidutial Cuts
11         AliFiducialCut * fidCut = new AliFiducialCut();
12         fidCut->DoCTSFiducialCut(kTRUE) ;
13         fidCut->DoEMCALFiducialCut(kTRUE) ;
14         fidCut->DoPHOSFiducialCut(kTRUE) ;
15         
16         fidCut->SetSimpleCTSFiducialCut(0.9,0.,360.);
17         fidCut->SetSimpleEMCALFiducialCut(0.7,80.,190.);
18         fidCut->SetSimplePHOSFiducialCut(0.12,220.,320.);
19         
20         fidCut->Print("");
21         
22         //-----------------------------------------------------------  
23         // Reader
24         //-----------------------------------------------------------
25         AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
26         reader->SetDebug(-1);//10 for lots of messages
27         
28         //Switch on or off the detectors information that you want
29         reader->SwitchOnPHOS();
30         reader->SwitchOnEMCAL();
31         reader->SwitchOnCTS();
32         
33         //Min particle pT
34         reader->SetEMCALPtMin(0.5); 
35         reader->SetPHOSPtMin(0.5);
36         reader->SetCTSPtMin(0.5);
37         
38         reader->SetFiducialCut(fidCut);
39         reader->Print("");
40         
41         
42         //---------------------------------------------------------------------
43         // Analysis algorithm
44         //---------------------------------------------------------------------
45         
46         AliCaloPID * pid = new AliCaloPID();
47         // use selection with simple weights
48         //pid->SetEMCALPhotonWeight(0.7);    pid->SetEMCALPi0Weight(0.7);
49         pid->SetPHOSPhotonWeight(0.7);    pid->SetPHOSPi0Weight(0.7);
50         pid->SetDispersionCut(2);
51         pid->SetTOFCut(5.e-9);
52         pid->SetDebug(-1);
53         pid->Print("");
54
55         AliAnaPhoton *anaphoton = new AliAnaPhoton();
56         anaphoton->SetDebug(-1); //10 for lots of messages
57         anaphoton->SetMinPt(0.1);
58         anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
59         anaphoton->SetCaloPID(pid);
60 //        anaphoton->SetFiducialCut(fidCut); //More acceptance selections if needed at this level
61         anaphoton->SetCalorimeter("PHOS");
62         anaphoton->SwitchOffDataMC() ;//Access MC stack and fill more histograms
63         anaphoton->SwitchOffCaloPID();
64         anaphoton->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
65         anaphoton->SwitchOffFiducialCut();
66         anaphoton->SetOutputAODName("PhotonsPHOS");
67         anaphoton->SetOutputAODClassName("AliAODPWG4Particle");
68         anaphoton->AddToHistogramsName("AnaPhotonPHOS_");
69          //Set Histrograms bins and ranges
70         anaphoton->SetHistoPtRangeAndNBins(0, 50, 100) ;
71         anaphoton->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
72         anaphoton->SetHistoEtaRangeAndNBins(-0.2, 0.2, 100) ;
73         anaphoton->Print("");
74
75         fidCut->Print("");
76         
77         // >>> Second Analysis <<<
78         
79         AliNeutralMesonSelection *nms = new AliNeutralMesonSelection();
80         nms->SetInvMassCutRange(0.11, 0.16)     ;
81         nms->KeepNeutralMesonSelectionHistos(kTRUE);
82         //Set Histrograms bins and ranges
83
84         AliAnaPi0EbE *anapi0EbE = new AliAnaPi0EbE();
85         anapi0EbE->SetDebug(-1);//10 for lots of messages
86         anapi0EbE->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
87         anapi0EbE->SetInputAODName("PhotonsPHOS");
88         anapi0EbE->SetOutputAODName("Pi0sPHOS");
89         anapi0EbE->SetOutputAODClassName("AliAODPWG4Particle");
90         anapi0EbE->SwitchOffDataMC() ;//Access MC stack and fill more histograms
91         anapi0EbE->SetNeutralMesonSelection(nms);
92         anapi0EbE->AddToHistogramsName("AnaPi0EbEPHOS_");
93         //Set Histrograms bins and ranges
94
95         anapi0EbE->Print("");
96         
97         AliAnaOmegaToPi0Gamma *anaomega = new AliAnaOmegaToPi0Gamma();
98         anaomega->SetDebug(-1);//10 for lots of messages
99         anaomega->SetInputAODName("Pi0sPHOS");
100         anaomega->SetInputAODPhotonName("PhotonsPHOS");
101         anaomega->SetNPID(2);
102         anaomega->SetNVtxZ(2);
103         anaomega->SetNBadChDist(1);
104         anaomega->SetNEventsMixed(4);
105         anaomega->SetPi0MassPeakWidthCut(0.008); //
106         anaomega->SetHistoPtRangeAndNBins(0, 10, 200) ;
107         anaomega->SetHistoMassRangeAndNBins(0, 1, 200) ;
108         anaomega->SetPi0OverOmegaPtCut(0.8);
109         anaomega->SetGammaOverOmegaPtCut(0.2);
110         anaomega->SwitchOnFiducialCut();
111         anaomega->SwitchOffDataMC() ;//Access MC stack and fill more histograms
112         anaomega->AddToHistogramsName("AnaOmegaToPi0GammaPHOS_");
113         anaomega->Print("");
114
115 //for EMCAL
116         AliCaloPID * pid1 = new AliCaloPID();
117         // use selection with simple weights
118         pid1->SetEMCALPhotonWeight(0.7);    pid1->SetEMCALPi0Weight(0.7);
119         pid1->SetDispersionCut(2);
120         pid1->SetTOFCut(5.e-9);
121         pid1->SetDebug(-1);
122         pid1->Print("");
123
124         AliAnaPhoton *anaphoton1 = new AliAnaPhoton();
125         anaphoton1->SetDebug(-1); //10 for lots of messages
126         anaphoton1->SetMinPt(0.1);
127         anaphoton1->SetMinDistanceToBadChannel(2, 4, 5);
128         anaphoton1->SetCaloPID(pid);
129         anaphoton1->SetCalorimeter("EMCAL");
130         anaphoton1->SwitchOffDataMC() ;//Access MC stack and fill more histograms
131         anaphoton1->SwitchOffCaloPID();
132         anaphoton1->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
133         anaphoton1->SwitchOffFiducialCut();
134         anaphoton1->SetOutputAODName("PhotonsEMCAL");
135         anaphoton1->SetOutputAODClassName("AliAODPWG4Particle");
136         anaphoton1->AddToHistogramsName("AnaPhotonEMCAL_");
137          //Set Histrograms bins and ranges
138         anaphoton1->SetHistoPtRangeAndNBins(0, 50, 100) ;
139         anaphoton1->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
140         anaphoton1->SetHistoEtaRangeAndNBins(-0.8, 0.8, 100) ;
141         anaphoton1->Print("");
142
143         AliNeutralMesonSelection *nms1 = new AliNeutralMesonSelection();
144         nms1->SetInvMassCutRange(0.11, 0.16)     ;
145         nms1->KeepNeutralMesonSelectionHistos(kTRUE);
146         //Set Histrograms bins and ranges
147
148         AliAnaPi0EbE *anapi0EbEEbE1 = new AliAnaPi0EbE();
149         anapi0EbEEbE1->SetDebug(-1);//10 for lots of messages
150         anapi0EbEEbE1->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
151         anapi0EbEEbE1->SetInputAODName("PhotonsEMCAL");
152         anapi0EbEEbE1->SetOutputAODName("Pi0sEMCAL");
153         anapi0EbEEbE1->SetOutputAODClassName("AliAODPWG4Particle");
154         anapi0EbEEbE1->SwitchOffDataMC() ;//Access MC stack and fill more histograms
155         anapi0EbEEbE1->SetNeutralMesonSelection(nms1);
156         anapi0EbEEbE1->AddToHistogramsName("AnaPi0EbEEMCAL_");
157         //Set Histrograms bins and ranges
158         anapi0EbEEbE1->Print("");
159
160
161         AliAnaOmegaToPi0Gamma *anaomega1 = new AliAnaOmegaToPi0Gamma();
162         anaomega1->SetDebug(-1);//10 for lots of messages
163         anaomega1->SetInputAODName("Pi0sEMCAL");
164         anaomega1->SetInputAODPhotonName("PhotonsEMCAL");
165         anaomega1->SetNPID(2);
166         anaomega1->SetNVtxZ(2);
167         anaomega1->SetNBadChDist(1);
168         anaomega1->SetNEventsMixed(4);
169         anaomega1->SetPi0MassPeakWidthCut(0.015);
170         anaomega1->SetHistoPtRangeAndNBins(0, 10, 200) ;
171         anaomega1->SetHistoMassRangeAndNBins(0, 1, 200) ;
172         anaomega1->SetPi0OverOmegaPtCut(0.8);
173         anaomega1->SetGammaOverOmegaPtCut(0.2);
174         anaomega1->SwitchOnFiducialCut();
175         anaomega1->SwitchOffDataMC() ;//Access MC stack and fill more histograms
176         anaomega1->AddToHistogramsName("AnaOmegaToPi0GammaEMCAL_");
177         anaomega1->Print("");
178
179         //---------------------------------------------------------------------
180         // Set  analysis algorithm and reader
181         //---------------------------------------------------------------------
182         maker = new AliAnaPartCorrMaker();
183         maker->SetReader(reader);//pointer to reader
184         maker->SetAnaDebug(0);
185         maker->AddAnalysis(anaphoton,0);
186         maker->AddAnalysis(anapi0EbE,1);
187         maker->AddAnalysis(anaomega,2);
188
189         maker->AddAnalysis(anaphoton1,3);
190         maker->AddAnalysis(anapi0EbEEbE1,4);
191         maker->AddAnalysis(anaomega1,5);
192
193         maker->SwitchOnHistogramsMaker()  ;
194         maker->SwitchOnAODsMaker()  ;
195         
196         maker->Print("");
197         //
198         printf("======================== \n");
199         printf("END ConfigAnalysis() \n");
200         printf("======================== \n");
201         return maker ;
202 }