]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/ConfigAnalysisESDExample.C
update configuration analysis macros with last updates in the frame
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisESDExample.C
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
12 AliAnaPartCorrMaker*  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(kTRUE) ;
26   fidCut->DoPHOSFidutialCut(kTRUE) ;
27   
28   //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
29   fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
30   fidCut->SetSimplePHOSFidutialCut(0.12,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   AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
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->SwitchOnPHOSCells();
62
63   //Min particle pT
64   reader->SetEMCALPtMin(0.); 
65   reader->SetPHOSPtMin(0.);
66   reader->SetCTSPtMin(.2);
67
68   //Remove the temporal AODs we create. 
69   reader->SwitchOffWriteStdAOD();       
70
71   reader->SetFidutialCut(fidCut);
72         
73 //     //We want tracks fitted in the detectors:
74 //     ULong_t status=AliAODTrack::kTPCrefit;
75 //     status|=AliAODTrack::kITSrefit; //(default settings)
76    
77 //     We want tracks whose PID bit is set:
78 //     ULong_t status =AliAODTrack::kITSpid;
79 //     status|=AliAODTrack::kTPCpid;    
80         
81 //      reader->SetTrackStatus(status);
82         
83         
84   reader->Print("");
85   
86   //---------------------------------------------------------------------
87   // Analysis algorithm
88   //---------------------------------------------------------------------
89   
90   //Detector Fidutial Cuts for analysis part
91   AliFidutialCut * fidCut2 = new AliFidutialCut();
92   fidCut2->DoCTSFidutialCut(kFALSE) ;
93   fidCut2->DoEMCALFidutialCut(kTRUE) ;
94   fidCut2->DoPHOSFidutialCut(kTRUE) ;
95   
96   //fidCut2->SetSimpleCTSFidutialCut(0.9,0.,360.);
97   fidCut2->SetSimpleEMCALFidutialCut(0.5,100.,150.);
98   fidCut2->SetSimplePHOSFidutialCut(0.1,240.,280.);
99
100   AliCaloPID * pid = new AliCaloPID();
101   // use selection with simple weights
102   pid->SetPHOSPhotonWeight(0.7);    pid->SetPHOSPi0Weight(0.7); 
103   pid->SetEMCALPhotonWeight(0.7);    pid->SetEMCALPi0Weight(0.7);
104   // use more complicated selection, particle weight depending on cluster energy
105 //   pid->UsePHOSPIDWeightFormula(kTRUE);
106 //   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))");
107 //   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))");
108 //   pid->SetPHOSPhotonWeightFormula(photonF);
109 //   pid->SetPHOSPi0WeightFormula(pi0F);
110
111
112   AliAnaExample *ana = new AliAnaExample();
113   ana->SetDebug(-1);
114   ana->SetCaloPID(pid);
115   ana->SetFidutialCut(fidCut2);
116   ana->SetDetector("PHOS");
117   //ana->SwitchOnDataMC();
118   ana->SetMinPt(0.);
119   ana->SetOutputAODName("Example");
120   ana->SetOutputAODClassName("AliAODPWG4Particle"); //Or AliAODPWG4ParticleCorrelation
121   //Set Histrograms bins and ranges
122 //      ana->SetHistoPtRangeAndNBins(0, 50, 100) ;
123 //      ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
124 //      ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;  
125
126 //AliAnaExample *ana2 = new AliAnaExample();
127   
128   //---------------------------------------------------------------------
129   // Set  analysis algorithm and reader
130   //---------------------------------------------------------------------
131   maker = new AliAnaPartCorrMaker();
132   maker->SetReader(reader);//pointer to reader
133   maker->AddAnalysis(ana,0);
134   //maker->AddAnalysis(ana2,1);
135   maker->SetAnaDebug(-1)  ;
136   maker->SwitchOnHistogramsMaker()  ;
137   //maker->SwitchOffHistogramsMaker() ;  
138   maker->SwitchOnAODsMaker()  ;
139   //maker->SwitchOffAODsMaker() ; 
140   
141   maker->Print("");
142   //
143   printf("======================== \n");
144   printf("END ConfigAnalysis() \n");
145   printf("======================== \n");
146   return maker ;
147 }