]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/ConfigGammaAnalysis.C
bug fix
[u/mrichter/AliRoot.git] / PWG4 / ConfigGammaAnalysis.C
1
2 AliAnaGamma*  ConfigGammaAnalysis()
3 {
4     //
5     // Configuration goes here
6     // 
7     printf("ConfigGammaAnalysis() \n");
8
9     //----------------------------------------------------------
10     //-----------------------------------------------------------  
11     // Define reader , uncomment 1 of the 2 options
12     //-----------------------------------------------------------
13     //----------------------------------------------------------
14
15     // -----Option 1------ Data, ESDs
16     //AliGammaDataReader *reader = new AliGammaDataReader();
17     //       AliGammaMCDataReader *reader = new AliGammaMCDataReader(); //Copy of AliGammaDataReader + Montecarlo Information
18 //     //Set detectors acceptance (in real and montecarlo data)
19 //     reader->SetCTSEtaCut(1); reader->SetEMCALEtaCut(1); reader->SetPHOSEtaCut(0.2);
20 //     reader->SetPhiEMCALCut(40*TMath::DegToRad(), 200*TMath::DegToRad());     
21 //     reader->SetPhiPHOSCut(200*TMath::DegToRad(), 350*TMath::DegToRad()); 
22 //     //Set minimum pt for particles in analysis  (in real and montecarlo data)
23 //     reader->SetNeutralPtCut(0.4); reader->SetChargedPtCut(0.4); 
24 //     //pid of measured particles
25     //reader->SetEMCALPIDOn(kTRUE); reader->SetPHOSPIDOn(kTRUE); //No pid, accept all particles 
26 //     //if previous kTrue
27 //     reader->SetPHOSPhotonWeight(0.7);    reader->SetPHOSPi0Weight(0.7); 
28 //     reader->SetEMCALPhotonWeight(0.7);    reader->SetEMCALPi0Weight(0.7);
29     //reader->UsePHOSPIDWeightFormula(kTRUE);
30     //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))");
31     //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))");
32     //reader->SetPHOSPhotonWeightFormula(photonF);
33     //reader->SetPHOSPi0WeightFormula(pi0F);
34
35      // -----Option 2------ Kinematics
36        AliGammaMCReader *reader = new AliGammaMCReader();
37 //     //Set detectors acceptance (in real and montecarlo data)
38 //     reader->SetCTSEtaCut(1); reader->SetEMCALEtaCut(1); reader->SetPHOSEtaCut(0.2);
39 //     reader->SetPhiEMCALCut(40*TMath::DegToRad(), 200*TMath::DegToRad());     
40 //     reader->SetPhiPHOSCut(200*TMath::DegToRad(), 350*TMath::DegToRad()); 
41 //     //Set minimum pt for particles in analysis  (in real and montecarlo data)
42 //     reader->SetNeutralPtCut(0.4); reader->SetChargedPtCut(0.4); 
43      reader->SetDecayPi0Flag(AliGammaMCReader::kGeantDecay) ; //Options
44 //     //kNoDecay :Do not decay pi0, keep them in the list as they are
45 //     //kGeantDecay: Look for gamma decayed by GEANT
46 //     //kDecay: Decay pi0 by hand (geant was not used)
47 //     //kDecayGamma: Pi0 is decayed by PYTHIA, pi0 is not final check if photons overlapp
48 //     //parameters to study if decay is overlapped:
49 //     reader->SetEMCALIPDistance(450.); reader->SetPHOSIPDistance(460.);
50 //     reader->SetEMCALMinDistance(3.6);    reader->SetPHOSMinDistance(11.); //Miimum overlapp distance
51        reader->SetCheckOverlapping(kTRUE);
52  
53     //----------------------------------------------------------
54     //----------------------------------------------------
55     //Define analysis algorithms
56     //----------------------------------------------------
57     //----------------------------------------------------------
58     //3 analysis types
59     //kPrompt: Find prompt gamma for a fixed cone and pt cut value
60     //kIsolationCut: Find prompt gamma for several cones and pt cuts values
61     //kCorrelation: Do prompt gamma - something correlation. Something can be
62     //      kParton: Gamma-Parton correlation
63     //      kHadron: Gamma-Hadron correlation
64     //      kJetLeadCone: Gamma-Jet correlation : constructed in cone around leading particle
65     //      kJetFinder: Gamma-Jet correlation : Jet reconstructed with standard algorithms. --Still not implemented--
66     //One of the first 3 analysis types is selected in the end with  ana->SetAnalysisType(AliAnaGamma::kCorrelation);
67     //The 4 correlation analysis are selected when the corresponding class is initialized
68
69     //============================
70     //First initialize prompt photon algoritm
71     //==============================
72     AliAnaGammaDirect *gd = new AliAnaGammaDirect();
73     gd->SetMinGammaPt(1.);
74     //not used in option kIsolationCut
75     //gd->SetConeSize(0.5); gd->SetPtThreshold(0.); gd->SetPtSumThreshold(0.);
76     gd->SetICMethod(AliAnaGammaDirect::kPtIC) ;//Options:
77           //kNoIC: Accept all photons, no isolation used
78           //kPtIC: IC with cut on pT
79           //kSumPtIC: IC with cut on pT sum in cone
80           //kSeveralIC: Not allowed in kCorrelation analysis
81 //     //for option kSeveralIC:
82 //      gd->SetNCones(2); gd->SetNPtThresholds(3);
83 //      gd->SetConeSizes(0,0.2); gd->SetConeSizes(1,0.3); //gd->SetConeSizes(2,0.4); 
84 //      gd->SetPtThresholds(0,0); gd->SetPtThresholds(1,1.); gd->SetPtThresholds(2,2);
85  
86     //============================
87     //Second, select the correlation algoritm
88     //==============================
89     //Uncomment 1 of the 4 options
90
91     //--- Option 1 ---
92     //AliAnaGammaParton *gc = new AliAnaGammaParton();
93     //No associated setters and getters for the moment.
94
95     //--- Option 2 ---
96     AliAnaGammaHadron *gc = new AliAnaGammaHadron();
97 //     gc->SetDeltaPhiCutRange(1,4); //Correlation in delta phi (gamma-particle), radians
98 //     gc->SetMinPtHadron(5.);
99 //     gc->SetJetsOnlyInCTS(kFALSE); // Don't consider particles in opposite calorimeter
100     
101     //--- Option 3 ---
102     //    AliAnaGammaJetLeadCone *gc = new AliAnaGammaJetLeadCone();
103 //     gc->SetDeltaPhiCutRange(2.8,3.5); //Correlation with leading particle delta phi (gamma-particle), radians
104 //     gc->SetRatioCutRange(0.1,1.2);
105 //     gc->SetJetsOnlyInCTS(kFALSE); // Don't consider particles in opposite calorimeter
106 //     //and many more setters and getters
107
108     //--- Option 4 ---
109     //    AliAnaGammaJetFinder *gc = new AliAnaGammaJetFinder();
110     //It does nothing for the moment
111
112     //In case of option 1 or 2, we need to select pairs to be candidate to pi0
113     //correlated with the opposite prompt photon. Need to play with this class
114     AliNeutralMesonSelection *nms = new AliNeutralMesonSelection();
115     nms->SetInvMassCutRange(0.1,0.17);
116     nms->KeepNeutralMesonSelectionHistos(kTRUE); //keep in file several histograms or not.
117     // and other parameters
118
119     //---------------------------------------------------------------------
120     // Finally: Set  analysis algorithm and reader
121     //---------------------------------------------------------------------
122     ana = new AliAnaGamma();
123     ana->SetReader(reader);//pointer to reader
124     ana->SetAnalysisType(AliAnaGamma::kCorrelation); //set kPrompt, kCorrelation
125     ana->SetGammaDirect(gd);//pointer to direct photon algorithm
126     ana->SetGammaCorrelation(gc);//pointer to correlation algorithm
127     ana->SetNeutralMesonSelection(nms); //pi0 pair selection
128     ana->SetCalorimeter("EMCAL"); //Prompt photon calorimeter
129    
130     //
131     return ana ;
132 }