]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliCaloTrackAODReader.cxx
coverity
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliCaloTrackAODReader.cxx
CommitLineData
1c5acb87 1
2/**************************************************************************
3 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
7 * *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
16/* $Id: $ */
17
18//_________________________________________________________________________
19// Class for reading data (AODs) in order to do prompt gamma
591cc579 20// or other particle identification and correlations.
1e68a3f4 21// This part is commented: Mixing analysis can be done, input AOD with events
591cc579 22// is opened in the AliCaloTrackReader::Init()
1c5acb87 23//
24//
25//*-- Author: Gustavo Conesa (LNF-INFN)
26//////////////////////////////////////////////////////////////////////////////
27
28
29// --- ROOT system ---
30//#include "Riostream.h"
31
32//---- ANALYSIS system ----
33#include "AliCaloTrackAODReader.h"
8a587055 34#include "AliAODInputHandler.h"
c8fe2783 35#include "AliMultiEventInputHandler.h"
8a587055 36#include "AliAnalysisManager.h"
c8fe2783 37#include "AliMixedEvent.h"
1c5acb87 38
39ClassImp(AliCaloTrackAODReader)
40
41//____________________________________________________________________________
42AliCaloTrackAODReader::AliCaloTrackAODReader() :
6060ed91 43 AliCaloTrackReader(), fOrgInputEvent(0x0)
1c5acb87 44{
45 //Default Ctor
46
47 //Initialize parameters
48 fDataType=kAOD;
591cc579 49 fReadStack = kTRUE;
50 fReadAODMCParticles = kFALSE;
0ae57829 51
1c5acb87 52}
1c5acb87 53
233e0df8 54//____________________________________________________________________________
1e68a3f4 55//void AliCaloTrackAODReader::GetSecondInputAODVertex(Double_t v[3]) const {
56// //Return vertex position of second AOD input
57//
58// fSecondInputAODEvent->GetPrimaryVertex()->GetXYZ(v);
59//
60//}
233e0df8 61
6060ed91 62//____________________________________________________________________________
63AliCentrality* AliCaloTrackAODReader::GetCentrality() const {
64 // recover centrality object.
65 AliAODEvent* event = dynamic_cast<AliAODEvent*> (fInputEvent);
66 AliAODEvent* orgevent = dynamic_cast<AliAODEvent*> (fOrgInputEvent);
67
68 if(event && !fSelectEmbeddedClusters) {
69 //Normal AOD event
70 return event->GetHeader()->GetCentralityP() ;
71 }
44b0a8f7 72 else if(fSelectEmbeddedClusters && orgevent) {
6060ed91 73 // centrality in AOD from input, not in embedded event
74 // temporary fix until this object is copied to the output event in embedding analysis
75 return orgevent->GetHeader()->GetCentralityP();
76 }
77 else {
78 return 0x0 ;
79 }
80}
81
82
1c5acb87 83//____________________________________________________________________________
477d6cee 84void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent* aod, AliMCEvent* mc) {
1c5acb87 85 // Connect the data pointers
477d6cee 86 // If input is AOD, do analysis with input, if not, do analysis with the output aod.
8a587055 87
898c9d44 88 //printf("AODInputHandler %p, MergeEvents %d \n",aodIH, aodIH->GetMergeEvents());
c8fe2783 89
90 Bool_t tesd = kFALSE ;
91 Bool_t taod = kTRUE ;
92 if ( strcmp(input->GetName(), "AliMixedEvent") == 0 ) {
93 AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
898c9d44 94 if(multiEH){
95 if (multiEH->GetFormat() == 0 ) {
96 tesd = kTRUE ;
97 } else if (multiEH->GetFormat() == 1) {
98 taod = kTRUE ;
99 }
100 }
101 else{
102 printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - MultiEventHandler is NULL");
103 abort();
c8fe2783 104 }
105 }
106 if (strcmp(input->GetName(),"AliESDEvent") == 0) {
107 tesd = kTRUE ;
108 } else if (strcmp(input->GetName(),"AliAODEvent") == 0) {
109 taod = kTRUE ;
110 }
111
112
113 if(tesd) {
477d6cee 114 SetInputEvent(aod);
115 SetOutputEvent(aod);
6060ed91 116 fOrgInputEvent = input;
477d6cee 117 }
c8fe2783 118 else if(taod){
119 AliAODInputHandler* aodIH = dynamic_cast<AliAODInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
8a587055 120 if (aodIH && aodIH->GetMergeEvents()) {
121 //Merged events, use output AOD.
122 SetInputEvent(aod);
123 SetOutputEvent(aod);
6060ed91 124 fOrgInputEvent = input;
8a587055 125 }
126 else{
127 SetInputEvent(input);
128 SetOutputEvent(aod);
129 }
477d6cee 130 }
131 else{
c8fe2783 132 AliFatal(Form("AliCaloTrackAODReader::SetInputOutputMCEvent() - STOP : Wrong data format: %s\n",input->GetName()));
477d6cee 133 }
134
135 SetMC(mc);
1c5acb87 136
1c5acb87 137}
08a064bc 138