fAODOut(0x0),
fAODExtension(0x0),
fhnCorrelation(0x0),
- fhnCorrelationPhiZRec(0x0),
f1PtScale(0x0),
fBranchRec("jets"),
fBranchGen(""),
fh3RPPhiTracks(0x0),
fHistList(0x0)
{
+
+ fFlatA[0] = fFlatA[1] = 0;
+ fFlatB[0] = fFlatB[1] = 0;
+ fDeltaQxy[0] = fDeltaQxy[1] = 0;
+
for(int i = 0;i < kMaxStep*2;++i){
fhnJetContainer[i] = 0;
}
fAODOut(0x0),
fAODExtension(0x0),
fhnCorrelation(0x0),
- fhnCorrelationPhiZRec(0x0),
f1PtScale(0x0),
fBranchRec("jets"),
fBranchGen(""),
fHistList(0x0)
{
+ fFlatA[0] = fFlatA[1] = 0;
+ fFlatB[0] = fFlatB[1] = 0;
+ fDeltaQxy[0] = fDeltaQxy[1] = 0;
+
for(int i = 0;i < kMaxStep*2;++i){
fhnJetContainer[i] = 0;
}
MakeJetContainer();
fHistList->Add(fhnCorrelation);
- if(fhnCorrelationPhiZRec)fHistList->Add(fhnCorrelationPhiZRec);
for(int i = 0;i<kMaxStep*2;++i)fHistList->Add(fhnJetContainer[i]);
//
}
Double_t container[6];
- Double_t containerPhiZ[6];
// loop over generated jets
// consider the
container[0] = ptRec;
container[1] = etaRec;
container[2] = phiRec;
- containerPhiZ[0] = ptRec;
- containerPhiZ[1] = phiRec;
fhnJetContainer[kStep0+kMaxStep]->Fill(container);
if (fDebug > 10)Printf("%s:%d",(char*)__FILE__,__LINE__);
container[3] = ptGen;
container[4] = etaGen;
container[5] = phiGen;
- containerPhiZ[3] = ptGen;
//
// we accept only jets which are detected within a smaller window, to avoid ambigious pair association at the edges of the acceptance
//
fh2RelPtFGen->Fill(ptGen,delta);
fh2PtFGen->Fill(ptGen,ptRec);
}
- if(fhnCorrelationPhiZRec)fhnCorrelationPhiZRec->Fill(containerPhiZ);
}
- else{
- containerPhiZ[3] = 0;
- if(fhnCorrelationPhiZRec)fhnCorrelationPhiZRec->Fill(containerPhiZ);
- }
}// loop over reconstructed jets
}
if (fDebug > 10)Printf("%s:%d",(char*)__FILE__,__LINE__);
const Double_t kPtmin = 0.0, kPtmax = 320.; // we do not want to have empty bins at the beginning...
const Double_t kEtamin = -3.0, kEtamax = 3.0;
const Double_t kPhimin = 0., kPhimax = 2. * TMath::Pi();
- const Double_t kZmin = 0., kZmax = 1;
// can we neglect migration in eta and phi?
// phi should be no problem since we cover full phi and are phi symmetric
delete [] binEdges[ivar];
-
- // for second correlation histogram
-
-
- const Int_t kNvarPhiZ = 4;
- //arrays for the number of bins in each dimension
- Int_t iBinPhiZ[kNvarPhiZ];
- iBinPhiZ[0] = 80; //bins in pt
- iBinPhiZ[1] = 72; //bins in phi
- iBinPhiZ[2] = 20; // bins in Z
- iBinPhiZ[3] = 80; //bins in ptgen
-
-
- return;
- //arrays for lower bounds :
- Double_t* binEdgesPhiZ[kNvarPhiZ];
- for(Int_t ivar = 0; ivar < kNvarPhiZ; ivar++)
- binEdgesPhiZ[ivar] = new Double_t[iBinPhiZ[ivar] + 1];
-
- for(Int_t i=0; i<=iBinPhiZ[0]; i++) binEdgesPhiZ[0][i]=(Double_t)kPtmin + (kPtmax-kPtmin)/(Double_t)iBinPhiZ[0]*(Double_t)i;
- for(Int_t i=0; i<=iBinPhiZ[1]; i++) binEdgesPhiZ[1][i]=(Double_t)kPhimin + (kPhimax-kPhimin)/iBinPhiZ[1]*(Double_t)i;
- for(Int_t i=0; i<=iBinPhiZ[2]; i++) binEdgesPhiZ[2][i]=(Double_t)kZmin + (kZmax-kZmin)/iBinPhiZ[2]*(Double_t)i;
- for(Int_t i=0; i<=iBinPhiZ[3]; i++) binEdgesPhiZ[3][i]=(Double_t)kPtmin + (kPtmax-kPtmin)/(Double_t)iBinPhiZ[3]*(Double_t)i;
-
- fhnCorrelationPhiZRec = new THnSparseF("fhnCorrelationPhiZRec","THnSparse with correlations",kNvarPhiZ,iBinPhiZ);
- for (int k=0; k<kNvarPhiZ; k++) {
- fhnCorrelationPhiZRec->SetBinEdges(k,binEdgesPhiZ[k]);
- }
- fhnCorrelationPhiZRec->Sumw2();
-
- for(Int_t ivar = 0; ivar < kNvarPhiZ; ivar++)
- delete [] binEdgesPhiZ[ivar];
-
}
void AliAnalysisTaskJetSpectrum2::Terminate(Option_t */*option*/)
fRPAngle=0;
// need to get this info from elsewhere??
- Double_t fFlatA[2] = {1,1};
- Double_t fFlatB[2] = {1,1};
-
Double_t fPsiRP =0,fDeltaPsiRP = 0;
TVector2 mQ,mQ1,mQ2;
- Float_t mQx=0, mQy=0;
+ Float_t mQx= fDeltaQxy[0], mQy=fDeltaQxy[1];
- Float_t mQx1=0, mQy1=0;
- Float_t mQx2=0, mQy2=0;
+ Float_t mQx1=fDeltaQxy[0], mQy1=fDeltaQxy[1];
+ Float_t mQx2=fDeltaQxy[0], mQy2=fDeltaQxy[1];
AliVParticle *track=0x0;
Int_t count[3]={0,0,0};
virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
virtual void SetEventSelectionMask(UInt_t i){fEventSelectionMask = i;}
virtual void SetPhiWeights(TH3F *phiw){fh3PhiWeights = phiw;}
+ virtual void SetFlatteningCoeff(Float_t *fA,Float_t *fB){
+ fFlatA[0] = fA[0];fFlatA[1] = fA[1];
+ fFlatA[0] = fB[0];fFlatB[1] = fB[1];
+ }
+ virtual void SetDeltaQxy(Float_t *fD){
+ fDeltaQxy[0] = fD[0];
+ fDeltaQxy[1] = fD[1];
+ }
virtual void SetNonStdFile(char* c){fNonStdFile = c;}
AliAODExtension *fAODExtension; //! where we take the jets from can be input or output AOD
THnSparseF *fhnJetContainer[kMaxStep*2]; //! like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same
THnSparseF *fhnCorrelation; //! response matrix for unfolding
- THnSparseF *fhnCorrelationPhiZRec; //! response matrix for unfolding in max Z rec bins
TF1 *f1PtScale; //! correction function to correct to the average true jet energy depending on p_T,rec
Float_t fDeltaPhiWindow; // minium angle between dijets
Float_t fCentrality; // ! centrality
Float_t fRPAngle; // ! RP angle of the reaction plane
+ Float_t fFlatA[2]; // flattening for RP
+ Float_t fFlatB[2]; // flattening for RP
+ Float_t fDeltaQxy[2]; // centering of QX QY
Int_t fMultRec; // ! reconstructed track multiplicity
Int_t fMultGen; // ! generated track multiplicity