fAOD = aod;
fTrackCuts = trackcuts;
fHistoCuts->Fill(kProcessedEvents);
+ Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected());//FIXME we can add the trigger mask here
+ if(!isSelected)return isSelected;
//loop on tracks, before event selection, filling QA histos
AliAODVertex * vertex = fAOD->GetPrimaryVertex();//FIXME vertex is recreated
if(vertex)fHistoVtxBefSel->Fill(vertex->GetZ());
{
// Check centrality cut
Double_t cent=0;
- if(fIsMC)cent=fAOD->GetCentrality()->GetCentralityPercentile("V0M");
+ if(!fUseCentPatchAOD049)cent=fAOD->GetCentrality()->GetCentralityPercentile("V0M");
else cent=ApplyCentralityPatchAOD049();
if ( (cent <= fCentralityCutMax) && (cent >= fCentralityCutMin) ) return kTRUE;
cout << "Event Stats" << endl;
cout << " > Number of accepted events: " << fHistoCuts->GetBinContent(kAcceptedEvents + 1) << endl;
cout << " > Number of processed events: " << fHistoCuts->GetBinContent(kProcessedEvents + 1) << endl;
+ cout << " > Number of PhysSel events: " << fHistoCuts->GetBinContent(kPhysSelEvents + 1) << endl;
cout << " > Vertex out of range: " << fHistoCuts->GetBinContent(kVtxRange + 1) << endl;
cout << " > Events cut by centrality: " << fHistoCuts->GetBinContent(kVtxCentral + 1) << endl;
cout << " > Events without vertex: " << fHistoCuts->GetBinContent(kVtxNoEvent + 1) << endl;
class AliSpectraAODEventCuts : public TNamed
{
public:
- enum { kProcessedEvents = 0,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kNVtxCuts};
+ enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kNVtxCuts};
// Constructors
- AliSpectraAODEventCuts() : TNamed(), fAOD(0), fIsMC(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0) {}
+ AliSpectraAODEventCuts() : TNamed(), fAOD(0), fIsMC(0), fUseCentPatchAOD049(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0) {}
AliSpectraAODEventCuts(const char *name);
virtual ~AliSpectraAODEventCuts() {}
void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
Bool_t GetIsMC() const { return fIsMC;};
+ void SetUseCentPatchAOD049(Bool_t useCentPatchAOD049 = kFALSE) {fUseCentPatchAOD049 = useCentPatchAOD049; };
+ Bool_t GetUseCentPatchAOD049() const { return fUseCentPatchAOD049;};
+
// Methods
Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts *trackcuts);
Bool_t CheckVtxRange();
Float_t NumberOfEvents() { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
Float_t NumberOfProcessedEvents() { return fHistoCuts->GetBinContent(kProcessedEvents+1); }
+ Float_t NumberOfPhysSelEvents() { return fHistoCuts->GetBinContent(kPhysSelEvents+1); }
Long64_t Merge(TCollection* list);
AliAODEvent *fAOD; //! AOD event
Bool_t fIsMC;// true if processing MC
+ Bool_t fUseCentPatchAOD049;// Patch for centrality selection on AOD049
AliSpectraAODTrackCuts *fTrackCuts; //! track cuts
Bool_t fIsSelected; // True if cuts are selected
Float_t fCentralityCutMin; // minimum centrality percentile
return kFALSE;
}
fHistoCuts->Fill(kTrkBit);
+
+ if(!CheckTrackCuts()){
+ return kFALSE;
+ }
+ fHistoCuts->Fill(kTrkCuts);
if(!CheckEtaCut()){
return kFALSE;
}
Bool_t AliSpectraAODTrackCuts::CheckTrackType()
{
- // Check track cuts
+ // Check track Type
if (fTrack->TestFilterBit(fTrackBits)) return kTRUE;
return kFALSE;
}
+//_________________________________________________________
+
+Bool_t AliSpectraAODTrackCuts::CheckTrackCuts()
+{
+ // Check additional track Cuts
+ return fTrack->HasPointOnITSLayer(0); //FIXME 1 SPD for the moment
+
+}
//________________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckEtaCut()
{
using namespace AliSpectraNameSpace;
const char * kBinLabel[] ={"TrkBit",
+ "TrkCuts",
"TrkEta",
"TrkDCA",
"TrkP",
{
public:
- enum { kTrkBit = 0, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts};
+ enum { kTrkBit = 0, kTrkCuts, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts};
AliSpectraAODTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fEtaCut(0), fPCut(0), fPtCut(0), fPtCutTOFMatching(0), fQvecCutMin(0), fQvecCutMax(0), fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fTrack(0) {}
void SetTrackType(UInt_t bit);
Bool_t CheckTrackType();
+ Bool_t CheckTrackCuts();
Bool_t CheckEtaCut();
Bool_t CheckYCut(AODParticleSpecies_t specie); // not included in standard cuts
Bool_t CheckDCACut();
Bool_t CheckPCut();
- Bool_t CheckPtCut();
- Bool_t CheckTOFMatching();
- void PrintCuts() const;
-
+ Bool_t CheckPtCut();
+ Bool_t CheckTOFMatching();
+ void PrintCuts() const;
+
UInt_t GetTrackType() const { return fTrackBits; }
TH1I * GetHistoCuts() { return fHistoCuts; }
TH1F * GetHistoNSelectedPos() { return fHistoNSelectedPos; }
-void runAODProof(Int_t c=2, const char * proofMode = "full")
+void runAODProof(Int_t c=3, const char * proofMode = "full")
{ //1 data AOD049
//2 MC AOD048
//3 data AOD086
handler->SetProofDataSet("/default/lmilano/LHC11a10a_138653_AOD048#aodTree|/default/lmilano/LHC11a10a_138662_AOD048#aodTree|/default/lmilano/LHC11a10a_138666_AOD048#aodTree|/default/lmilano/LHC11a10a_138730_AOD048#aodTree|/default/lmilano/LHC11a10a_138732_AOD048#aodTree|/default/lmilano/LHC11a10a_139507_AOD048#aodTree|/default/lmilano/LHC11a10a_139465_AOD048#aodTree|/default/lmilano/LHC11a10a_139437_AOD048#aodTree|/default/lmilano/LHC11a10a_139107_AOD048#aodTree|/default/lmilano/LHC11a10a_139510_AOD048#aodTree");
}
if (c == 3){
- handler->SetProofDataSet("/default/lmilano/LHC10h_000138653_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138662_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138666_AOD086_p2#aodTree|/default/lmilano/LHC10h_000139107_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138275_AOD086_p2#aodTree");
- //handler->SetProofDataSet("/default/lmilano/LHC10h_000138275_AOD086_p2#aodTree");
+ //handler->SetProofDataSet("/default/lmilano/LHC10h_000138653_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138662_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138666_AOD086_p2#aodTree|/default/lmilano/LHC10h_000139107_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138275_AOD086_p2#aodTree");
+ handler->SetProofDataSet("/default/lmilano/LHC10h_000138275_AOD086_p2#aodTree");
}
if (c == 4){
- handler->SetProofDataSet("/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138662_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138666_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_139107_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree");
- //handler->SetProofDataSet("/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree");
+ //handler->SetProofDataSet("/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138662_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138666_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_139107_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree");
+ handler->SetProofDataSet("/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree");
}
gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
// Set the cuts
AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
AliSpectraAODTrackCuts * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
- if(c==1 || c==2)tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cut with loose DCA
+ //if(c==1 || c==2)tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cut with loose DCA
//if(c==1 || c==2)tcuts->SetTrackType(6); //AOD 046 & 047. Standard Cut with tight DCA
//if(c==3 || c==4)tcuts->SetTrackType(10); //AOD 086 & 090. Standard Raa cut
//if(c==3 || c==4)tcuts->SetTrackType(4); //AOD 086 & 090. Jet analysis
- if(c==3 || c==4)tcuts->SetTrackType(7); //AOD 086 & 090. TPC Only
+ //if(c==3 || c==4)tcuts->SetTrackType(7); //AOD 086 & 090. TPC Only
+ tcuts->SetTrackType(1);
+ Printf("-------------------- tcuts->GetTrackType() %d",tcuts->GetTrackType());
tcuts->SetEta(.8);
//tcuts->SetDCA(.1);
tcuts->SetPt(5);
tcuts->SetPtTOFMatching(.6);
tcuts->SetQvecMin(QvecCutMin[iCut]);
tcuts->SetQvecMax(QvecCutMax[iCut]);
+ if(c==1)vcuts->SetUseCentPatchAOD049(kTRUE);
vcuts->SetCentralityCutMax(CentCutMax[iCut]);
vcuts->SetCentralityCutMin(CentCutMin[iCut]);
task->SetEventCuts(vcuts);
tcuts->SetPtTOFMatching(0.6);
tcuts->SetQvecMin(qVecCut[0]);
tcuts->SetQvecMax(qVecCut[1]);
+ if(sub==0 && mc==0)vcuts->SetUseCentPatchAOD049(1);
vcuts->SetCentralityCutMin(CentCut[0]);
vcuts->SetCentralityCutMax(CentCut[1]);
task->SetEventCuts(vcuts);