#include "AliEmcalJet.h"
#include "AliLog.h"
#include "AliRhoParameter.h"
+#include "AliLocalRhoParameter.h"
#include "AliVCluster.h"
#include "AliVEventHandler.h"
#include "AliVParticle.h"
fJetRadius(0.4),
fJetsName(),
fRhoName(),
+ fLocalRhoName(),
fPtBiasJetTrack(0),
fPtBiasJetClus(0),
fJetPtCut(1),
fJetTrigger(0),
fJets(0),
fRho(0),
+ fLocalRho(0),
fRhoVal(0)
{
// Default constructor.
fJetRadius(0.4),
fJetsName(),
fRhoName(),
+ fLocalRhoName(),
fPtBiasJetTrack(0),
fPtBiasJetClus(0),
fJetPtCut(1),
fJetTrigger(0),
fJets(0),
fRho(0),
+ fLocalRho(0),
fRhoVal(0)
{
// Standard constructor.
}
return rho;
}
-
+//________________________________________________________________________
+AliLocalRhoParameter *AliAnalysisTaskEmcalJet::GetLocalRhoFromEvent(const char *name)
+{
+ // Get local rho from event.
+ AliLocalRhoParameter *rho = 0;
+ TString sname(name);
+ if (!sname.IsNull()) {
+ rho = dynamic_cast<AliLocalRhoParameter*>(InputEvent()->FindListObject(sname));
+ if (!rho) {
+ AliWarning(Form("%s: Could not retrieve local rho with name %s!", GetName(), name));
+ return 0;
+ }
+ }
+ return rho;
+}
//________________________________________________________________________
void AliAnalysisTaskEmcalJet::ExecOnce()
{
}
}
+ if (!fLocalRhoName.IsNull() && !fLocalRho) {
+ fLocalRho = dynamic_cast<AliLocalRhoParameter*>(InputEvent()->FindListObject(fLocalRhoName));
+ if (!fLocalRho) {
+ AliError(Form("%s: Could not retrieve local rho %s!", GetName(), fLocalRhoName.Data()));
+ fInitialized = kFALSE;
+ return;
+ }
+ }
+
if (!fJetsName.IsNull() && !fJets) {
fJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fJetsName));
if (!fJets) {
class TString;
class AliEmcalJet;
class AliRhoParameter;
+class AliLocalRhoParameter;
class AliVCluster;
class AliVParticle;
void SetJetRadius(Float_t r) { fJetRadius = r ; }
void SetJetsName(const char *n) { fJetsName = n ; }
virtual void SetRhoName(const char *n) { fRhoName = n ; }
+ virtual void SetLocalRhoName(const char *n) { fLocalRhoName = n ; }
void SetMaxClusterPt(Float_t b) { fMaxClusterPt = b ; }
void SetMaxTrackPt(Float_t b) { fMaxTrackPt = b ; }
void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; }
Double_t GetLeadingHadronPt(AliEmcalJet* jet) const;
void ExecOnce() ;
AliRhoParameter *GetRhoFromEvent(const char *name) ;
+ AliLocalRhoParameter *GetLocalRhoFromEvent(const char *name) ;
Int_t GetSortedArray(Int_t indexes[], TClonesArray *array, Double_t rho=0) const;
Bool_t IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted = kFALSE) const;
Bool_t IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted = kFALSE) const;
Float_t fJetRadius; // jet radius
TString fJetsName; // name of jet collection
TString fRhoName; // Name of rho object
+ TString fLocalRhoName; // Name of local rho object
Float_t fPtBiasJetTrack; // select jets with a minimum pt track
Float_t fPtBiasJetClus; // select jets with a minimum pt cluster
Float_t fJetPtCut; // cut on jet pt
UInt_t fJetTrigger; // jet trigger
TClonesArray *fJets; //!jets
AliRhoParameter *fRho; //!event rho
- Double_t fRhoVal; //!event rho value
+ AliLocalRhoParameter *fLocalRho; //!local event rho
+ Double_t fRhoVal; //!event rho value, same for local rho
private:
AliAnalysisTaskEmcalJet(const AliAnalysisTaskEmcalJet&); // not implemented
AliAnalysisTaskEmcalJet &operator=(const AliAnalysisTaskEmcalJet&); // not implemented
- ClassDef(AliAnalysisTaskEmcalJet, 8) // EMCAL Jet base analysis task
+ ClassDef(AliAnalysisTaskEmcalJet, 10) // EMCAL Jet base analysis task
};
#endif
ClassImp(AliAnalysisTaskLocalRho)
AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho() : AliAnalysisTaskEmcalJet("AliAnalysisTaskLocalRho", kTRUE),
- fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fLocalRhoName(GetName()), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(kGrid), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) {
+ fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(kGrid), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) {
for(Int_t i(0); i < 10; i++) {
fHistPsi2[i] = 0;
fHistPsi3[i] = 0;
}
//_____________________________________________________________________________
AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho(const char* name, runModeType type) : AliAnalysisTaskEmcalJet(name, kTRUE),
- fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fLocalRhoName(GetName()), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(type), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) {
+ fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(type), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) {
for(Int_t i(0); i < 10; i++) {
fHistPsi2[i] = 0;
fHistPsi3[i] = 0;
if(fHistSwap) delete fHistSwap;
}
//_____________________________________________________________________________
+void AliAnalysisTaskLocalRho::ExecOnce()
+{
+ // Init the analysis
+ if(fLocalRhoName=="") fLocalRhoName = Form("LocalRhoFrom_%s", GetName());
+ fLocalRho = new AliLocalRhoParameter(fLocalRhoName.Data(), 0);
+ // add the local rho to the event if necessary
+ if(fAttachToEvent) {
+ if(!(InputEvent()->FindListObject(fLocalRho->GetName()))) {
+ InputEvent()->AddObject(fLocalRho);
+ } else {
+ AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fLocalRho->GetName()));
+ }
+ }
+ AliAnalysisTaskEmcalJet::ExecOnce(); // init the base clas
+ if(fUseScaledRho) {
+ // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled
+ fRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName())));
+ if(!fRho) {
+ AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName()));
+ }
+ }
+}
+//_____________________________________________________________________________
Bool_t AliAnalysisTaskLocalRho::InitializeAnalysis()
{
// initialize the anaysis
case kGrid : { fFitModulationOptions += "N0"; } break;
default : break;
}
- if(fUseScaledRho) {
- // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled
- fRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName())));
- if(!fRho) {
- AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName()));
- return kFALSE; // pointless, but coverity will want this return value ...
- }
- }
- fLocalRho = new AliLocalRhoParameter(fLocalRhoName.Data(), 0);
- // add the local rho to the event if necessary
- if(fAttachToEvent) {
- if(!(InputEvent()->FindListObject(fLocalRho->GetName()))) {
- InputEvent()->AddObject(fLocalRho);
- } else {
- AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fLocalRho->GetName()));
- }
- }
FillAnalysisSummaryHistogram();
return kTRUE;
}
AliAnalysisTaskLocalRho(const char *name, runModeType type);
virtual ~AliAnalysisTaskLocalRho();
// setting up the task and technical aspects
+ void ExecOnce();
Bool_t InitializeAnalysis();
virtual void UserCreateOutputObjects();
TH1F* BookTH1F(const char* name, const char* x, Int_t bins, Double_t min, Double_t max, Int_t c = -1, Bool_t append = kTRUE);
void SetDebugMode(Int_t d) {fDebug = d;}
void SetCentralityClasses(TArrayI* c) {fCentralityClasses = c;}
void SetAttachToEvent(Bool_t a) {fAttachToEvent = a;}
- void SetLocalRhoName(TString n) {fLocalRhoName = n;}
void SetUseScaledRho(Bool_t s) {fUseScaledRho = s;}
void SetFillHistograms(Bool_t b) {fFillHistograms = b;}
// setters - analysis details
Bool_t fAttachToEvent; // attach local rho to the event
Bool_t fFillHistograms; // fill qa histograms
Bool_t fNoEventWeightsForQC; // don't store event weights for qc analysis
- TString fLocalRhoName; // name for local rho
Bool_t fUseScaledRho; // use scaled rho
TArrayI* fCentralityClasses; // centrality classes (maximum 10) used for QA
TH1F* fUserSuppliedV2; // histo with integrated v2
TF1* fFitModulation; // modulation fit for rho
Float_t fMinPvalue; // minimum value of p
Float_t fMaxPvalue; // maximum value of p
- AliLocalRhoParameter* fLocalRho; //! local rho
// additional jet cuts (most are inherited)
Float_t fLocalJetMinEta; // local eta cut for jets
Float_t fLocalJetMaxEta; // local eta cut for jets
AliAnalysisTaskLocalRho(const AliAnalysisTaskLocalRho&); // not implemented
AliAnalysisTaskLocalRho& operator=(const AliAnalysisTaskLocalRho&); // not implemented
- ClassDef(AliAnalysisTaskLocalRho, 2);
+ ClassDef(AliAnalysisTaskLocalRho, 3);
};
#endif
Double_t GetLocalVal(Double_t phi, Double_t r) const {
return GetLocalVal(phi, r, GetVal());
}
+ Double_t GetLocalUncertainty(Double_t phi, Double_t r, Double_t n) const {
+ if(!fLocalRho) return 999.;
+ Double_t intError(fLocalRho->IntegralError(phi-r,phi+r));
+ Double_t absConst(TMath::Abs(n/(2*r*fLocalRho->GetParameter(0))));
+ return intError*absConst; // absolute error on local rho
+ }
+ Double_t GetLocalUncertainty(Double_t phi, Double_t r) const {
+ return GetLocalUncertainty(phi, r, GetVal());
+ }
private:
TF1* fLocalRho; // ! rho as function of phi
ClassImp(AliAnalysisTaskRhoVnModulation)
AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation() : AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoVnModulation", kTRUE),
- fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fLocalRhoName(Form("RhoFrom_%s", GetName())), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(kGrid), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) {
+ fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(kGrid), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) {
for(Int_t i(0); i < 10; i++) {
fProfV2Resolution[i] = 0;
fProfV3Resolution[i] = 0;
}
//_____________________________________________________________________________
AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation(const char* name, runModeType type) : AliAnalysisTaskEmcalJet(name, kTRUE),
- fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fLocalRhoName(Form("RhoFrom_%s", GetName())), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(type), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) {
+ fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(type), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) {
for(Int_t i(0); i < 10; i++) {
fProfV2Resolution[i] = 0;
fProfV3Resolution[i] = 0;
} break;
default: fDebug = -1; // suppress debug info explicitely when not running locally
}
+ if(fLocalRhoName=="") fLocalRhoName = Form("LocalRhoFrom_%s", GetName());
}
//_____________________________________________________________________________
AliAnalysisTaskRhoVnModulation::~AliAnalysisTaskRhoVnModulation()
if(fCentralityClasses) delete fCentralityClasses;
}
//_____________________________________________________________________________
+void AliAnalysisTaskRhoVnModulation::ExecOnce()
+{
+ // Init the analysis
+ fLocalRho = new AliLocalRhoParameter(fLocalRhoName.Data(), 0);
+ if(fAttachToEvent) {
+ if(!(InputEvent()->FindListObject(fLocalRho->GetName()))) {
+ InputEvent()->AddObject(fLocalRho);
+ } else {
+ AliFatal(Form("%s: Container with name %s already present. Aborting", GetName(), fLocalRho->GetName()));
+ }
+ }
+ AliAnalysisTaskEmcalJet::ExecOnce(); // init the base class
+ if(fUseScaledRho) {
+ // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled
+ fRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName())));
+ if(!fRho) {
+ AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName()));
+ }
+ }
+}
+//_____________________________________________________________________________
Bool_t AliAnalysisTaskRhoVnModulation::InitializeAnalysis()
{
// initialize the anaysis
case kGrid : { fFitModulationOptions += "N0"; } break;
default : break;
}
- if(fUseScaledRho) {
- // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled
- fRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName())));
- if(!fRho) {
- AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName()));
- return kFALSE; // pointless, but coverity will want this return value ...
- }
- }
- fLocalRho = new AliLocalRhoParameter(fLocalRhoName.Data(), 0);
- if(fAttachToEvent) {
- if(!(InputEvent()->FindListObject(fLocalRho->GetName()))) {
- InputEvent()->AddObject(fLocalRho);
- } else {
- AliFatal(Form("%s: Container with name %s already present. Aborting", GetName(), fLocalRho->GetName()));
- }
- }
FillAnalysisSummaryHistogram();
return kTRUE;
}
AliAnalysisTaskRhoVnModulation();
AliAnalysisTaskRhoVnModulation(const char *name, runModeType type);
virtual ~AliAnalysisTaskRhoVnModulation();
-
// setting up the task and technical aspects
+ void ExecOnce();
Bool_t InitializeAnalysis();
virtual void UserCreateOutputObjects();
virtual Bool_t Run();
void SetNameJetClones(const char* name) {fNameJetClones = name; }
void SetNamePicoTrackClones(const char* name) {fNamePicoTrackClones = name; }
void SetNameRho(const char* name) {fNameRho = name; }
- void SetLocalRhoName(TString name) {fLocalRhoName = name; }
void SetUseScaledRho(Bool_t s) {fUseScaledRho = s; }
void SetRandomSeed(TRandom3* r) {if (fRandom) delete fRandom; fRandom = r; }
void SetModulationFit(TF1* fit);
TH1F* fUserSuppliedR2; // correct the extracted v2 with this r
TH1F* fUserSuppliedR3; // correct the extracted v3 with this r
// members
- TString fLocalRhoName; // local rho name
Bool_t fUseScaledRho; // use scaled rho
Int_t fNAcceptedTracks; //! number of accepted tracks
Int_t fNAcceptedTracksQCn; //! accepted tracks for QCn
const char* fNameJetClones; //! collection of tclones array with jets
const char* fNamePicoTrackClones; //! collection of tclones with pico tracks
const char* fNameRho; //! name of rho
- AliLocalRhoParameter* fLocalRho; //! local rho
// additional jet cuts (most are inherited)
Float_t fLocalJetMinEta; // local eta cut for jets
Float_t fLocalJetMaxEta; // local eta cut for jets
AliAnalysisTaskRhoVnModulation(const AliAnalysisTaskRhoVnModulation&); // not implemented
AliAnalysisTaskRhoVnModulation& operator=(const AliAnalysisTaskRhoVnModulation&); // not implemented
- ClassDef(AliAnalysisTaskRhoVnModulation, 14);
+ ClassDef(AliAnalysisTaskRhoVnModulation, 15);
};
#endif
*/
AliAnalysisTaskLocalRho* AddTaskLocalRho(
- const char *ntracks = "Tracks", // track selection used for vn estimate
- const char *nclusters = "",
- const char *njets = "Jets", // jet selection for finding leading jet
- const char *nrho = "Rho",
- Double_t jetradius = 0.3,
- Double_t jetptcut = 1,
+ const char *ntracks = "Tracks", // track selection used for vn estimate
+ const char *nclusters = "", // clusters (not used)
+ const char *njets = "Jets", // jet selection for finding leading jet
+ const char *nrho = "Rho", // name of nominal rho
+ const char *lrho = "LocalRho", // name of local rho object
+ Double_t jetradius = 0.3, // jet radius (to remove leading jet)
+ Double_t jetptcut = 1,
Double_t jetareacut = 0.557,
UInt_t type = AliAnalysisTaskEmcal::kTPC,
Int_t leadhadtype = 0,
- const char *name = "AliAnalysisTaskLocalRho",
- TString fitOpts = "WLQI",
- UInt_t fitType = AliAnalysisTaskLocalRho::kCombined,
- TArrayI *centralities = 0x0,
- UInt_t runMode = AliAnalysisTaskLocalRho::kGrid
+ const char *name = "AliAnalysisTaskLocalRho", // task name
+ TString fitOpts = "WLQI", // options for tfitter
+ UInt_t fitType = AliAnalysisTaskLocalRho::kCombined, // fitting strategy
+ TArrayI *centralities = 0x0, // centrality binning for qa
+ UInt_t runMode = AliAnalysisTaskLocalRho::kGrid // run mode
)
{
// Get the pointer to the existing analysis manager via the static access method.
jetTask->SetClusName(nclusters);
jetTask->SetJetsName(njets);
jetTask->SetRhoName(nrho);
+ jetTask->SetLocalRhoName(lrho);
jetTask->SetJetRadius(jetradius);
jetTask->SetJetPtCut(jetptcut);
jetTask->SetPercAreaCut(jetareacut);