16 #include <AliVCluster.h> 17 #include <AliVParticle.h> 20 #include "AliPIDResponse.h" 21 #include "AliInputEventHandler.h" 24 #include "AliEMCALGeometry.h" 25 #include "AliExternalTrackParam.h" 27 #include "AliTrackerBase.h" 35 fEMCALRecoUtils(NULL),
47 fEMCALRecoUtils(NULL),
55 DefineOutput(2, TTree::Class());
74 TString name_tree(
"electron_information");
95 AliError(
"No Cluster Container Available\n");
103 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
109 const AliVTrack* track =
static_cast<const AliVTrack*
>(
part);
116 if (n_sigma_electron_TPC < -1.5 || n_sigma_electron_TPC > 3.5)
119 Int_t iCluster = track->GetEMCALcluster();
129 Double_t EoverP = cluster->E()/track->P();
132 if (EoverP<0.7 || EoverP>1.3)
137 cluster->GetPosition(emcx);
138 TVector3 clustpos(emcx[0],emcx[1],emcx[2]);
151 Double_t xyz[3] = {0}, pxpypz[3] = {0}, cv[21] = {0};
152 track->PxPyPz(pxpypz);
154 track->GetCovarianceXYZPxPyPz(cv);
155 AliExternalTrackParam trackParam = AliExternalTrackParam(xyz,pxpypz,cv,track->Charge());
157 Double_t trackPosExt[3] = {0.,0.,0.};
158 Double_t ElectronMass = 0.000510998910;
160 if (!AliTrackerBase::PropagateTrackToBxByBz(&trackParam, clustpos.Perp(), ElectronMass,
fEMCALRecoUtils->
GetStep(),kTRUE, 0.8, -1))
163 trackParam.GetXYZ(trackPosExt);
165 TVector3 trackposOnEMCAL;
166 trackposOnEMCAL.SetXYZ(trackPosExt[0],trackPosExt[1],trackPosExt[2]);
197 AliVCaloCells *cells = InputEvent()->GetEMCALCells();
218 fEMCALGeo = AliEMCALGeometry::GetInstance();
ElectronForAlignment fElectronInformation
PID response task used to perform electron identification.
Bool_t CheckCellFiducialRegion(const AliEMCALGeometry *geom, const AliVCluster *cluster, AliVCaloCells *cells)
AliPIDResponse * fPIDResponse
EMCAL geometry class.
void SetNumberOfCellsFromEMCALBorder(Int_t n)
Base task in the EMCAL framework.
void Terminate(Option_t *option)
AliAnalysisTaskEMCALAlig()
Float_t n_sigma_electron_TPC
UShort_t super_module_number
TTree * fElectronTree
Object to hold the electron information.
Some utilities for cluster and cell treatment.
TString part
use mixed event to constrain combinatorial background
Container for particles within the EMCAL framework.
TObjArray fParticleCollArray
particle/track collection array
void ExecOnce()
Perform steps needed to initialize the analysis.
void UserCreateOutputObjects()
TString fTreeSuffix
Electron tree output.
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
AliVCluster * GetAcceptCluster(Int_t i) const
AliVCaloCells * fCaloCells
!cells
void GetMaxEnergyCell(const AliEMCALGeometry *geom, AliVCaloCells *cells, const AliVCluster *clu, Int_t &absId, Int_t &iSupMod, Int_t &ieta, Int_t &iphi, Bool_t &shared)
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Double_t fVertex[3]
!event vertex
Bool_t FillHistograms()
Function filling histograms.
void SetMakeGeneralHistograms(Bool_t g)
virtual void ExecOnce()
Perform steps needed to initialize the analysis.
const AliParticleIterableContainer accepted() const
AliEMCALGeometry * fEMCALGeo
EMCAL Reco utils used to recalculate the matching.
AliEMCALRecoUtils * fEMCALRecoUtils
void UserCreateOutputObjects()
Main initialization function on the worker.
Int_t distance_bad_channel
Container structure for EMCAL clusters.
virtual ~AliAnalysisTaskEMCALAlig()