class AliAnalysisTaskFlowStrange : public AliAnalysisTaskSE {
public:
enum Especie {kKZE=0,kLDA=1,kLDABAR=2,kLDAALL=3,kCHARGED=90,kPION=91,kKAON=92,kPROTON=93};
+ enum Econfig {kSpecie=1,kHarmonic,kReadMC,kSkipSelection};
AliAnalysisTaskFlowStrange();
AliAnalysisTaskFlowStrange(const Char_t *name);
virtual ~AliAnalysisTaskFlowStrange();
virtual void UserExec(Option_t *);
virtual void Terminate(Option_t *);
- void MyUserExec(Option_t *);
+ TList* RunTerminateAgain(TList *lst);
+
void SetDebug(Int_t val=1) {fDebug = val;}
void SetQAlevel(Int_t qa) {fQAlevel = qa;}
- void SetMass(Int_t n, Double_t m, Double_t M) {fMassBins=n;fMinMass=m;fMaxMass=M;}
-
void SetpA() {fRunOnpA = kTRUE; fRunOnpp = kFALSE;}
void Setpp() {fRunOnpA = kFALSE; fRunOnpp = kTRUE; }
- void SetK0L0(Int_t specie) {fSpecie=specie;}
- void SetOnline(Bool_t val) {fOnline=val;}
- void SetHomemade(Bool_t val) {fHomemade=val;}
- void SetExcludeTPCEdges(Bool_t value) {fExcludeTPCEdges=value;}
- void SetCentralityRange(TString val, Int_t m, Int_t M) {fCentMethod=val; fCentPerMin=m; fCentPerMax=M;}
void SetReadESD(Bool_t val) {fReadESD=val;}
void SetReadMC(Bool_t val) {fReadMC=val;}
- void SetPostMatched(Int_t val) {fPostMatched=val;}
+ void MyUserExec(Option_t *);
+
void SetAvoidExec(Bool_t val) {fAvoidExec=val;}
- void SetSkipSelection(Bool_t val) {fSkipSelection=val;}
- void SetSkipFlow(Bool_t val) {fSkipFlow=val;}
- void SetUseFlowPackage(Bool_t val) {fUseFP=val;}
- void SetExtraEventRejection(Bool_t val) {fExtraEventRejection=val;}
void SetVertexZcut(Double_t val) {fVertexZcut=val;}
+ void SetSkipCentralitySelection(Bool_t val) {fSkipCentralitySelection=val;}
+ void SetCentralityRange(TString val, Int_t m, Int_t M) {fCentMethod=val; fCentPerMin=m; fCentPerMax=M;}
+ void SetExtraEventRejection(Bool_t val) {fExtraEventRejection=val;}
+ void SetSkipTerminate(Bool_t val) {fSkipTerminate=val;}
+ void SetAddPiToMCReactionPlane(Bool_t val) {fAddPiToMCReactionPlane=val;}
+ void SetUseFlowPackage(Bool_t val) {fUseFP=val;}
void SetWhichPsi(Int_t val) {fWhichPsi=val;}
void SetStoreVZEResponse(Bool_t val) {fVZEsave=val;}
void LoadVZEResponse(TList *val, Bool_t val2=kFALSE, Bool_t val3=kTRUE) {fVZEload=val;fVZEmb=val2;fVZEByDisk=val3;}
-
void SetRFPFilterBit(Int_t val) {fRFPFilterBit=val;}
void SetRFPMinPt(Double_t val) {fRFPminPt=val;}
void SetRFPMaxPt(Double_t val) {fRFPmaxPt=val;}
- void SetRFPMinEta(Double_t val) {fRFPminEta=val;}
- void SetRFPMaxEta(Double_t val) {fRFPmaxEta=val;}
+ void SetRFPAMinEta(Double_t val) {fRFPAminEta=val;}
+ void SetRFPAMaxEta(Double_t val) {fRFPAmaxEta=val;}
+ void SetRFPCMinEta(Double_t val) {fRFPCminEta=val;}
+ void SetRFPCMaxEta(Double_t val) {fRFPCmaxEta=val;}
void SetRFPTPCSignal(Double_t val) {fRFPTPCsignal=val;}
void SetRFPMaxIPxy(Double_t val) {fRFPmaxIPxy=val;}
void SetRFPMaxIPz(Double_t val) {fRFPmaxIPz=val;}
void SetRFPMinTPCCls(Int_t val) {fRFPTPCncls=val;}
void SetRFPVZERingRange(Int_t val1, Int_t val2, Int_t val3, Int_t val4)
{fVZECa=val1;fVZECb=val2;fVZEAa=val3;fVZEAb=val4;}
- void SetDauMinNClsTPC(Int_t val) {fDaughterMinNClsTPC=val;}
- void SetDauMinXRows(Int_t val) {fDaughterMinXRows=val;}
- void SetDauMaxChi2PerNClsTPC(Double_t val) {fDaughterMaxChi2PerNClsTPC=val;}
- void SetDauMinXRowsOverNClsFTPC(Double_t val) {fDaughterMinXRowsOverNClsFTPC=val;}
- void SetDauITSLayer(Int_t layer, Int_t config) {fDaughterITSConfig[layer]=config;}
- void SetDauMinEta(Double_t val) {fDaughterMinEta=val;}
- void SetDauMaxEta(Double_t val) {fDaughterMaxEta=val;}
- void SetDauMinPt(Double_t val) {fDaughterMinPt=val;}
- void SetDauMinImpactParameterXY(Double_t val) {fDaughterMinImpactParameterXY=val;}
- void SetDauMaxNSigmaPID(Double_t val) {fDaughterMaxNSigmaPID=val;}
- void SetDauUnTagProcedure(Bool_t val) {fDaughterUnTag=val;}
+ void SetSkipSelection(Bool_t val) {fSkipSelection=val;}
+ void SetPostMatched(Int_t val) {fPostMatched=val;}
+ void SetK0L0(Int_t specie) {fSpecie=specie;}
+ void SetMass(Int_t n, Double_t m, Double_t M) {fMassBins=n;fMinMass=m;fMaxMass=M;}
+ void SetOnline(Bool_t val) {fOnline=val;}
+ void SetHomemade(Bool_t val) {fHomemade=val;}
+ void SetExcludeTPCEdges(Bool_t value) {fExcludeTPCEdges=value;}
void SetMaxRapidity(Double_t val) {fDecayMaxRapidity=val;}
void SetMinEta(Double_t val) {fDecayMinEta=val;}
void SetMaxEta(Double_t val) {fDecayMaxEta=val;}
void SetMaxDecayLength(Double_t val) {fDecayMaxDecayLength=val;}
void SetMaxProductIPXY(Double_t val) {fDecayMaxProductIPXY=val;}
+ void SetDauMinNClsTPC(Int_t val) {fDaughterMinNClsTPC=val;}
+ void SetDauMinXRows(Int_t val) {fDaughterMinXRows=val;}
+ void SetDauMaxChi2PerNClsTPC(Double_t val) {fDaughterMaxChi2PerNClsTPC=val;}
+ void SetDauMinXRowsOverNClsFTPC(Double_t val) {fDaughterMinXRowsOverNClsFTPC=val;}
+ void SetDauITSLayer(Int_t layer, Int_t config) {fDaughterITSConfig[layer]=config;}
+ void SetDauMinEta(Double_t val) {fDaughterMinEta=val;}
+ void SetDauMaxEta(Double_t val) {fDaughterMaxEta=val;}
+ void SetDauMinPt(Double_t val) {fDaughterMinPt=val;}
+ void SetDauMinImpactParameterXY(Double_t val) {fDaughterMinImpactParameterXY=val;}
+ void SetDauMaxNSigmaPID(Double_t val) {fDaughterMaxNSigmaPID=val;}
+ void SetDauUnTagProcedure(Bool_t val) {fDaughterUnTag=val;}
+
private:
AliAnalysisTaskFlowStrange(const AliAnalysisTaskFlowStrange& analysisTask);
AliAnalysisTaskFlowStrange& operator=(const AliAnalysisTaskFlowStrange& analysisTask);
void Publish();
void AddEventSpy(TString name);
+ void FillEventSpy(TString name);
+
+ Bool_t MinimumRequirementsAA(AliAODEvent *tAOD);
Bool_t AcceptAAEvent(AliESDEvent *tESD);
Bool_t AcceptAAEvent(AliAODEvent *tAOD);
Bool_t AcceptPPEvent(AliAODEvent *tAOD);
void ComputePsi2(AliVEvent *event);
void AddMakeQSpy();
- void MakeQVZE(AliVEvent *event,Double_t &qxa,Double_t &qya,Double_t &qwa,Double_t &qxb,Double_t &qyb,Double_t &qwb);
- void MakeQTPC(AliVEvent *event,Double_t &qxa,Double_t &qya,Double_t &qwa,Double_t &qxb,Double_t &qyb,Double_t &qwb);
- void MakeQTPC(AliESDEvent *event,Double_t &qxa,Double_t &qya,Double_t &qwa,Double_t &qxb,Double_t &qyb,Double_t &qwb);
- void MakeQTPC(AliAODEvent *event,Double_t &qxa,Double_t &qya,Double_t &qwa,Double_t &qxb,Double_t &qyb,Double_t &qwb);
+ void MakeQVZE(AliVEvent *event);
+ void MakeQTPC(AliVEvent *event);
+ void MakeQTPC(AliESDEvent *event);
+ void MakeQTPC(AliAODEvent *event);
void AddTPCRFPSpy(TList *val);
Bool_t PassesRFPTPCCuts(AliESDtrack *myTrack, Double_t aodChi2NDF=0, Float_t aodipxy=0, Float_t aodipz=0);
void MakeQVectors();
void ResetContainers();
- void MakeDHcorr();
void AddCandidates();
- void ReadEventPlanesFromAOD(AliAODEvent *tAOD);
Double_t GetMCDPHI(Double_t phi);
void AddCandidatesSpy(TList *val, Bool_t fillRes=kFALSE);
void FillCandidateSpy(TString listName, Bool_t fillRes=kFALSE);
- void AddTracksSpy(TList *val, Bool_t fillRes=kFALSE);
+ void AddTrackSpy(TList *val, Bool_t fillRes=kFALSE);
void FillTrackSpy(TString listName, Bool_t fillRes=kFALSE);
+ void AddDecayVn(TList *val);
+ void FillDecayVn(TString listName,Double_t ms,Double_t pt,Double_t phi,Double_t eta,Int_t fid1,Int_t fid2);
+ void QCStoreDecayVn(TString name);
+ void ComputeDecayVn(TString listName);
+
+ void AddTrackVn(TList *val);
+ void FillTrackVn(TString listName,Double_t pt,Double_t phi,Double_t eta,Int_t fid);
+ void QCStoreTrackVn(TString name);
+ void ComputeTrackVn(TString listName);
+ Bool_t InQTPC(Int_t id);
+
void MakeFilterBits();
Bool_t PassesFilterBit(AliESDtrack *me);
void AddVZEQA();
void SaveVZEROQA();
+ Int_t RefMult(AliAODEvent *tAOD, Int_t fb);
Int_t RefMultTPC();
Int_t RefMultGlobal();
Bool_t fReadESD; // move back to ESD
Bool_t fReadMC; // read MC files
+ Bool_t fAddPiToMCReactionPlane; // add pi randomly (MCTUNED)
Int_t fPostMatched; // post only (un)matched particles
Bool_t fAvoidExec; // avoids Exec
Bool_t fSkipSelection; // skip decay finder
- Bool_t fSkipFlow; // skip flow-wise code
- Bool_t fSkipDHcorr; // skip dhcorr code
Bool_t fUseFP; // flow package?
Bool_t fRunOnpA; // make task compatible with pA event selection
Bool_t fRunOnpp; // make task compatible with pp event selection
Bool_t fExtraEventRejection; // to reject pile up
+ Bool_t fSkipCentralitySelection; // to skip centrality
TString fCentMethod; // CC
Int_t fCentPerMin; // CC
Int_t fCentPerMax; // CC
Double_t fThisCent; // CC
+ Double_t fV0M; // V0M CC
+ Double_t fTRK; // TRK CC
+ Double_t fPriVtxZ; // vtxZ
+ Double_t fSPDVtxZ; // vtxZ
+ Int_t fSPDtracklets; // spd tracklets
+ Float_t fVZETotM; // vzero total multiplicity
+ Int_t fRefMultTPC; // tpc only multiplicity
+ Int_t fRefMultHyb; // hybrid multiplicity
Double_t fVertexZcut; // cut on main vertex Z
Int_t fVZECb; // end of V0C (ring number 0-3)
Int_t fVZEAa; // start of V0A (ring number 0-3)
Int_t fVZEAb; // end of V0A (ring number 0-3)
- TList *fVZEQA; // adress to qalist
+ TList *fVZEQA; // address to qalist
+ Int_t fHarmonic; // flow angle order
Double_t fPsi2; // best estimation of Psi2
Double_t fMCEP; // stores MC EP (when available)
+ // VZE QVector
+ Double_t fQVZEACos;
+ Double_t fQVZEASin;
+ Double_t fQVZECCos;
+ Double_t fQVZECSin;
+ Double_t fQVZEA;
+ Double_t fQVZEC;
+ // TPC QVector
+ Double_t fQTPCACos;
+ Double_t fQTPCASin;
+ Double_t fQTPCCCos;
+ Double_t fQTPCCSin;
+ Double_t fQTPC2hCos;
+ Double_t fQTPC2hSin;
+ Double_t fQTPCA;
+ Double_t fQTPCC;
+ Int_t fQTPCA_nTracks;
+ Int_t fQTPCC_nTracks;
+ Int_t fQTPCA_fID[2000];
+ Int_t fQTPCC_fID[2000];
+ Bool_t fSkipTerminate;
Int_t fMassBins; // opens
Double_t fMinMass; // mass
Int_t fRFPFilterBit; // RFP TPC
Double_t fRFPminPt; // RFP TPC
Double_t fRFPmaxPt; // RFP TPC
- Double_t fRFPminEta; // RFP TPC
- Double_t fRFPmaxEta; // RFP TPC
+ Double_t fRFPAminEta; // RFP TPC
+ Double_t fRFPAmaxEta; // RFP TPC
+ Double_t fRFPCminEta; // RFP TPC
+ Double_t fRFPCmaxEta; // RFP TPC
Double_t fRFPTPCsignal; // RFP TPC
Double_t fRFPmaxIPxy; // RFP TPC
Double_t fRFPmaxIPz; // RFP TPC
UChar_t fDaughterITScm; // DAUGHTER
Double_t fDaughterNSigmaPID; // DAUGHTER
Int_t fDaughterKinkIndex; // DAUGHTER
+ Double_t fDaughterAtSecPhi; // DAUGHTER
+ Double_t fDaughterAtSecEta; // DAUGHTER
+ Double_t fDaughterAtSecPt; // DAUGHTER
Double_t fDaughterMatchPhi; // MC DAUGHTER
Double_t fDaughterMatchEta; // MC DAUGHTER
Double_t fDaughterMinImpactParameterXY; // DAUGHTER CUTS
Double_t fDaughterMaxNSigmaPID; // DAUGHTER CUTS
- ClassDef(AliAnalysisTaskFlowStrange, 5);
+ ClassDef(AliAnalysisTaskFlowStrange, 6);
};
#endif