+#ifndef ALIANALYSISTASKDISPLACEDELECTRONS_H
+#define ALIANALYSISTASKDISPLACEDELECTRONS_H
+
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
+
+/* $Id$ */
+
//
// Analysis task:
// study displaced electrons from beauty and charm
// with cut on impact parameters in various pT bins
//
+//
+// Authors:
+// Hongyan Yang <hongyan@physi.uni-heidelberg.de>
+// Carlo Bombonati <Carlo.Bombonati@cern.ch>
+//
-#ifndef ALIANALYSISTASKDISPLACEDELECTRONS_H
-#define ALIANALYSISTASKDISPLACEDELECTRONS_H
#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
typedef enum{
kPostProcess = 0,
kDisplacedElectrons = 1,
- kCorrection = 2
+ kCorrection = 2,
+ kDePidQA = 3
}Switches_t;
enum{
void PrintStatus() const;
- Bool_t GetPlugin(Int_t plug) const { return TESTBIT(fPlugins, plug); };
+ Bool_t GetPlugin(Int_t plug) const { return TESTBIT(fDePlugins, plug); };
void SwitchOnPlugin(Int_t plug);
- void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
-
- void SetPIDdetectors(Char_t * const detectors){ fPIDdetectors = detectors; };
- void SetPIDStrategy(UInt_t strategy) { fPIDstrategy = strategy; };
- void SetDBLevel(UInt_t debugLevel) { fDebugLevel = debugLevel; };
+ void SetHFECuts(AliHFEcuts * const cuts) { fDeCuts = cuts; };
+ void SetNclustersITS(Int_t nITSclusters){fNminITSCluster = nITSclusters;};
+ void SetMinPrimVtxContrib(Int_t nPrimVtxContrib){fNminPrimVtxContrib = nPrimVtxContrib;};
+ void SetPIDdetectors(Char_t * const detectors){ fDePIDdetectors = detectors; };
+ void SetPIDStrategy(UInt_t strategy) { fDePIDstrategy = strategy; };
+ void SetDBLevel(UInt_t debugLevel) { fDeDebugLevel = debugLevel; };
void AddPIDdetector(TString detector);
- Bool_t HasMCData() const { return TestBit(kHasMCdata); };
+ Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
+ Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); };
+ Bool_t HasMCData() const { return TestBit(kHasMCdata); }
void SetHasMCData(Bool_t hasMC = kTRUE) { SetBit(kHasMCdata, hasMC); };
+ void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
+ void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
+
+ void ProcessMC();
+ void ProcessESD();
+ void ProcessData();
+
+
private:
- class LabelContainer{
+ class AliLabelContainer{
public:
- LabelContainer(Int_t capacity);
- ~LabelContainer() {delete[] fContainer; };
+ AliLabelContainer(Int_t capacity);
+ ~AliLabelContainer() {delete[] fContainer; };
Bool_t Append(Int_t label);
Bool_t Find(Int_t Label) const;
void ResetIterator(){ fCurrent = fBegin; }
private:
- LabelContainer(const LabelContainer &);
- LabelContainer &operator=(const LabelContainer &);
+ AliLabelContainer(const AliLabelContainer &);
+ AliLabelContainer &operator=(const AliLabelContainer &);
Int_t *fContainer; // the Container for the labels
Int_t *fBegin; // Pointer to the first entry
Int_t *fEnd; // Pointer to the end of the container
void MakeParticleContainer();
void MakeEventContainer();
- UInt_t fDebugLevel; // debug level
-
- TString fPIDdetectors; // Detectors for Particle Identification
- UInt_t fPIDstrategy; // PID Strategy
-
+ UInt_t fDeDebugLevel; // debug level
+ Int_t fNminITSCluster; // number of clusters in ITS
+ Int_t fNminPrimVtxContrib; // number of ncontributor in ITS for prim vtx
+ TString fDePIDdetectors; // Detectors for Particle Identification
+ UInt_t fDePIDstrategy; // PID Strategy
+
+ UShort_t fDePlugins; // Enabled Plugins
- UShort_t fPlugins; // Enabled Plugins
- AliESDEvent *fESD; //! The ESD Event
- AliMCEvent *fMC; //! The MC Event
-
- AliHFEcuts *fCuts; // Cut Collection
- AliHFEpid *fPID; // PID method
- AliCFManager *fCFM; //! Correction Framework Manager
-
- TH1I *fNEvents; //! counter for the number of Events
- TH1F *fElectronsPt; //! pt distribution of electrons (hfepid)
- TList *fOutput; //! Container for this Task Output
- TList *fCorrection; //! Container for correction Output
+ AliHFEcuts *fDeCuts; // Cut Collection
+ AliESDpid *fDeDefaultPID; //! ESD PID method
+ AliHFEpid *fDePID; //! PID method
+ AliCFManager *fDeCFM; //! Correction Framework Manager
AliHFEdisplacedElectrons *fDisplacedElectrons; //! HFE displaced Electrons pointer
+
+ TH1I *fDeNEvents; //! counter for the number of Events
+ TH1F *fElectronsMcPt; //! pt distribution of MC electrons (mcpid)
+ TH1F *fElectronsEsdPt; //! pt distribution of ESD electrons (hfepid)
+ TH1F *fElectronsDataPt; //! pt distribution of DATA electrons (hfepid)
+ TList *fDeCorrection; //! Container for correction Outpu
+ TList *fDeQA; //! container for the PID qa
TList *fHistDisplacedElectrons; //! list of outputs
ClassDef(AliAnalysisTaskDisplacedElectrons, 1); // The DisplacedElectrons Analysis Task