2 /**************************************************************************
3 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 //_________________________________________________________________________
19 // Class for reading data (AODs) in order to do prompt gamma
20 // or other particle identification and correlations.
21 // This part is commented: Mixing analysis can be done, input AOD with events
22 // is opened in the AliCaloTrackReader::Init()
25 //*-- Author: Gustavo Conesa (LNF-INFN)
26 //////////////////////////////////////////////////////////////////////////////
29 // --- ROOT system ---
30 //#include "Riostream.h"
32 //---- ANALYSIS system ----
33 #include "AliCaloTrackAODReader.h"
34 #include "AliAODInputHandler.h"
35 #include "AliMultiEventInputHandler.h"
36 #include "AliAnalysisManager.h"
37 #include "AliMixedEvent.h"
39 ClassImp(AliCaloTrackAODReader)
41 //____________________________________________________________________________
42 AliCaloTrackAODReader::AliCaloTrackAODReader() :
43 AliCaloTrackReader(), fOrgInputEvent(0x0)
47 //Initialize parameters
50 fReadAODMCParticles = kFALSE;
54 //____________________________________________________________________________
55 //void AliCaloTrackAODReader::GetSecondInputAODVertex(Double_t v[3]) const {
56 // //Return vertex position of second AOD input
58 // fSecondInputAODEvent->GetPrimaryVertex()->GetXYZ(v);
62 //____________________________________________________________________________
63 AliCentrality* AliCaloTrackAODReader::GetCentrality() const {
64 // recover centrality object.
65 AliAODEvent* event = dynamic_cast<AliAODEvent*> (fInputEvent);
66 AliAODEvent* orgevent = dynamic_cast<AliAODEvent*> (fOrgInputEvent);
68 if(event && !fSelectEmbeddedClusters) {
70 return event->GetHeader()->GetCentralityP() ;
72 else if(fSelectEmbeddedClusters && orgevent) {
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();
83 //____________________________________________________________________________
84 void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent* aod, AliMCEvent* mc) {
85 // Connect the data pointers
86 // If input is AOD, do analysis with input, if not, do analysis with the output aod.
88 //printf("AODInputHandler %p, MergeEvents %d \n",aodIH, aodIH->GetMergeEvents());
90 Bool_t tesd = kFALSE ;
92 if ( strcmp(input->GetName(), "AliMixedEvent") == 0 ) {
93 AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
95 if (multiEH->GetFormat() == 0 ) {
97 } else if (multiEH->GetFormat() == 1) {
102 printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - MultiEventHandler is NULL");
106 if (strcmp(input->GetName(),"AliESDEvent") == 0) {
108 } else if (strcmp(input->GetName(),"AliAODEvent") == 0) {
116 fOrgInputEvent = input;
119 AliAODInputHandler* aodIH = dynamic_cast<AliAODInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
120 if (aodIH && aodIH->GetMergeEvents()) {
121 //Merged events, use output AOD.
124 fOrgInputEvent = input;
127 SetInputEvent(input);
132 AliFatal(Form("AliCaloTrackAODReader::SetInputOutputMCEvent() - STOP : Wrong data format: %s\n",input->GetName()));