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()))) {
104 for(
auto part : partCont->
accepted())
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.
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()