//---- ANALYSIS system ----
#include "AliCaloTrackESDReader.h"
-#include "AliESDEvent.h"
#include "AliESDCaloCluster.h"
#include "AliAODCaloCluster.h"
#include "AliAODTrack.h"
#include "AliAODPid.h"
#include "AliAODEvent.h"
-#include "AliFidutialCut.h"
+#include "AliFiducialCut.h"
ClassImp(AliCaloTrackESDReader)
//To be replaced by call to AliEMCALGeoUtils when the class becomes available
Double_t radius = 441.0; //[cm] EMCAL radius +13cm
-
+ if(fDebug > 1) printf("AliCaloTrackESDReader::FillInputCTS() - org entries %d\n", nTracks);
for (Int_t itrack = 0; itrack < nTracks; itrack++) {////////////// track loop
AliESDtrack * track = (AliESDtrack*) ((AliESDEvent*)fInputEvent)->GetTrack(itrack) ; // retrieve track from esd
track->GetPxPyPz(p) ;
TLorentzVector momentum(p[0],p[1],p[2],0);
- if(fCTSPtMin < momentum.Pt() &&fFidutialCut->IsInFidutialCut(momentum,"CTS")){
+ if(fCTSPtMin < momentum.Pt() &&fFiducialCut->IsInFiducialCut(momentum,"CTS")){
if(fDebug > 3 && momentum.Pt() > 0.2) printf("AliCaloTrackESDReader::FillInputCTS() - Selected tracks E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
aodpid->SetEMCALMomentum(emcmom);
AliExternalTrackParam *outerparam = (AliExternalTrackParam*)track->GetOuterParam();
- if(!outerparam) return;
+ if(!outerparam) continue;
Bool_t okpos = outerparam->GetXYZAt(radius,bfield,emcpos);
Bool_t okmom = outerparam->GetPxPyPzAt(radius,bfield,emcmom);
- if(!(okpos && okmom)) return;
+ if(!(okpos && okmom)) continue;
aodpid->SetEMCALPosition(emcpos);
aodpid->SetEMCALMomentum(emcmom);
aodTrack->SetDetPID(aodpid);
}
else continue; // outside the beam pipe: orphan track
- }//Pt and Fidutial cut passed.
+ }//Pt and Fiducial cut passed.
}// track loop
-
+
//Put references to selected tracks in array
for(Int_t itrack = 0; itrack < (fOutputEvent->GetTracks())->GetEntriesFast(); itrack++){
AliAODTrack * track = (AliAODTrack*) (fOutputEvent->GetTracks())->At(itrack);
Int_t naod = (fOutputEvent->GetCaloClusters())->GetEntriesFast();
Int_t nTracks = fInputEvent->GetNumberOfTracks() ;
- //Loop to select clusters in fidutial cut and fill container with aodClusters
+ //Loop to select clusters in fiducial cut and fill container with aodClusters
for (Int_t iclus = 0; iclus < ((AliESDEvent*)fInputEvent)->GetNumberOfCaloClusters(); iclus++) {
AliESDCaloCluster * clus = 0;
if ( (clus = ((AliESDEvent*)fInputEvent)->GetCaloCluster(iclus)) ) {
if (clus->IsEMCAL()){
TLorentzVector momentum ;
clus->GetMomentum(momentum, v);
- if(fDebug > 3 && momentum.E() > 0.2) printf("AliCaloTrackESDReader::FillInputEMCAL() - all clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
+ if(fDebug > 3 && momentum.E() > 0.1) printf("AliCaloTrackESDReader::FillInputEMCAL() - all clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
- if(fEMCALPtMin < momentum.Pt() && fFidutialCut->IsInFidutialCut(momentum,"EMCAL")){
+ if(fEMCALPtMin < momentum.Pt() && fFiducialCut->IsInFiducialCut(momentum,"EMCAL")){
- if(fDebug > 2 && momentum.E() > 0.2) printf("AliCaloTrackESDReader::FillInputEMCAL() - Selected clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
+ if(fDebug > 2 && momentum.E() > 0.1) printf("AliCaloTrackESDReader::FillInputEMCAL() - Selected clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
clus->GetPosition(pos) ;
clus->GetEmcCpvDistance(), clus->GetNExMax(), clus->GetTOF()) ;
- if(fDebug > 3 && momentum.E() > 0.2)
+ if(fDebug > 3 && momentum.E() > 0.1)
printf("AliCaloTrackESDReader::FillInputEMCAL() - Selected clusters Distance BC %2.2f, dispersion %2.2f, M20 %f, M02 %3.2f, NexMax %d, TOF %e\n",
clus->GetDistanceToBadChannel(), clus->GetClusterDisp(),clus->GetM20(), clus->GetM02(),
clus->GetNExMax(), clus->GetTOF());
}
}
//Fill reference array
- }//Pt and Fidutial cut passed.
+ }//Pt and Fiducial cut passed.
}//EMCAL cluster
}//cluster exists
}//esd cluster loop
Int_t naod = (fOutputEvent->GetCaloClusters())->GetEntriesFast();
Int_t nTracks = fInputEvent->GetNumberOfTracks() ;
- //Loop to select clusters in fidutial cut and fill container with aodClusters
+ //Loop to select clusters in fiducial cut and fill container with aodClusters
for (Int_t iclus = 0; iclus < ((AliESDEvent*)fInputEvent)->GetNumberOfCaloClusters(); iclus++) {
AliESDCaloCluster * clus = 0;
if ( (clus = ((AliESDEvent*)fInputEvent)->GetCaloCluster(iclus)) ) {
clus->GetMomentum(momentum, v);
if(fDebug > 3 && momentum.E() > 0.1)printf("AliCaloTrackESDReader::FillInputPHOS() - all clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
- if(fPHOSPtMin < momentum.Pt() && fFidutialCut->IsInFidutialCut(momentum,"PHOS")){
+ if(fPHOSPtMin < momentum.Pt() && fFiducialCut->IsInFiducialCut(momentum,"PHOS")){
if(fDebug > 2 && momentum.E() > 0.1)printf("AliCaloTrackESDReader::FillInputPHOS() - Selected clusters E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
caloCluster->AddTrackMatched((fInputEvent->GetTrack(iESDtrack)));
}
}
- }//Pt and Fidutial cut passed.
+ }//Pt and Fiducial cut passed.
}//PHOS cluster
}//cluster exists
}//esd cluster loop
void AliCaloTrackESDReader::GetVertex(Double_t v[3]) const {
//Return vertex position
- ((AliESDEvent*)fInputEvent)->GetVertex()->GetXYZ(v) ;
-
+ //((AliESDEvent*)fInputEvent)->GetVertex()->GetXYZ(v) ;//SPD
+ ((AliESDEvent*)fInputEvent)->GetPrimaryVertex()->GetXYZ(v);
+
}