4 //------------------------------------
5 // Configuration macro example:
7 // Do photon identification analysis with ESDs
8 // in EMCAL, after pi0 identification event by event
9 // in photon paris invariant mass and aperture angle widow.
10 // After, study the isolation of the selected pi0.
11 // For PHOS, change EMCAL by PHOS where necessary
12 // Do photon identification analysis with ESDs
14 // Author : Gustavo Conesa Balbastre (INFN-LNF)
15 //------------------------------------
17 AliAnaPartCorrMaker* ConfigAnalysis()
20 // Configuration goes here
22 printf("======================== \n");
23 printf("ConfigAnalysis() \n");
24 printf("======================== \n");
27 //Detector Fiducial Cuts
28 AliFiducialCut * fidCut = new AliFiducialCut();
29 fidCut->DoCTSFiducialCut(kFALSE) ;
30 fidCut->DoEMCALFiducialCut(kFALSE) ;
31 fidCut->DoPHOSFiducialCut(kTRUE) ;
33 //fidCut->SetSimpleCTSFiducialCut(0.9,0.,360.);
34 //fidCut->SetSimpleEMCALFiducialCut(0.7,80.,190.);
35 //fidCut->SetSimplePHOSFiducialCut(0.12,220.,320.);
39 //-----------------------------------------------------------
41 //-----------------------------------------------------------
42 AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
43 reader->SetDebug(-1);//10 for lots of messages
45 //Switch on or off the detectors information that you want
46 reader->SwitchOnEMCAL();
47 reader->SwitchOnCTS();
48 reader->SwitchOffPHOS();
51 reader->SetEMCALPtMin(0.5);
52 //reader->SetPHOSPtMin(0.5);
53 reader->SetCTSPtMin(0.2);
55 reader->SetFiducialCut(fidCut);
57 // //We want tracks fitted in the detectors:
58 // ULong_t status=AliAODTrack::kTPCrefit;
59 // status|=AliAODTrack::kITSrefit; //(default settings)
61 // We want tracks whose PID bit is set:
62 // ULong_t status =AliAODTrack::kITSpid;
63 // status|=AliAODTrack::kTPCpid;
65 // reader->SetTrackStatus(status);
67 //Remove the temporal AODs we create.
68 reader->SwitchOnCleanStdAOD();
73 //---------------------------------------------------------------------
75 //---------------------------------------------------------------------
77 AliCaloPID * pid = new AliCaloPID();
78 // use selection with simple weights
79 pid->SetEMCALPhotonWeight(0.7); pid->SetEMCALPi0Weight(0.7);
80 pid->SetDispersionCut(1.5);
81 pid->SetTOFCut(5.e-9);
85 AliAnaPhoton *anaphoton = new AliAnaPhoton();
86 anaphoton->SetDebug(-1); //10 for lots of messages
87 anaphoton->SetMinPt(1);
88 anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
89 anaphoton->SetCaloPID(pid);
90 //anaphoton->SetFiducialCut(fidCut2); //More acceptance selections if needed at this level
91 anaphoton->SetCalorimeter("EMCAL");
92 anaphoton->SwitchOffDataMC() ;//Access MC stack and fill more histograms
93 anaphoton->SwitchOffCaloPID();
94 anaphoton->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
95 anaphoton->SwitchOffFiducialCut();
96 anaphoton->SetOutputAODName("Photons");
97 anaphoton->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
98 //Set Histrograms bins and ranges
99 // anaphoton->SetHistoPtRangeAndNBins(0, 50, 100) ;
100 // anaphoton->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
101 // anaphoton->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
102 anaphoton->Print("");
104 // >>> Second Analysis <<<
106 AliNeutralMesonSelection *nms = new AliNeutralMesonSelection();
107 nms->SetInvMassCutRange(0.10, 0.17) ;
108 nms->KeepNeutralMesonSelectionHistos(kTRUE);
109 //Set Histrograms bins and ranges
110 // nms->SetHistoERangeAndNBins(0, 50, 100) ;
111 // nms->SetHistoPtRangeAndNBins(0, 50, 100) ;
112 // nms->SetHistoAngleRangeAndNBins(0, 0.3, 100) ;
113 // nsm->SetHistoIMRangeAndNBins(0, 0.4, 100) ;
115 AliAnaPi0EbE *anapi0 = new AliAnaPi0EbE();
116 anapi0->SetDebug(-1);//10 for lots of messages
117 anapi0->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
118 anapi0->SetInputAODName("Photons");
119 anapi0->SetOutputAODName("Pi0s");
120 anapi0->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
121 anapi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
122 anapi0->SetNeutralMesonSelection(nms);
123 //Set Histrograms bins and ranges
124 // anapi0->SetHistoPtRangeAndNBins(0, 50, 100) ;
125 // anapi0->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
126 // anapi0->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
129 // >>>> Third Analysis <<<<
130 AliIsolationCut * ic = new AliIsolationCut();
131 ic->SetConeSize(0.4);
132 ic->SetPtThreshold(1.);
133 ic->SetICMethod(AliIsolationCut::kPtThresIC);
136 AliAnaParticleIsolation *anaisol = new AliAnaParticleIsolation();
137 anaisol->SetDebug(-1);
138 anaisol->SetInputAODName("Pi0s");
139 anaisol->SetMinPt(5);
140 anaisol->SetCalorimeter("EMCAL"); //Must be the same calorimeter where pi0/photon falls
141 anaisol->SwitchOffDataMC() ;//Access MC stack and fill more histograms
142 //Select clusters with no pair, if both clusters with pi0 mass
143 anaisol->SwitchOffInvariantMass(); //It is a pi0 not needed
144 //anaisol->SetNeutralMesonSelection(nms);
146 anaisol->SetIsolationCut(ic);
147 //Do or not do isolation with previously produced AODs.
148 //No effect if use of SwitchOnSeveralIsolation()
149 anaisol->SwitchOffReIsolation();
152 anaisol->SwitchOffSeveralIsolation() ;
153 //Make sure that the initial isolation cut parameters set in AliIsolationCut
154 //pointer are relativelly open.
155 // anaisol->SetNCones(2) ;
156 // anaisol->SetNPtThresFrac(2) ;
157 // anaisol->SetConeSizes(0, 0.3) ; anaisol->SetConeSizes(1, 0.4) ;
158 // anaisol->SetPtThresholds(0, 0.5) ; anaisol->SetPtThresholds(1, 1.) ;
159 // anaisol->SetPtFractions(0, 1.) ; anaisol->SetPtFractions(1, 1.5) ;
160 //Set Histrograms bins and ranges
161 // anaisol->SetHistoPtRangeAndNBins(0, 50, 100) ;
162 // anaisol->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
163 // anaisol->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
164 anaisol->SetHistoPtSumRangeAndNBins(0, 10, 100) ;
165 anaisol->SetHistoPtInConeRangeAndNBins(0, 50, 100) ;
169 //---------------------------------------------------------------------
170 // Set analysis algorithm and reader
171 //---------------------------------------------------------------------
172 maker = new AliAnaPartCorrMaker();
173 maker->SetReader(reader);//pointer to reader
174 maker->AddAnalysis(anaphoton,0);
175 maker->AddAnalysis(anapi0,1);
176 maker->AddAnalysis(anaisol,2);
177 maker->SetAnaDebug(-1) ;
178 maker->SwitchOnHistogramsMaker() ;
179 maker->SwitchOnAODsMaker() ;
183 printf("======================== \n");
184 printf("END ConfigAnalysis() \n");
185 printf("======================== \n");