-
// ******************************************
// This task computes several jet observables like
// the fraction of energy in inner and outer coronnas,
fCentMax(100.),
fNInputTracksMin(0),
fNInputTracksMax(-1),
+fRequireITSRefit(0),
+fApplySharedClusterCut(0),
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
fh2AngStructpt2C60(0x0),
fh2AngStructpt3C60(0x0),
fh2AngStructpt4C60(0x0),
+fh1TrigRef(0x0),
+fh1TrigSig(0x0),
fh2Ntriggers(0x0),
fh2Ntriggers2C10(0x0),
fh2Ntriggers2C20(0x0),
fCentMax(100.),
fNInputTracksMin(0),
fNInputTracksMax(-1),
+fRequireITSRefit(0),
+fApplySharedClusterCut(0),
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
fh2AngStructpt2C60(0x0),
fh2AngStructpt3C60(0x0),
fh2AngStructpt4C60(0x0),
+fh1TrigRef(0x0),
+fh1TrigSig(0x0),
fh2Ntriggers(0x0),
fh2Ntriggers2C10(0x0),
fh2Ntriggers2C20(0x0),
fh2AngStructpt4C60 = new TH2F("Ang struct pt4 C60","",15,0.,1.5,150,0.,10.); }
-
+ fh1TrigRef=new TH1D("Trig Ref","",10,0.,10);
+ fh1TrigSig=new TH1D("Trig Sig","",10,0.,10);
fh2Ntriggers=new TH2F("# of triggers","",100,0.,100.,50,0.,50.);
fh2Ntriggers2C10=new TH2F("# of triggers2C10","",50,0.,50.,50,0.,50.);
fh2Ntriggers2C20=new TH2F("# of triggers2C20","",50,0.,50.,50,0.,50.);
-
+ fOutputList->Add(fh1TrigRef);
+ fOutputList->Add(fh1TrigSig);
fOutputList->Add(fh2Ntriggers);
fOutputList->Add(fh2Ntriggers2C10);
fOutputList->Add(fh2Ntriggers2C20);
const Int_t dimSpec = 5;
const Int_t nBinsSpec[dimSpec] = {100,6, 140, 50, fNRPBins};
const Double_t lowBinSpec[dimSpec] = {0,0,-80, 0, 0};
- const Double_t hiBinSpec[dimSpec] = {100,1, 200, 50, fNRPBins};
+ const Double_t hiBinSpec[dimSpec] = {100,1, 200, 50, static_cast<Double_t>(fNRPBins)};
fHJetSpec = new THnSparseF("fHJetSpec","Recoil jet spectrum",dimSpec,nBinsSpec,lowBinSpec,hiBinSpec);
//change binning in jet area
// -- event selection --
fHistEvtSelection->Fill(1); // number of events before event selection
- // physics selection
+
+ Bool_t selected=kTRUE;
+ selected = AliAnalysisHelperJetTasks::Selected();
+ if(!selected){
+ // no selection by the service task, we continue
+ PostData(1,fOutputList);
+ return;}
+
+
+
+ // physics selection: this is now redundant, all should appear as accepted after service task selection
AliInputEventHandler* inputHandler = (AliInputEventHandler*)
((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
std::cout<<inputHandler->IsEventSelected()<<" "<<fOfflineTrgMask<<std::endl;
return;
}
+
+
// vertex selection
if(!aod){
if(fDebug) Printf("%s:%d No AOD",(char*)__FILE__,__LINE__);
TList ParticleList;
Double_t minT=0;
Double_t maxT=0;
+ Int_t number=0;
Double_t dice=fRandom->Uniform(0,1);
if(dice>fFrac){ minT=fTTLowRef;
maxT=fTTUpRef;}
if(fHardest==1 || fHardest==2) nT = GetListOfTracks(&ParticleList);
- if(fHardest==0) nT=SelectTrigger(&ParticleList,minT,maxT);
+ if(fHardest==0) nT=SelectTrigger(&ParticleList,minT,maxT,number);
if(nT<0){
PostData(1, fOutputList);
return;}
-
+ if(dice>fFrac) fh1TrigRef->Fill(number);
+ if(dice<=fFrac)fh1TrigSig->Fill(number);
for (Int_t iJetType = 0; iJetType < 2; iJetType++) {
fListJets[iJetType]->Clear();
if(fHardest==0||fHardest==1){if(tt!=nT) continue;}
AliVParticle *partback = (AliVParticle*)ParticleList.At(tt);
if(!partback) continue;
- if(partback->Pt()<10) continue;
+ if(partback->Pt()<8) continue;
Double_t accep=2.*TMath::Pi()*1.8;
Int_t injet4=0;
if(phitt<0)phitt+=TMath::Pi()*2.;
Int_t phiBintt = GetPhiBin(phitt-fRPAngle);
- Double_t fillspec[] = {centValue,jetbig->EffectiveAreaCharged(),ptcorr,partback->Pt(),phiBintt};
+ Double_t fillspec[] = {centValue,jetbig->EffectiveAreaCharged(),ptcorr,partback->Pt(), static_cast<Double_t>(phiBintt)};
fHJetSpec->Fill(fillspec);
if(fFilterType == 0)bGood = true;
else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
- if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
+ if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
+ if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
if(bGood==false) continue;
- if(TMath::Abs(tr->Eta())>0.9)continue;
+ if (fApplySharedClusterCut) {
+ Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
+ if (frac > 0.4) continue;
+ }
+ if(TMath::Abs(tr->Eta())>0.9)continue;
if(tr->Pt()<0.15)continue;
list->Add(tr);
iCount++;
-Int_t AliAnalysisTaskJetCore::SelectTrigger(TList *list,Double_t minT,Double_t maxT){
+Int_t AliAnalysisTaskJetCore::SelectTrigger(TList *list,Double_t minT,Double_t maxT,Int_t &number){
Int_t iCount = 0;
AliAODEvent *aod = 0;
if(!fESD)aod = fAODIn;
else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
+ if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
if(bGood==false) continue;
+ if (fApplySharedClusterCut) {
+ Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
+ if (frac > 0.4) continue;
+ }
if(TMath::Abs(tr->Eta())>0.9)continue;
if(tr->Pt()<0.15)continue;
list->Add(tr);
im=im+1;}
}
+ number=im;
Int_t rd=0;
if(im==0) rd=0;
- if(im>0) rd=fRandom->Integer(im-1);
+ if(im>0) rd=fRandom->Integer(im);
index=triggers[rd];