4 //------------------------------------
5 // Configuration macro example:
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
11 // Author : Gustavo Conesa Balbastre (INFN-LNF)
12 //------------------------------------
14 AliAnaPartCorrMaker* ConfigAnalysis()
17 // Configuration goes here
19 printf("======================== \n");
20 printf("ConfigAnalysis() \n");
21 printf("======================== \n");
24 //Detector Fidutial Cuts
25 AliFidutialCut * fidCut = new AliFidutialCut();
26 fidCut->DoCTSFidutialCut(kFALSE) ;
27 fidCut->DoEMCALFidutialCut(kFALSE) ;
28 fidCut->DoPHOSFidutialCut(kTRUE) ;
30 //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
31 //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
32 fidCut->SetSimplePHOSFidutialCut(0.12,220.,320.);
37 //-----------------------------------------------------------
39 //-----------------------------------------------------------
40 AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
41 reader->SetDebug(-1);//10 for lots of messages
43 //Switch on or off the detectors information that you want
44 reader->SwitchOnEMCAL();
45 reader->SwitchOnCTS();
46 reader->SwitchOnPHOS();
49 //reader->SetEMCALPtMin(0.5);
50 reader->SetPHOSPtMin(0.5);
51 //reader->SetCTSPtMin(0.2);
53 reader->SetFidutialCut(fidCut);
57 //---------------------------------------------------------------------
59 //---------------------------------------------------------------------
61 AliCaloPID * pid = new AliCaloPID();
62 // use selection with simple weights
63 pid->SetPHOSPhotonWeight(0.7); pid->SetPHOSPi0Weight(0.7);
64 // use more complicated selection, particle weight depending on cluster energy
65 // pid->UsePHOSPIDWeightFormula(kTRUE);
66 // 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))");
67 // 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))");
68 // pid->SetPHOSPhotonWeightFormula(photonF);
69 // pid->SetPHOSPi0WeightFormula(pi0F);
71 pid->SetDispersionCut(1.5);
72 pid->SetTOFCut(5.e-9);
76 AliAnaPhoton *anaphoton = new AliAnaPhoton();
77 anaphoton->SetDebug(-1); //10 for lots of messages
78 anaphoton->SetMinPt(1);
79 anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
80 anaphoton->SetCaloPID(pid);
81 //anaphoton->SetFidutialCut(fidCut2); //More acceptance selections if needed at this level
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("Photons");
88 anaphoton->SetOutputAODClassName("AliAODPWG4Particle");
89 //Set Histrograms bins and ranges
90 // anaphoton->SetHistoPtRangeAndNBins(0, 50, 100) ;
91 // anaphoton->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
92 // anaphoton->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ; anaphoton->Print("");
94 //Detector Fidutial Cuts
95 AliFidutialCut * fidCut2 = new AliFidutialCut();
96 fidCut2->DoPHOSFidutialCut(kTRUE) ;
97 fidCut2->SetSimplePHOSFidutialCut(0.12,220.,320.);
101 AliAnaPi0 *anapi0 = new AliAnaPi0();
102 anapi0->SetDebug(-1);//10 for lots of messages
103 anapi0->SetInputAODName("Photons");
104 anapi0->SetCaloPID(pid);
105 // anapi0->SetNCentrBin(5); //number of bins in centrality
106 // anapi0->SetNZvertBin(5); //number of bins for vertex position
107 // anapi0->SetNRPBin(6); //number of bins in reaction plain
108 // anapi0->SetNMaxEvMix(20);//Maximal number of events for mixing
109 anapi0->SetCalorimeter("PHOS");
110 anapi0->SetFidutialCut(fidCut2); //More acceptance selections if needed at this level. Not used if real geometry
111 anapi0->SwitchOnFidutialCut();
112 anapi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
115 //---------------------------------------------------------------------
116 // Set analysis algorithm and reader
117 //---------------------------------------------------------------------
118 maker = new AliAnaPartCorrMaker();
119 maker->SetReader(reader);//pointer to reader
120 maker->AddAnalysis(anaphoton,0);
121 maker->AddAnalysis(anapi0,1);
122 maker->SetAnaDebug(-1) ;
123 maker->SwitchOnHistogramsMaker() ;
124 maker->SwitchOnAODsMaker() ;
128 printf("======================== \n");
129 printf("END ConfigAnalysis() \n");
130 printf("======================== \n");