1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies; charged hadrons
4 // - reconstruction and MC output
7 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
8 //University of Tennessee at Knoxville
9 //_________________________________________________________________________
15 #include "AliESDEvent.h"
16 #include "AliMCEvent.h"
17 #include "AliESDtrackCuts.h"
19 #include "AliAnalysisTaskHadEt.h"
20 #include "AliAnalysisHadEtReconstructed.h"
21 #include "AliAnalysisHadEtMonteCarlo.h"
27 ClassImp(AliAnalysisTaskHadEt)
31 //________________________________________________________________________
32 AliAnalysisTaskHadEt::AliAnalysisTaskHadEt(const char *name) :
33 AliAnalysisTaskSE(name)
38 ,fEsdtrackCutsITSTPC(0)
44 fRecAnalysis = new AliAnalysisHadEtReconstructed();
46 fMCAnalysis = new AliAnalysisHadEtMonteCarlo();
49 // Define input and output slots here
50 // Input slot #0 works with a TChain
51 DefineInput(0, TChain::Class());
52 // Output slot #1 writes into a TH1 container
54 DefineOutput(1, TList::Class());
59 //________________________________________________________________________
60 void AliAnalysisTaskHadEt::UserCreateOutputObjects()
64 fOutputList = new TList;
65 fMCAnalysis->SetHistoList(fOutputList);
66 fRecAnalysis->SetHistoList(fOutputList);
67 fMCAnalysis->CreateHistograms();
68 fRecAnalysis->CreateHistograms();
69 fRecAnalysis->FillOutputList();
70 fMCAnalysis->FillOutputList();
73 Bool_t selectPrimaries=kTRUE;
74 fEsdtrackCutsITSTPC = AliESDtrackCuts::GetStandardITSTPCTrackCuts2009(selectPrimaries);
75 fEsdtrackCutsITSTPC->SetName("fEsdTrackCuts");
76 fEsdtrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
77 fEsdtrackCutsTPC->SetName("fEsdTrackCutsTPCOnly");
78 //ITS stand alone cuts - similar to 2009 cuts but with only ITS hits required
79 fEsdtrackCutsITS = AliESDtrackCuts::GetStandardITSPureSATrackCuts2009();
80 fEsdtrackCutsITS->SetName("fEsdTrackCutsITS");
82 fOutputList->Add(fEsdtrackCutsITSTPC);
83 fOutputList->Add(fEsdtrackCutsTPC);
84 fOutputList->Add(fEsdtrackCutsITS);
85 if(fEsdtrackCutsITSTPC && fEsdtrackCutsTPC){
86 fRecAnalysis->SetITSTrackCuts( GetITSTrackCuts());
87 fMCAnalysis->SetITSTrackCuts( GetITSTrackCuts());
88 fRecAnalysis->SetTPCITSTrackCuts( GetTPCITSTrackCuts());
89 fMCAnalysis->SetTPCITSTrackCuts( GetTPCITSTrackCuts());
90 fRecAnalysis->SetTPCOnlyTrackCuts( GetTPCOnlyTrackCuts());
91 fMCAnalysis->SetTPCOnlyTrackCuts( GetTPCOnlyTrackCuts());
95 Printf("Error: no track cuts!");
100 //________________________________________________________________________
101 void AliAnalysisTaskHadEt::UserExec(Option_t *)
103 AliESDEvent *event = dynamic_cast<AliESDEvent*>(InputEvent());
105 Printf("ERROR: Could not retrieve event");
109 fRecAnalysis->AnalyseEvent(event);
111 AliMCEvent* mcEvent = MCEvent();
114 ((AliAnalysisHadEtMonteCarlo*)fMCAnalysis)->AnalyseEvent((AliVEvent*)mcEvent,(AliVEvent*)event);
118 PostData(1, fOutputList);
122 //________________________________________________________________________
123 void AliAnalysisTaskHadEt::Terminate(Option_t *)
125 // Draw result to the screen
126 // Called once at the end of the query
128 fOutputList = dynamic_cast<TList*> (GetOutputData(1));
130 printf("ERROR: Output list not available\n");