**************************************************************************/
//-----------------------------------------------------------------------
-// Analysis task looking for cosmic candidates
+// Analysis task looking for cosmic candidates embedded in a p-p event
// Task checks if particles are back-to-back in eta and phi
//
//
#include "AliPWG4CosmicCandidates.h"
-
+//using namespace std; //required for resolving the 'cout' symbol
using namespace std;
-ClassImp(AliPWG4CosmicCandidates)
-//using namespace std; //required for resolving the 'cout' symbol
+ClassImp(AliPWG4CosmicCandidates)
//________________________________________________________________________
AliPWG4CosmicCandidates::AliPWG4CosmicCandidates()
- : AliAnalysisTaskSE(),
- fTrackCuts(0),
- fPtMin(5.),
- fMaxCosmicAngle(0.002),
- fPtSignedCosmicCandidates(0),
- fDeltaPtCosmicCandidates(0),
- fDeltaPhiSumEta(0),
- fDCAZCosmicCandidates(0),
- fDCARCosmicCandidates(0),
- fTheta(0),
- fThetaZoom(0),
- fThetaPt1Pt2(0),
- fThetaPt1Pt2Signed(0),
- fDeltaPhiSumEtaPt1(0),
- fDeltaPhiSumEtaPt2(0),
- fThetaDCAZ1DCAZ2(0),
- fRisol(0),
- fRisolTheta(0),
- fHistListCosmics(0)
+: AliAnalysisTaskSE(),
+ fTrackCuts(0),
+ fPtMin(5.),
+ fMaxCosmicAngle(0.002),
+ fNEventAll(0),
+ fNEventSel(0),
+ fPtSignedCosmicCandidates(0),
+ fDeltaPtCosmicCandidates(0),
+ fDeltaPhiSumEta(0),
+ fDCAZCosmicCandidates(0),
+ fDCARCosmicCandidates(0),
+ fTheta(0),
+ fThetaZoom(0),
+ fThetaPt1Pt2(0),
+ fThetaPt1Pt2Signed(0),
+ fDeltaPhiSumEtaPt1(0),
+ fDeltaPhiSumEtaPt2(0),
+ fThetaDCAZ1DCAZ2(0),
+ fRisol(0),
+ fRisolTheta(0),
+ fHistListCosmics(0)
{
+ //
// Default constructor
+ //
}
//________________________________________________________________________
fTrackCuts(0),
fPtMin(5.),
fMaxCosmicAngle(0.002),
+ fNEventAll(0),
+ fNEventSel(0),
fPtSignedCosmicCandidates(0),
fDeltaPtCosmicCandidates(0),
fDeltaPhiSumEta(0),
fTrackCuts(0),
fPtMin(5.),
fMaxCosmicAngle(0.002),
+ fNEventAll(0),
+ fNEventSel(0),
fPtSignedCosmicCandidates(0),
fDeltaPtCosmicCandidates(0),
fDeltaPhiSumEta(0),
fRisolTheta(0),
fHistListCosmics(0)
{
- // Dummy copy constructor
+ //
+ // Dummy copy constructor
+ //
}
//________________________________________________________________________
AliPWG4CosmicCandidates& AliPWG4CosmicCandidates::operator=(const AliPWG4CosmicCandidates& /*trclass*/)
{
- // Dummy assignment operator
- return *this;
+ //
+ // Dummy assignment operator
+ //
+ return *this;
}
//________________________________________________________________________
//________________________________________________________________________
void AliPWG4CosmicCandidates::UserCreateOutputObjects()
{
- //Create output objects
+ //
+ // Create output objects
// Called once
AliDebug(2,Form(">> AliPWG4CosmicCandidates::UserCreateOutputObjects \n"));
Float_t fgkPtMin=0.;
Float_t fgkPtMax=100.;
Int_t fgkNPtBins= (int)(fgkPtMax-fgkPtMin);
+ Int_t fgkNPtBins2D= (int)((fgkPtMax-fgkPtMin)/4.);
Int_t fgkNPhiBins=18;
Float_t kMinPhi = -0.5*TMath::Pi();
Float_t kMinTheta = -0.5*TMath::Pi();
Float_t kMaxTheta = 3./2.*TMath::Pi();
- Int_t fgkNDCARBins=80;
+ Int_t fgkNDCARBins=40;
Float_t fgkDCARMin = -0.2;
Float_t fgkDCARMax = 0.2;
- Double_t *binsDCAR=new Double_t[fgkNDCARBins+1];
- for(Int_t i=0; i<=fgkNDCARBins; i++) binsDCAR[i]=(Double_t)fgkDCARMin + (fgkDCARMax-fgkDCARMin)/fgkNDCARBins*(Double_t)i ;
+ Float_t *binsDCAR=new Float_t[fgkNDCARBins+1];
+ for(Int_t i=0; i<=fgkNDCARBins; i++) binsDCAR[i]=(Float_t)fgkDCARMin + (fgkDCARMax-fgkDCARMin)/fgkNDCARBins*(Float_t)i ;
- Int_t fgkNDCAZBins=80;
+ Int_t fgkNDCAZBins=40;
Float_t fgkDCAZMin = -2.;
Float_t fgkDCAZMax = 2.;
- Double_t *binsDCAZ=new Double_t[fgkNDCAZBins+1];
- for(Int_t i=0; i<=fgkNDCAZBins; i++) binsDCAZ[i]=(Double_t)fgkDCAZMin + (fgkDCAZMax-fgkDCAZMin)/fgkNDCAZBins*(Double_t)i ;
+ Float_t *binsDCAZ=new Float_t[fgkNDCAZBins+1];
+ for(Int_t i=0; i<=fgkNDCAZBins; i++) binsDCAZ[i]=(Float_t)fgkDCAZMin + (fgkDCAZMax-fgkDCAZMin)/fgkNDCAZBins*(Float_t)i ;
- fPtSignedCosmicCandidates = new TH1F("fPtSignedCosmicCandidates","fPtSignedCosmicCandidates",2*(int)(fgkPtMax-fgkPtMin), -1.*fgkPtMax, fgkPtMax);
+ fPtSignedCosmicCandidates = new TH1F("fPtSignedCosmicCandidates","fPtSignedCosmicCandidates",2*fgkNPtBins, -1.*fgkPtMax, fgkPtMax);
fHistListCosmics->Add(fPtSignedCosmicCandidates);
fDeltaPtCosmicCandidates = new TH1F("fDeltaPtCosmicCandidates","fDeltaPtCosmicCandidates",fgkNPtBins, -50., 50.);
fThetaZoom = new TH1F("fThetaZoom","fThetaZoom",100,TMath::Pi()-1.,TMath::Pi()+1.);
fHistListCosmics->Add(fThetaZoom);
- fThetaPt1Pt2 = new TH3F("fThetaPt1Pt2","fThetaPt1Pt2",fgkNThetaBins,kMinTheta,kMaxTheta,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
+ fThetaPt1Pt2 = new TH3F("fThetaPt1Pt2","fThetaPt1Pt2",fgkNThetaBins,kMinTheta,kMaxTheta,fgkNPtBins2D,fgkPtMin,fgkPtMax,fgkNPtBins2D,fgkPtMin,fgkPtMax);
fHistListCosmics->Add(fThetaPt1Pt2);
- fThetaPt1Pt2Signed = new TH3F("fThetaPt1Pt2Signed","fThetaPt1Pt2Signed",fgkNThetaBins,kMinTheta,kMaxTheta,4*(int)(fgkPtMax-fgkPtMin),-1.*fgkPtMax,fgkPtMax,4*(int)(fgkPtMax-fgkPtMin),-1.*fgkPtMax,fgkPtMax);
+ fThetaPt1Pt2Signed = new TH3F("fThetaPt1Pt2Signed","fThetaPt1Pt2Signed",fgkNThetaBins,kMinTheta,kMaxTheta,fgkNPtBins2D,-1.*fgkPtMax,fgkPtMax,fgkNPtBins2D,-1.*fgkPtMax,fgkPtMax);
fHistListCosmics->Add(fThetaPt1Pt2Signed);
- fDeltaPhiSumEtaPt1 = new TH3F("fDeltaPhiSumEtaPt1","fDeltaPhiSumEtaPt1",fgkNThetaBins,kMinTheta,kMaxTheta,80, -2.,2.,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
+ fDeltaPhiSumEtaPt1 = new TH3F("fDeltaPhiSumEtaPt1","fDeltaPhiSumEtaPt1",fgkNThetaBins,kMinTheta,kMaxTheta,80, -2.,2.,fgkNPtBins2D,fgkPtMin,fgkPtMax);
fHistListCosmics->Add(fDeltaPhiSumEtaPt1);
- fDeltaPhiSumEtaPt2 = new TH3F("fDeltaPhiSumEtaPt2","fDeltaPhiSumEtaPt2",fgkNThetaBins,kMinTheta,kMaxTheta,80, -2.,2.,(int)(fgkPtMax-fgkPtMin),fgkPtMin,fgkPtMax);
+ fDeltaPhiSumEtaPt2 = new TH3F("fDeltaPhiSumEtaPt2","fDeltaPhiSumEtaPt2",fgkNThetaBins,kMinTheta,kMaxTheta,80, -2.,2.,fgkNPtBins2D,fgkPtMin,fgkPtMax);
fHistListCosmics->Add(fDeltaPhiSumEtaPt2);
fThetaDCAZ1DCAZ2 = new TH3F("fThetaDCAZ1DCAZ2","fThetaDCAZ1DCAZ2",fgkNThetaBins,kMinTheta,kMaxTheta,fgkNDCAZBins,-2.,2.,fgkNDCAZBins,-2.,2.);
//________________________________________________________________________
void AliPWG4CosmicCandidates::UserExec(Option_t *)
{
-// // Main loop
-// // Called for each event
+ // Main loop
+ // Called for each event
+ //
// All events without selection
fNEventAll->Fill(0.);
const AliVVertex *vtx = fInputEvent->GetPrimaryVertex();
// Need vertex cut
- if (!vtx || vtx->GetNContributors() < 2) {
+ TString vtxName(vtx->GetName());
+ if(!vtx || vtx->GetNContributors() < 2 || (vtxName.Contains("TPCVertex")) ) {
// Post output data
PostData(1, fHistListCosmics);
return;
return;
}
- fNEventSel->Fill(0.);
+ fNEventSel->Fill(0.);
Float_t dcaR[2] = {0.,0.};
Float_t dcaZ[2] = {0.,0.};
- // Track loop to fill a pT spectrum
for (Int_t iTrack1 = 0; iTrack1 < nTracks; iTrack1++) {
AliESDtrack* track1 = (AliESDtrack*)fInputEvent->GetTrack(iTrack1);
//________________________________________________________________________
void AliPWG4CosmicCandidates::Terminate(Option_t *)
{
+ //
// Called once at the end of the query
-
+ //
}