1 //------------------------------------
\r
2 // Configuration macro example:
\r
4 // Configure EMCal electron analysis
\r
6 // Modified by: K. Read
\r
8 //------------------------------------
\r
10 AliAnaPartCorrMaker* ConfigAnalysis()
\r
13 // Configuration goes here
\r
15 printf("======================== \n");
\r
16 printf("ConfigAnalysisElectron() \n");
\r
17 printf("======================== \n");
\r
18 Bool_t kInputIsESD = kTRUE; //uncomment for input ESD
\r
19 //Bool_t kInputIsESD = kFALSE; //uncomment for input AODs
\r
20 Bool_t kFollowsFilter = kTRUE; //uncomment if follows ESD filter task
\r
21 //Bool_t kFollowsFilter = kFALSE; //uncomment if no ESD filter task
\r
23 //Alternatively, select input via anaInputData environment variable.
\r
24 if (gSystem->Getenv("anaInputData")){
\r
25 TString kInputData = gSystem->Getenv("anaInputData");
\r
26 if( kInputData == "AOD" ){
\r
27 kInputIsESD = kFALSE;
\r
28 kFollowsFilter = kFALSE;
\r
32 //Detector Fidutial Cuts
\r
33 AliFidutialCut * fidCut = new AliFidutialCut();
\r
34 fidCut->DoCTSFidutialCut(kFALSE) ;
\r
35 fidCut->DoEMCALFidutialCut(kFALSE) ;
\r
36 fidCut->DoPHOSFidutialCut(kFALSE) ;
\r
38 //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);
\r
39 //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);
\r
40 //fidCut->SetSimplePHOSFidutialCut(0.13,220.,320.);
\r
44 //-----------------------------------------------------------
\r
46 //-----------------------------------------------------------
\r
47 if(kInputIsESD && !kFollowsFilter)AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();
\r
48 else AliCaloTrackAODReader *reader = new AliCaloTrackAODReader();
\r
49 reader->SetDebug(-1);//10 for lots of messages
\r
51 //Switch on or off the detectors information that you want
\r
52 reader->SwitchOnEMCAL();
\r
53 reader->SwitchOnCTS();
\r
54 //reader->SwitchOffEMCALCells();
\r
55 reader->SwitchOffPHOS();
\r
56 //reader->SwitchOffPHOSCells();
\r
60 reader->SwitchOffStack(); // On by default, remember to SwitchOnMCData() in analysis classes
\r
61 reader->SwitchOnAODMCParticles(); // Off by default, remember to SwitchOnMCData() in analysis classes
\r
65 reader->SetCTSPtMin(0.0); //new
\r
66 reader->SetEMCALPtMin(0.0); //new
\r
67 if(kFollowsFilter)reader->SetTrackStatus(0); //to prevent automatic TPC and ITS refit
\r
69 //In case of generating jet events (with PYTHIA), if pt hard bin is small
\r
70 //reject events with large difference between ptHard and triggered jet
\r
71 //reader->SetPtHardAndJetPtComparison(kTRUE);
\r
73 reader->SetFidutialCut(fidCut);
\r
76 // Analysis with tracks, select only tracks with
\r
79 // //We want tracks fitted in the detectors:
\r
80 // ULong_t status=AliAODTrack::kTPCrefit;
\r
81 // status|=AliAODTrack::kITSrefit;
\r
83 // We want tracks whose PID bit is set:
\r
84 // ULong_t status =AliAODTrack::kITSpid;
\r
85 // status|=AliAODTrack::kTPCpid;
\r
87 // reader->SetTrackStatus(status);
\r
93 //Detector Fidutial Cuts
\r
94 AliFidutialCut * fidCut2 = new AliFidutialCut();
\r
95 fidCut2->DoEMCALFidutialCut(kTRUE) ;
\r
96 fidCut2->SetSimpleEMCALFidutialCut(0.7,80.,190.);
\r
98 fidCut2->DoCTSFidutialCut(kTRUE) ;
\r
99 fidCut2->SetSimpleCTSFidutialCut(0.9,0.,360.);
\r
101 fidCut2->Print("");
\r
103 //---------------------------------------------------------------------
\r
104 // Analysis algorithm
\r
105 //---------------------------------------------------------------------
\r
107 AliAnaElectron *anaelectron = new AliAnaElectron();
\r
108 anaelectron->SetDebug(-1); //10 for lots of messages
\r
109 anaelectron->SetCalorimeter("EMCAL");
\r
110 anaelectron->SwitchOnDataMC();
\r
111 anaelectron->SetpOverEmin(0.8);
\r
112 anaelectron->SetpOverEmax(1.1);
\r
113 anaelectron->SetResidualCut(0.02);
\r
114 anaelectron->SetMinPt(1.);
\r
115 anaelectron->SetImpactCut(1.0); //instead of 0.5
\r
116 anaelectron->SetSdcaCut(0.05); //instead of 0.1
\r
117 anaelectron->SetOutputAODName("Electrons");
\r
118 anaelectron->SetOutputAODClassName("AliAODPWG4Particle");
\r
119 anaelectron->SetWriteNtuple(kFALSE);
\r
120 //Set Histrograms bins and ranges
\r
121 anaelectron->SetHistoPtRangeAndNBins(0, 50, 100) ;
\r
122 anaelectron->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
\r
123 anaelectron->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
\r
124 anaelectron->Print("");
\r
126 //---------------------------------------------------------------------
\r
127 // Set analysis algorithm and reader
\r
128 //---------------------------------------------------------------------
\r
129 maker = new AliAnaPartCorrMaker();
\r
130 maker->SetReader(reader);//pointer to reader
\r
131 maker->AddAnalysis(anaelectron,0);
\r
132 maker->SetAnaDebug(-1) ;
\r
133 maker->SwitchOnHistogramsMaker() ;
\r
134 maker->SwitchOnAODsMaker() ;
\r
138 printf("============================ \n");
\r
139 printf("END ConfigAnalysisElectron() \n");
\r
140 printf("============================ \n");
\r