]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliCaloTrackAODReader.cxx
protection agains null clusters
[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() :
c8fe2783 43 AliCaloTrackReader()
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
8dacfd76 62//____________________________________________________________________________
63Double_t AliCaloTrackAODReader::GetBField() const {
64 //Return magnetic field
65
c8fe2783 66 Double_t bfield = fInputEvent->GetMagneticField();
8dacfd76 67
68 return bfield;
69
70}
1c5acb87 71
72//____________________________________________________________________________
477d6cee 73void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent* aod, AliMCEvent* mc) {
1c5acb87 74 // Connect the data pointers
477d6cee 75 // If input is AOD, do analysis with input, if not, do analysis with the output aod.
8a587055 76
898c9d44 77 //printf("AODInputHandler %p, MergeEvents %d \n",aodIH, aodIH->GetMergeEvents());
c8fe2783 78
79 Bool_t tesd = kFALSE ;
80 Bool_t taod = kTRUE ;
81 if ( strcmp(input->GetName(), "AliMixedEvent") == 0 ) {
82 AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
898c9d44 83 if(multiEH){
84 if (multiEH->GetFormat() == 0 ) {
85 tesd = kTRUE ;
86 } else if (multiEH->GetFormat() == 1) {
87 taod = kTRUE ;
88 }
89 }
90 else{
91 printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - MultiEventHandler is NULL");
92 abort();
c8fe2783 93 }
94 }
95 if (strcmp(input->GetName(),"AliESDEvent") == 0) {
96 tesd = kTRUE ;
97 } else if (strcmp(input->GetName(),"AliAODEvent") == 0) {
98 taod = kTRUE ;
99 }
100
101
102 if(tesd) {
477d6cee 103 SetInputEvent(aod);
104 SetOutputEvent(aod);
105 }
c8fe2783 106 else if(taod){
107 AliAODInputHandler* aodIH = dynamic_cast<AliAODInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
8a587055 108 if (aodIH && aodIH->GetMergeEvents()) {
109 //Merged events, use output AOD.
110 SetInputEvent(aod);
111 SetOutputEvent(aod);
112 }
113 else{
114 SetInputEvent(input);
115 SetOutputEvent(aod);
116 }
477d6cee 117 }
118 else{
c8fe2783 119 AliFatal(Form("AliCaloTrackAODReader::SetInputOutputMCEvent() - STOP : Wrong data format: %s\n",input->GetName()));
477d6cee 120 }
121
122 SetMC(mc);
1c5acb87 123
1c5acb87 124}
08a064bc 125