#include "AliTagAnalysis.h"
#include <TMath.h>
+#include <TChain.h>
#include <TGridResult.h>
ClassImp(AliEventPoolOTF)
fDetectorCuts(0),
fEventCuts(0),
fGridTags(0),
+ fChain(0),
fTagDirectory(0),
fValueMin(),
fValueMax(),
fDetectorCuts(new AliDetectorTagCuts()),
fEventCuts(new AliEventTagCuts()),
fGridTags(0),
+ fChain(0),
fTagDirectory("."),
fValueMin(),
fValueMax(),
fLHCCuts(0),
fDetectorCuts(0),
fEventCuts(0),
+ fGridTags(0),
+ fChain(0),
fTagDirectory(0),
fValueMin(),
fValueMax(),
InitArrays();
}
+
+AliEventPoolOTF::~AliEventPoolOTF()
+{
+ // Destructor
+ delete fTagAnalysis;
+ delete fRunCuts;
+ delete fEventCuts;
+ delete fLHCCuts;
+ delete fDetectorCuts;
+ delete fChain;
+}
+
AliEventPoolOTF& AliEventPoolOTF::operator=(const AliEventPoolOTF& other)
{
// Assignment operator
}
- for (Int_t i = 0; i < 4; i++) fValue[i] = fValueMin[i];
+ for (Int_t i = 0; i < 5; i++) fValue[i] = fValueMin[i];
}
TChain* AliEventPoolOTF::GetNextChain()
{
//
- TChain* chain = 0;
+ if (fChain) {
+ delete fChain;
+ fChain = 0;
+ }
+
fBinNumber++;
if (fNoMore) {
- return 0;
+ return 0;
} else {
- printf("Current bin (lower) %13.3f %13.3f %13.3f \n", fValue[kMultiplicity], fValue[kZVertex], fValue[kEventPlane]);
- printf("Current bin (upper) %13.3f %13.3f %13.3f \n", fValue[kMultiplicity] + fValueStep[kMultiplicity],
- fValue[kZVertex] + fValueStep[kZVertex],
- fValue[kEventPlane] + fValueStep[kEventPlane]);
-
- fEventCuts->SetMultiplicityRange(Int_t(fValue[kMultiplicity]) , Int_t(fValue[kMultiplicity] + fValueStep[kMultiplicity]));
+ printf("Current bin (lower) %13.3f %13.3f %13.3f %13.3f %13.3f \n", fValue[kMultiplicity], fValue[kZVertex], fValue[kEventPlane],fValue[kLeadingParticleEta],fValue[kLeadingParticlePhi]);
+ printf("Current bin (upper) %13.3f %13.3f %13.3f %13.3f %13.3f \n", fValue[kMultiplicity] + fValueStep[kMultiplicity] - 1,
+ fValue[kZVertex] + fValueStep[kZVertex],
+ fValue[kEventPlane] + fValueStep[kEventPlane],
+ fValue[kLeadingParticleEta] + fValueStep[kLeadingParticleEta],
+ fValue[kLeadingParticlePhi] + fValueStep[kLeadingParticlePhi]
+
+ );
+
+ fEventCuts->SetMultiplicityRange(Int_t(fValue[kMultiplicity]) , Int_t(fValue[kMultiplicity] + fValueStep[kMultiplicity] - 1));
fEventCuts->SetPrimaryVertexZRange(fValue[kZVertex] , fValue[kZVertex] + fValueStep[kZVertex]);
- fEventCuts->SetEventPlaneAngleRange(fValue[kEventPlane] , fValue[kEventPlane] + fValueStep[kEventPlane]);
- chain = fTagAnalysis->QueryTags(fRunCuts, fLHCCuts, fDetectorCuts, fEventCuts);
+ fEventCuts->SetEtaLeadingParticleRange(fValue[kLeadingParticleEta] , fValue[kLeadingParticleEta] + fValueStep[kLeadingParticleEta]);
+ fEventCuts->SetPhiLeadingParticleRange(fValue[kLeadingParticlePhi] , fValue[kLeadingParticlePhi] + fValueStep[kLeadingParticlePhi]);
+ fEventCuts->SetEventPlaneAngleRange(fValue[kEventPlane] , fValue[kEventPlane] + fValueStep[kEventPlane]);
+
+ fChain = fTagAnalysis->QueryTags(fRunCuts, fLHCCuts, fDetectorCuts, fEventCuts);
//
// Next bin
//
- for (Int_t i = 2; i >= 0; i--)
+ for (Int_t i = 5; i >= 0; i--)
{
fValue[i] += fValueStep[i];
if (i > 0 && fValue[i] >= fValueMax[i]) {
break;
}
}
- return chain;
+ return fChain;
}
}
Int_t AliEventPoolOTF::GetDimension()
{
//
- return (3);
+ return (5);
}
void AliEventPoolOTF::InitArrays()
SetMultiplicityBinning(0, 20000, 20000);
SetZVertexBinning(-1000., 1000., 2000.);
SetEventPlaneBinning(-1000., 1000., 2000.);
- SetLeadingParticleEtaBinning(-1.0, 1.0, 2.);
- for (Int_t i = 0; i < 4; i++) fValue[i] = fValueMin[i];
+ SetLeadingParticleEtaBinning(-13.0, 13.0, 27.);
+ SetLeadingParticlePhiBinning(0., 2*(TMath::Pi()),2*(TMath::Pi()));
+ for (Int_t i = 0; i < 5; i++) fValue[i] = fValueMin[i];
}