From: prino Date: Tue, 10 Apr 2012 21:05:12 +0000 (+0000) Subject: possibility to choose a combination of 3 subevents out of TPC,TPC+,TPC-,V0A,V0C for... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=5b559d1e4d3fbf843a993bafb33a302a5a2f0c4b;p=u%2Fmrichter%2FAliRoot.git possibility to choose a combination of 3 subevents out of TPC,TPC+,TPC-,V0A,V0C for V0A/V0C (Giacomo) --- diff --git a/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.cxx b/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.cxx index 86c786582dd..b0ccfe34e60 100644 --- a/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.cxx +++ b/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.cxx @@ -96,7 +96,8 @@ AliAnalysisTaskSE(), fV0EPorder(2), fMinCentr(20), fMaxCentr(80), - fEtaGap(kFALSE) + fEtaGap(kFALSE), + fSubEvents(0) { // Default constructor } @@ -120,7 +121,8 @@ AliAnalysisTaskSEHFv2::AliAnalysisTaskSEHFv2(const char *name,AliRDHFCuts *rdCut fV0EPorder(2), fMinCentr(20), fMaxCentr(80), - fEtaGap(kFALSE) + fEtaGap(kFALSE), + fSubEvents(0) { // standard constructor Int_t pdg=421; @@ -460,58 +462,52 @@ void AliAnalysisTaskSEHFv2::UserExec(Option_t */*option*/) if(fUseAfterBurner)fAfterBurner->SetEventPlane((Double_t)eventplane); }else{ if(fEventPlaneMeth!=kTPC){ + //VZERO EP and resolution rpangleVZERO=GetPhi0Pi(pl->GetEventplane("V0",aod,fV0EPorder)); if(fEventPlaneMeth>kTPCVZERO){ - //Using V0A/C for VZERO resolution - rpangleeventA= GetPhi0Pi(pl->GetEventplane("V0A",aod,fV0EPorder)); - rpangleeventB= GetPhi0Pi(pl->GetEventplane("V0C",aod,fV0EPorder)); - if(fEventPlaneMeth==kVZEROA)rpangleVZERO=rpangleeventA; - else if(fEventPlaneMeth==kVZEROC)rpangleVZERO=rpangleeventB; - deltaPsi =rpangleeventA-rpangleeventB; - eventplane=rpangleVZERO; + //Using V0A/C for VZERO resolution + if(fEventPlaneMeth==kVZEROA){ + rpangleVZERO=GetPhi0Pi(pl->GetEventplane("V0A",aod,fV0EPorder)); + if(fSubEvents!=kSingleV0Side)rpangleeventB=GetPhi0Pi(pl->GetEventplane("V0C",aod,fV0EPorder)); + } + else if(fEventPlaneMeth==kVZEROC){ + rpangleVZERO=GetPhi0Pi(pl->GetEventplane("V0C",aod,fV0EPorder)); + if(fSubEvents!=kSingleV0Side)rpangleeventB=GetPhi0Pi(pl->GetEventplane("V0A",aod,fV0EPorder)); + } + // deltaPsi =rpangleeventA-rpangleeventB; + eventplane=rpangleVZERO; } } + // TPC event plane rpangleTPC = pl->GetEventplane("Q"); - if(fEventPlaneMeth<=kTPCVZERO){ - // TPC resolution - q = pl->GetQVector(); - if(fEtaGap){ - qsub1 = pl->GetQsub1(); - qsub2 = pl->GetQsub2(); - if(!qsub1 || !qsub2){ - fhEventsInfo->Fill(6); - return; - } + if(rpangleTPC<0){ + fhEventsInfo->Fill(6); + return; + } + rpangleeventA = rpangleTPC; + if(fSubEvents>kFullTPC||fEtaGap||fEventPlaneMeth==kVZERO){ + qsub1 = pl->GetQsub1(); + qsub2 = pl->GetQsub2(); + if(!qsub1 || !qsub2){ + fhEventsInfo->Fill(6); + return; + } + if(fSubEvents==kPosTPC||fSubEvents==kSingleV0Side||fEventPlaneMeth==kVZERO){ rpangleeventA = qsub1->Phi()/2.; - rpangleeventB = qsub2->Phi()/2.; + if(fSubEvents==kSingleV0Side||fEventPlaneMeth==kVZERO)rpangleeventB = qsub2->Phi()/2.; } + if(fSubEvents==kNegTPC)rpangleeventA = qsub2->Phi()/2.; + } + + if(fEventPlaneMeth<=kTPCVZERO){ + q = pl->GetQVector(); deltaPsi = pl->GetQsubRes(); - // planereso = TMath::Cos(2.*deltaPsi); // reaction plane resolution + }else{ + deltaPsi=eventplane-rpangleeventA; } } - - //verify TPC EP - Double_t rpsubTPC=rpangleTPC; - // if(fEventPlaneMeth==kVZEROpos||fEventPlaneMeth==kVZEROneg){ - // TVector2 *qsub=0x0; - // if(fEventPlaneMeth==kVZEROneg)qsub=pl->GetQsub2(); - // else qsub=pl->GetQsub1(); - // if(!qsub){ - // fhEventsInfo->Fill(6); - // return; - // } - // if(qsub->X()==0 && qsub->Y()==0){ - // fhEventsInfo->Fill(6); - // return; - // } - // rpsubTPC=qsub->Phi()/2.; - // } - if(rpsubTPC<0){ - fhEventsInfo->Fill(6); - return; - } if(TMath::Abs(deltaPsi)>TMath::Pi()/2.){ if(deltaPsi>0.) deltaPsi-=TMath::Pi(); @@ -529,13 +525,13 @@ void AliAnalysisTaskSEHFv2::UserExec(Option_t */*option*/) ((TH1F*)fOutput->FindObject(Form("hEvPlaneB%s",centrbinname.Data())))->Fill(rpangleeventB); //Angle of second subevent } if(fEventPlaneMeth>kTPCVZERO){ - Double_t deltaSub=rpsubTPC-rpangleeventA; + Double_t deltaSub=rpangleeventA-rpangleeventB; if(TMath::Abs(deltaSub)>TMath::Pi()/2.){// difference of subevents reaction plane angle cannot be bigger than phi/2 if(deltaSub>0.) deltaSub-=TMath::Pi(); else deltaSub +=TMath::Pi(); } ((TH1F*)fOutput->FindObject(Form("hEvPlaneReso2%s",centrbinname.Data())))->Fill(TMath::Cos(2.*deltaSub)); //RP resolution - deltaSub =rpsubTPC-rpangleeventB; + deltaSub =eventplane-rpangleeventB; if(TMath::Abs(deltaSub)>TMath::Pi()/2.){// difference of subevents reaction plane angle cannot be bigger than phi/2 if(deltaSub>0.) deltaSub-=TMath::Pi(); else deltaSub +=TMath::Pi(); diff --git a/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h b/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h index da89823ea8a..9851dc3bcdd 100644 --- a/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h +++ b/PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h @@ -35,6 +35,7 @@ class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE enum DecChannel{kDplustoKpipi,kD0toKpi,kDstartoKpipi}; //more particles can be added enum EventPlaneMeth{kTPC,kTPCVZERO,kVZERO,kVZEROA,kVZEROC}; //Event plane to be calculated in the task + enum SubEvents{kFullTPC,kPosTPC,kNegTPC,kSingleV0Side}; //Sub-events for V0 EP AliAnalysisTaskSEHFv2(); AliAnalysisTaskSEHFv2(const char *name, AliRDHFCuts *rdCuts, Int_t decaychannel); @@ -58,6 +59,7 @@ class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE void SetVZEROCEP(){SetEventPlaneMethod(kVZEROC);} void SetTPCEP(){SetEventPlaneMethod(kTPCVZERO);} void SetEventPlanesCompatibility(Float_t comp) {fEventPlanesComp=comp;} + void SetSubEvents(Int_t subev){if(subev>=kFullTPC&&subev<=kSingleV0Side)fSubEvents=subev;} Int_t GetEventPlaneMethod()const {return fEventPlaneMeth;} Float_t GetEventPlanesCompatibility()const {return fEventPlanesComp;} @@ -105,8 +107,9 @@ class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE Int_t fMinCentr; //minimum centrality Int_t fMaxCentr; //maximum centrality Bool_t fEtaGap; // Eta gap feature for Eventplane from tracks; be careful that you do the correct settings in AddTaskEventPlane.C !!!! + Int_t fSubEvents; //Sub-events definition for V0 EP - ClassDef(AliAnalysisTaskSEHFv2,1); // AliAnalysisTaskSE for the HF v2 analysis + ClassDef(AliAnalysisTaskSEHFv2,2); // AliAnalysisTaskSE for the HF v2 analysis }; #endif