ROOT logo

/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//
// AliCDMesonTracks
// for 
// AliAnalysisTaskCDMeson
//
// see AliCDMesonTracks.cxx for description
//
//  Author:
//  Felix Reidt <Felix.Reidt@cern.ch>

#ifndef ALICDMESONTRACKS_H
#define ALICDMESONTRACKS_H

class TObjArray;

class AliAODEvent;
class AliESDEvent;
class AliVTrack;

class AliCDMesonTracks
{
public: 
	AliCDMesonTracks(); // constructor
	~AliCDMesonTracks(); // destructor

	Bool_t ProcessEvent(AliAODEvent* aodEvent, AliESDEvent* esdEvent,
	                    Bool_t doSoft = kTRUE);

	Int_t GetTracksBeforeCuts() const { return (fIsValid) ? fNTrk0 : -1; }
	Int_t GetTracks() const { return (fIsValid) ? fNch : -1; }
	Int_t GetSoftTracks() const { return (fIsValid && fDoSoft) ? fNsoft : -1; }
	Int_t GetCombinedTracks() const { return (fIsValid) ? fNcombined : -1; }
	Int_t GetITSpureSACount() const { return (fIsValid) ? fNITSpureSA : -1; }
	Int_t GetRemainingTrackletsCentralBarrel() const {
		return (fIsValid) ? fNtrackletsCentralBarrel : -1;
	}
	Int_t GetRemainingTrackletsForward() const {
		return (fIsValid) ? fNtrackletsForward : -1;
	}
	AliVTrack* GetTrack(UInt_t index) const;

	Double_t GetInvariantMass(Bool_t includeSoftTracks = kTRUE);
protected:
	void ApplyCuts();
	void CutTrack(AliESDEvent *ESDEvent, Int_t mode = 0);
	void CutTrack(AliAODEvent *AODEvent, Int_t mode = 0);
	void GetRemainingTracklets();

	AliAODEvent* fAODEvent; // AOD event to analyze
	AliESDEvent* fESDEvent; // ESD event to analyze
	Bool_t fDoAOD; // is active for AOD processing, inactive for ESDs
	Bool_t fDoSoft; // process soft tracks
	Bool_t fIsValid; // are the stored results valid

	Int_t fNTrk0; // number of tracks before cuts
	Int_t fNch; // number of charged ITSTPC tracks after cuts
	Int_t fNsoft; // number of soft ITS standalone tracks (complementary to fNch)
	Int_t fNcombined; // fNch+fNsoft
	Int_t fNITSpureSA; // number of ITSpureSA tracks leading double counting

	Int_t fNtrackletsCentralBarrel; // tracklets not assigned to tracks within
	                                // |eta| < 0.9
	Int_t fNtrackletsForward; // tracklets not assigned to tracks with |eta| > 0.9

	TObjArray* fTracks; // storage for the standard tracks
	TObjArray* fSoftTracks; // storage for the soft tracks
private:
	// following functions are only implemented to obey the coding conventions,
	// they are not functional and hence should not be used
	AliCDMesonTracks(const AliCDMesonTracks& tracks);
	// copy constructor
	AliCDMesonTracks& operator=(const AliCDMesonTracks& tracks);
};

#endif // ALICDMESONTRACKS_H
 AliCDMesonTracks.h:1
 AliCDMesonTracks.h:2
 AliCDMesonTracks.h:3
 AliCDMesonTracks.h:4
 AliCDMesonTracks.h:5
 AliCDMesonTracks.h:6
 AliCDMesonTracks.h:7
 AliCDMesonTracks.h:8
 AliCDMesonTracks.h:9
 AliCDMesonTracks.h:10
 AliCDMesonTracks.h:11
 AliCDMesonTracks.h:12
 AliCDMesonTracks.h:13
 AliCDMesonTracks.h:14
 AliCDMesonTracks.h:15
 AliCDMesonTracks.h:16
 AliCDMesonTracks.h:17
 AliCDMesonTracks.h:18
 AliCDMesonTracks.h:19
 AliCDMesonTracks.h:20
 AliCDMesonTracks.h:21
 AliCDMesonTracks.h:22
 AliCDMesonTracks.h:23
 AliCDMesonTracks.h:24
 AliCDMesonTracks.h:25
 AliCDMesonTracks.h:26
 AliCDMesonTracks.h:27
 AliCDMesonTracks.h:28
 AliCDMesonTracks.h:29
 AliCDMesonTracks.h:30
 AliCDMesonTracks.h:31
 AliCDMesonTracks.h:32
 AliCDMesonTracks.h:33
 AliCDMesonTracks.h:34
 AliCDMesonTracks.h:35
 AliCDMesonTracks.h:36
 AliCDMesonTracks.h:37
 AliCDMesonTracks.h:38
 AliCDMesonTracks.h:39
 AliCDMesonTracks.h:40
 AliCDMesonTracks.h:41
 AliCDMesonTracks.h:42
 AliCDMesonTracks.h:43
 AliCDMesonTracks.h:44
 AliCDMesonTracks.h:45
 AliCDMesonTracks.h:46
 AliCDMesonTracks.h:47
 AliCDMesonTracks.h:48
 AliCDMesonTracks.h:49
 AliCDMesonTracks.h:50
 AliCDMesonTracks.h:51
 AliCDMesonTracks.h:52
 AliCDMesonTracks.h:53
 AliCDMesonTracks.h:54
 AliCDMesonTracks.h:55
 AliCDMesonTracks.h:56
 AliCDMesonTracks.h:57
 AliCDMesonTracks.h:58
 AliCDMesonTracks.h:59
 AliCDMesonTracks.h:60
 AliCDMesonTracks.h:61
 AliCDMesonTracks.h:62
 AliCDMesonTracks.h:63
 AliCDMesonTracks.h:64
 AliCDMesonTracks.h:65
 AliCDMesonTracks.h:66
 AliCDMesonTracks.h:67
 AliCDMesonTracks.h:68
 AliCDMesonTracks.h:69
 AliCDMesonTracks.h:70
 AliCDMesonTracks.h:71
 AliCDMesonTracks.h:72
 AliCDMesonTracks.h:73
 AliCDMesonTracks.h:74
 AliCDMesonTracks.h:75
 AliCDMesonTracks.h:76
 AliCDMesonTracks.h:77
 AliCDMesonTracks.h:78
 AliCDMesonTracks.h:79
 AliCDMesonTracks.h:80
 AliCDMesonTracks.h:81
 AliCDMesonTracks.h:82
 AliCDMesonTracks.h:83
 AliCDMesonTracks.h:84
 AliCDMesonTracks.h:85
 AliCDMesonTracks.h:86
 AliCDMesonTracks.h:87
 AliCDMesonTracks.h:88
 AliCDMesonTracks.h:89
 AliCDMesonTracks.h:90