]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/macros/ConfigAnalysisMCExample.C
possiblity to read ESD friends (Jacek)
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisMCExample.C
CommitLineData
3e0577a2 1/* $Id: $ */
2/* $Log$ */
3
4//------------------------------------
5// Configuration macro example:
6//
7// Do example analysis with MC
8//
9// Author : Gustavo Conesa Balbastre (INFN-LNF)
10//------------------------------------
11
12AliAnaPartCorrMaker* ConfigAnalysis()
13{
14 //
15 // Configuration goes here
16 //
17 printf("======================== \n");
18 printf("ConfigAnalysis() \n");
19 printf("======================== \n");
20
21
22 //Detector Fidutial Cuts
23 AliFidutialCut * fidCut = new AliFidutialCut();
24 fidCut->DoCTSFidutialCut(kFALSE) ;
25 fidCut->DoEMCALFidutialCut(kFALSE) ;
26 fidCut->DoPHOSFidutialCut(kTRUE) ;
27
28 //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
29 //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
30 fidCut->SetSimplePHOSFidutialCut(0.13,220.,320.);
31
32 // //Fidutial cut EMCAL, 5 regions
33 // Float_t etamax[]={0.67,0.51,0.16,-0.21,-0.61};
34 // TArrayF etamaxarr(5,etamax);
35 // fidCut->AddEMCALFidCutMaxEtaArray(etamaxarr);
36 // Float_t etamin[]={0.61,0.21,-0.16,-0.51,-0.67};
37 // TArrayF etaminarr(5,etamin);
38 // fidCut->AddEMCALFidCutMinEtaArray(etaminarr);
39 // Float_t phimax[]={99.*TMath::DegToRad(), 119.*TMath::DegToRad(), 139.*TMath::DegToRad(),
40 // 159.*TMath::DegToRad(), 179.*TMath::DegToRad(), 189.*TMath::DegToRad()};
41 // TArrayF phimaxarr(6,phimax);
42 // fidCut->AddEMCALFidCutMaxPhiArray(phimaxarr);
43 // Float_t phimin[]={81.*TMath::DegToRad(), 101.*TMath::DegToRad(), 121.*TMath::DegToRad(),
44 // 141.*TMath::DegToRad(), 161.*TMath::DegToRad(), 181.*TMath::DegToRad()};
45 // TArrayF phiminarr(6,phimin);
46 // fidCut->AddEMCALFidCutMinPhiArray(phiminarr);
47
48 fidCut->Print("");
49
50 //-----------------------------------------------------------
51 // Reader
52 //-----------------------------------------------------------
53 AliCaloTrackMCReader *reader = new AliCaloTrackMCReader();
54 reader->SetDebug(-1);
55
56 //Switch on or off the detectors information that you want
57 reader->SwitchOffEMCAL();
58 reader->SwitchOffCTS();
59 reader->SwitchOnPHOS();
60 reader->SwitchOffEMCALCells();
61 reader->SwitchOffPHOSCells();
62
63 //Min particle pT
64 reader->SetEMCALPtMin(0.);
65 reader->SetPHOSPtMin(0.);
66 reader->SetCTSPtMin(.2);
67
68 reader->SetFidutialCut(fidCut);
69 reader->Print("");
70
71
72 //---------------------------------------------------------------------
73 // Analysis algorithm
74 //---------------------------------------------------------------------
75
76 //Detector Fidutial Cuts for analysis part
77 AliFidutialCut * fidCut2 = new AliFidutialCut();
78 fidCut2->DoCTSFidutialCut(kFALSE) ;
79 fidCut2->DoEMCALFidutialCut(kFALSE) ;
80 fidCut2->DoPHOSFidutialCut(kTRUE) ;
81 fidCut2->SetSimplePHOSFidutialCut(0.1,240.,280.);
82
83 AliCaloPID * pid = new AliCaloPID();
84 // use selection with simple weights
85 pid->SetPHOSPhotonWeight(0.7); pid->SetPHOSPi0Weight(0.7);
86 pid->SetEMCALPhotonWeight(0.7); pid->SetEMCALPi0Weight(0.7);
87 // use more complicated selection, particle weight depending on cluster energy
88// pid->UsePHOSPIDWeightFormula(kTRUE);
89// 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))");
90// 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))");
91// pid->SetPHOSPhotonWeightFormula(photonF);
92// pid->SetPHOSPi0WeightFormula(pi0F);
93
94
95 AliAnaExample *ana = new AliAnaExample();
96 ana->SetDebug(-1);
97 ana->SetCaloPID(pid);
98 ana->SetFidutialCut(fidCut2);
99 ana->SetDetector("PHOS");
100 //ana->SwitchOnDataMC();
101 ana->SetMinPt(0.);
102 ana->SetOutputAODName("Example");
103 ana->SetOutputAODClassName("AliAODPWG4Particle"); //Or AliAODPWG4ParticleCorrelation
104 //Set Histrograms bins and ranges
105// ana->SetHistoPtRangeAndNBins(0, 50, 100) ;
106// ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
107// ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
108
109 //---------------------------------------------------------------------
110 // Set analysis algorithm and reader
111 //---------------------------------------------------------------------
112 maker = new AliAnaPartCorrMaker();
113 maker->SetReader(reader);//pointer to reader
114 maker->AddAnalysis(ana,0);
115 maker->SetAnaDebug(-1) ;
116 maker->SwitchOnHistogramsMaker() ;
117 maker->SwitchOnAODsMaker() ;
118
119 maker->Print("");
120 //
121 printf("======================== \n");
122 printf("END ConfigAnalysis() \n");
123 printf("======================== \n");
124 return maker ;
125}