+
+}
+
+//-----------------------------------------------------------------------
+void AliJetReader::InitTasks()
+{
+ // Initialization
+ fOpt = GetReaderHeader()->GetDetector();
+
+ TString datatype = fReaderHeader->GetDataType();
+ datatype.ToUpper();
+ Bool_t kIsKine = kFALSE;
+ if((!datatype.Contains("AOD") && datatype.Contains("MC")) ||
+ (!datatype.Contains("AOD") && datatype.Contains("MC2")) ){
+ kIsKine = kTRUE;
+ }
+ Bool_t kIsHighMult = GetReaderHeader()->GetIsHighMult();
+ fCalTrkEvent = new AliJetCalTrkEvent(fOpt,kIsKine,kIsHighMult);
+
+ // Initialize jet analysis
+ CreateTasks();
+
+}
+
+//-----------------------------------------------------------------------
+Bool_t AliJetReader::ProcessEvent()
+{
+ // Process one event
+ // Charged only or charged+neutral jets
+
+ Bool_t ok = ExecTasks();
+
+ if(!ok) {return kFALSE;}
+
+ return kTRUE;
+
+}
+
+//-----------------------------------------------------------------------
+void AliJetReader::SetInputEvent(const TObject* esd, const TObject* aod, const AliMCEvent* mc)
+{
+ // set input event pointers
+ if( fReaderHeader->GetDataType().Contains("AOD") && aod) {fVEvent = (AliAODEvent*) aod;}
+ else if( fReaderHeader->GetDataType().Contains("ESD") && esd) {fVEvent = (AliESDEvent*) esd;}
+ else if ( fReaderHeader->GetDataType().Contains("MC") || fReaderHeader->GetDataType().Contains("MC2")) { fMCEvent = (AliMCEvent*) mc;}
+ else {printf("No input event ! ");}
+
+}
+
+//-----------------------------------------------------------------------
+Bool_t AliJetReader::CreateTasks()
+{
+ // For reader task initialization
+
+ fDebug = fReaderHeader->GetDebug();
+
+ fFillEvent = new AliJetFillCalTrkEvent();
+ if (fOpt>0) {
+ // Tracks
+ if(fOpt%2==!0 && fOpt!=0){
+ fFillEventwTrks = new AliJetFillCalTrkTrack();
+ fFillEventwTrks->SetReaderHeader(fReaderHeader);
+ }