]>
Commit | Line | Data |
---|---|---|
3b7aa4ba | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | //2- and 3-particle trigger particle correlation analysis | |
16 | //Author: Jason Glyndwr Ulery, ulery@uni-frankfurt.de | |
69088c96 | 17 | //version: 3.4, last revised: 2010/08/15 |
3b7aa4ba | 18 | |
19 | #include "Riostream.h" | |
d514944f | 20 | #include "TROOT.h" |
3b7aa4ba | 21 | #include "TChain.h" |
22 | #include "TTree.h" | |
23 | #include "TH1F.h" | |
24 | #include "TH2F.h" | |
25 | #include "TH3F.h" | |
26 | #include "TFormula.h" | |
27 | #include "TF1.h" | |
28 | #include "TF2.h" | |
29 | #include "TF3.h" | |
30 | #include "TVector3.h" | |
31 | #include "TMath.h" | |
d514944f | 32 | #include "TRandom3.h" |
33 | #include "TSystem.h" | |
3b7aa4ba | 34 | |
35 | ||
36 | #include "AliAnalysisTask.h" | |
d514944f | 37 | #include "AliAnalysisTaskSE.h" |
3b7aa4ba | 38 | #include "AliAnalysisManager.h" |
d514944f | 39 | #include "AliAnalysisTaskSE.h" |
3b7aa4ba | 40 | #include "AliESDEvent.h" |
41 | #include "AliESDInputHandler.h" | |
d514944f | 42 | #include "AliESDtrack.h" |
43 | #include "AliAODEvent.h" | |
44 | #include "AliAODHeader.h" | |
45 | #include "AliAODInputHandler.h" | |
46 | #include "AliAODTrack.h" | |
3b7aa4ba | 47 | #include "AliMCEvent.h" |
48 | #include "AliMCEventHandler.h" | |
49 | #include "AliMCParticle.h" | |
50 | #include "AliStack.h" | |
51 | #include "AliESDVertex.h" | |
52 | #include "AliMultiplicity.h" | |
d514944f | 53 | #include "AliESDVZERO.h" |
3b7aa4ba | 54 | #include "TParticle.h" |
d514944f | 55 | #include "AliCentrality.h" |
3b7aa4ba | 56 | |
57 | //#include "AliHeader.h" | |
58 | //#include "AliGenEventHeader.h" | |
59 | ||
60 | ||
61 | ||
62 | #include "AliAnalysisTaskDiHadron.h" | |
63 | ||
64 | ||
65 | ClassImp(AliAnalysisTaskDiHadron) | |
66 | ||
67 | //---------------------------------------- | |
68 | AliAnalysisTaskDiHadron::AliAnalysisTaskDiHadron(const char *name): | |
d514944f | 69 | AliAnalysisTaskSE(name), fESD(0), fAOD(0), fMC(0), fOutput(0),fMinClustersTPC(0),fMinClusterRatio(0),fMaxTPCchi2(0),fMinClustersITS(0),fEtaCut(0),fTrigEtaCut(0),fNearPhiCut(0),fXECut(0),fMaxDCA(0),fMaxDCAXY(0),fMaxDCAZ(0),fDCA2D(0),fTPCRefit(0),fITSRefit(0),fSPDCut(0),fMinPtAssoc(0),fMaxPtAssoc(0),fVzCut(0),fAODData(0),fEfficiencyCorr(0),fDEBUG(0),fnBinPhi(0),fnBinEta(0),fnBinPhiEtaPhi(0),fnBinPhiEtaEta(0),fnBinPhi3(0),fnBinEta3(0),fPi(3.1415926535898),fdPhiMin(0),fdPhiMax(0),fNTPtBins(0),fNMix(0),fNCentBins(0),fCentPercent(0),fNAPtBins(0),fNAPt3Bins(0),fNVertexBins(0),fNXEBins(0),fNIDs(0),fEffFitPt(0),fNFitLowParam(0),fNFitHighParam(0),fV2FitPt(0),fV3FitPt(0),fV4FitPt(0),fNFitLowParamV2(0),fNFitHighParamV2(0),fNFitLowParamV3(0),fNFitHighParamV3(0),fNFitLowParamV4(0),fNFitHighParamV4(0),fMCHistos(0),fFitLow(NULL),fFitHigh(NULL),fFitLowParam(NULL),fFitHighParam(NULL),fFitLowV2(NULL),fFitHighV2(NULL),fFitLowParamV2(NULL),fFitHighParamV2(NULL),fFitLowV3(NULL),fFitHighV3(NULL),fFitLowParamV3(NULL),fFitHighParamV3(NULL),fFitLowV4(NULL),fFitHighV4(NULL),fFitLowParamV4(NULL),fFitHighParamV4(NULL),fPtTrigArray(NULL),fPtAssocArray(NULL),fPtAssoc3Array1(NULL),fPtAssoc3Array2(NULL),fCentArrayMin(NULL),fCentArrayMax(NULL),fXEArray(NULL),fTrigIDArray(NULL),fSimulate(0),fSimNBgPart(0),fSimNJetPart(0),fSimNJet(0),fSimNEvents(0),ftPhi(NULL),ftEta(NULL),ftPt(NULL),ftCharge(NULL),ftEff(NULL),ftV2(NULL),ftV3(NULL),ftV4(NULL),ftPtAssoc3(NULL),ftNPtAssoc3(NULL) |
3b7aa4ba | 70 | |
71 | { | |
d514944f | 72 | //TRandom *gRandom=new TRandom3(); |
73 | ||
3b7aa4ba | 74 | //IO Slots |
75 | DefineInput(0, TChain::Class()); | |
76 | DefineOutput(0,TList::Class()); | |
77 | ||
78 | ||
79 | for(int c=0;c<fNCentBins;c++){ | |
80 | for(int v=0;v<fNVertexBins;v++){ | |
81 | for(int jmc=0;jmc<2;jmc++){ | |
d514944f | 82 | fMixPointer[c][v][jmc]=0; |
83 | fMixEnd[c][v][jmc]=0; | |
3b7aa4ba | 84 | for(int ievts=0;ievts<fNMix;ievts++){ |
85 | fMPt[ievts][c][v][jmc]=NULL; | |
86 | fMPhi[ievts][c][v][jmc]=NULL; | |
87 | fMEta[ievts][c][v][jmc]=NULL; | |
d514944f | 88 | fMCharge[ievts][c][v][jmc]=NULL; |
89 | fMEff[ievts][c][v][jmc]=NULL; | |
90 | fMV2[ievts][c][v][jmc]=NULL; | |
91 | fMV4[ievts][c][v][jmc]=NULL; | |
3b7aa4ba | 92 | for(int dd=0;dd<10;dd++)fMPtAssoc3[ievts][c][v][jmc][dd]=NULL; |
93 | fMNPtAssoc3[ievts][c][v][jmc]=NULL; | |
94 | fMixTrack[ievts][c][v][jmc]=0; | |
95 | } | |
96 | } | |
97 | } | |
98 | } | |
0f3a7491 | 99 | |
3b7aa4ba | 100 | } |
101 | //-------------------------------------- | |
69088c96 | 102 | void AliAnalysisTaskDiHadron::SetCuts(Int_t MinClustersTPC, Float_t MinClusterRatio, Float_t MaxTPCchi2, Int_t MinClustersITS, Float_t EtaCut, Float_t TrigEtaCut, Float_t NearPhiCut, Float_t XECut, Float_t MaxDCA, Float_t MaxDCAXY, Float_t MaxDCAZ, Int_t DCA2D, Int_t TPCRefit, Int_t ITSRefit, Int_t SPDCut, Float_t MinPtAssoc, Float_t MaxPtAssoc, Float_t VzCut, Int_t NIDs, const char * TrigIDArray){ |
103 | //Sets the varibles for track and event cuts | |
d514944f | 104 | if(fDEBUG)Printf("Setting Cuts"); |
3b7aa4ba | 105 | fMinClustersTPC=MinClustersTPC; |
106 | fMinClusterRatio=MinClusterRatio; | |
107 | fMaxTPCchi2=MaxTPCchi2; | |
108 | fMinClustersITS=MinClustersITS; | |
109 | fEtaCut=EtaCut; | |
110 | fTrigEtaCut=TrigEtaCut; | |
111 | fNearPhiCut=NearPhiCut; | |
112 | fXECut=XECut; | |
113 | fMaxDCA=MaxDCA; | |
114 | fMaxDCAXY=MaxDCAXY; | |
115 | fMaxDCAZ=MaxDCAZ; | |
116 | fDCA2D=DCA2D; | |
117 | fTPCRefit=TPCRefit; | |
118 | fITSRefit=ITSRefit; | |
119 | fSPDCut=SPDCut; | |
120 | fMinPtAssoc=MinPtAssoc; | |
121 | fMaxPtAssoc=MaxPtAssoc; | |
122 | fVzCut=VzCut; | |
123 | fNIDs=NIDs; | |
0f3a7491 | 124 | fTrigIDArray=(char*)TrigIDArray; |
3b7aa4ba | 125 | } |
126 | //-------------------------------------------------------- | |
d514944f | 127 | void AliAnalysisTaskDiHadron::SetOptions(Int_t AODData, Int_t EfficiencyCorr, Int_t ffDEBUG, Int_t MCHistos){ |
69088c96 | 128 | //Sets some options |
d514944f | 129 | if(fDEBUG) Printf("Setting Options"); |
130 | fAODData=AODData; | |
3b7aa4ba | 131 | fEfficiencyCorr=EfficiencyCorr; |
69088c96 | 132 | fDEBUG=ffDEBUG; |
3b7aa4ba | 133 | fMCHistos=MCHistos; |
3b7aa4ba | 134 | } |
135 | //------------------------------------------------------ | |
d514944f | 136 | void AliAnalysisTaskDiHadron::SetBins(Int_t nBinPhi, Int_t nBinEta, Int_t nBinPhiEtaPhi, Int_t nBinPhiEtaEta, Int_t nBinPhi3, Int_t nBinEta3,Float_t dPhiMin, Float_t dPhiMax, Int_t NTPtBins, Int_t NMixBins, Int_t NCentBins, Int_t CentPercent, Int_t NAPtBins, Int_t NAPt3Bins, Int_t NVertexBins, Int_t NXEBins,Float_t *PtTrigArray, Float_t *PtAssocArray,Float_t *PtAssoc3Array1, Float_t *PtAssoc3Array2, Int_t *CentArrayMin, Int_t *CentArrayMax, Float_t *XEArray){ |
69088c96 | 137 | //sets up the histogram binning |
d514944f | 138 | if(fDEBUG)Printf("Setting Binning"); |
3b7aa4ba | 139 | fnBinPhi=nBinPhi; |
140 | fnBinEta=nBinEta; | |
141 | fnBinPhiEtaPhi=nBinPhiEtaPhi; | |
142 | fnBinPhiEtaEta=nBinPhiEtaEta; | |
143 | fnBinPhi3=nBinPhi3; | |
144 | fnBinEta3=nBinEta3; | |
145 | fdPhiMin=dPhiMin; | |
146 | fdPhiMax=dPhiMax; | |
147 | fNTPtBins=NTPtBins; | |
148 | fNMix=NMixBins; | |
149 | fNCentBins=NCentBins; | |
d514944f | 150 | fCentPercent=CentPercent; |
3b7aa4ba | 151 | fNAPtBins=NAPtBins; |
152 | fNAPt3Bins=NAPt3Bins; | |
153 | fNVertexBins=NVertexBins; | |
154 | fNXEBins=NXEBins; | |
0f3a7491 | 155 | fPtTrigArray=new Float_t [fNTPtBins]; |
156 | for(int i=0;i<fNTPtBins;i++)fPtTrigArray[i]=PtTrigArray[i]; | |
157 | fPtAssocArray=new Float_t [fNAPtBins]; | |
d514944f | 158 | for(int i=0;i<=fNAPtBins;i++)fPtAssocArray[i]=PtAssocArray[i]; |
0f3a7491 | 159 | fPtAssoc3Array1=new Float_t [fNAPt3Bins]; |
160 | for(int i=0;i<fNAPt3Bins;i++)fPtAssoc3Array1[i]=PtAssoc3Array1[i]; | |
161 | fPtAssoc3Array2=new Float_t [fNAPt3Bins]; | |
162 | for(int i=0;i<fNAPt3Bins;i++)fPtAssoc3Array2[i]=PtAssoc3Array2[i]; | |
163 | fCentArrayMin=new Int_t [fNCentBins]; | |
164 | for(int i=0;i<NCentBins;i++)fCentArrayMin[i]=CentArrayMin[i]; | |
165 | fCentArrayMax=new Int_t [fNCentBins]; | |
166 | for(int i=0;i<NCentBins;i++)fCentArrayMax[i]=CentArrayMax[i]; | |
167 | fXEArray=new Float_t [fNXEBins]; | |
168 | for(int i=0;i<fNXEBins;i++)fXEArray[i]=XEArray[i]; | |
3b7aa4ba | 169 | for(int i=0;i<=fNVertexBins;i++)fVertexArray[i]=(2.*i/fNVertexBins-1)*fVzCut; |
3b7aa4ba | 170 | } |
171 | //------------------------------------------------------- | |
69088c96 | 172 | void AliAnalysisTaskDiHadron::SetEfficiencies(Float_t EffFitPt, const TF1 *FitLow, const TF1 *FitHigh, Int_t NFitLowParam, Int_t NFitHighParam, Float_t *FitLowParam, Float_t *FitHighParam){ |
173 | //Sets up the efficiency corrections | |
d514944f | 174 | if(fDEBUG)Printf("Setting Efficiencies"); |
3b7aa4ba | 175 | fEffFitPt=EffFitPt; |
176 | fFitLow=(TF1*)FitLow; | |
177 | fFitHigh=(TF1*)FitHigh; | |
178 | fNFitLowParam=NFitLowParam; | |
179 | fNFitHighParam=NFitHighParam; | |
0f3a7491 | 180 | fFitLowParam=new Float_t [fNFitLowParam*fNCentBins]; |
181 | for(int i=0;i<fNFitLowParam*fNCentBins;i++)fFitLowParam[i]=FitLowParam[i]; | |
182 | fFitHighParam=new Float_t [fNFitHighParam*fNCentBins]; | |
183 | for(int i=0;i<fNFitHighParam*fNCentBins;i++)fFitHighParam[i]=FitHighParam[i]; | |
3b7aa4ba | 184 | } |
d514944f | 185 | //----------------------------------------------------------- |
186 | void AliAnalysisTaskDiHadron::SetFlow(Float_t V2FitPt, Float_t V3FitPt, Float_t V4FitPt, const TF1 *FitLowV2, const TF1 *FitHighV2, const TF1 *FitLowV3, const TF1 *FitHighV3, const TF1 *FitLowV4, const TF1 *FitHighV4, Int_t NFitLowParamV2, Int_t NFitHighParamV2, Int_t NFitLowParamV3, Int_t NFitHighParamV3, Int_t NFitLowParamV4, Int_t NFitHighParamV4, Float_t *FitLowParamV2, Float_t *FitHighParamV2, Float_t *FitLowParamV3, Float_t *FitHighParamV3, Float_t *FitLowParamV4, Float_t *FitHighParamV4){ | |
187 | if(fDEBUG)Printf("Setting Flow"); | |
188 | fV2FitPt=V2FitPt; | |
189 | fV3FitPt=V3FitPt; | |
190 | fV4FitPt=V4FitPt; | |
191 | fFitLowV2=(TF1*)FitLowV2; | |
192 | fFitHighV2=(TF1*)FitHighV2; | |
193 | fFitLowV3=(TF1*)FitLowV3; | |
194 | fFitHighV3=(TF1*)FitHighV3; | |
195 | fFitLowV4=(TF1*)FitLowV4; | |
196 | fFitHighV4=(TF1*)FitHighV4; | |
197 | fNFitLowParamV2=NFitLowParamV2; | |
198 | fNFitHighParamV2=NFitHighParamV2; | |
199 | fNFitLowParamV3=NFitLowParamV3; | |
200 | fNFitHighParamV3=NFitHighParamV3; | |
201 | fNFitLowParamV4=NFitLowParamV4; | |
202 | fNFitHighParamV4=NFitHighParamV4; | |
203 | ||
204 | fFitLowParamV2=new Float_t [fNFitLowParamV2*fNCentBins]; | |
205 | for(int i=0;i<fNFitLowParamV2*fNCentBins;i++)fFitLowParamV2[i]=FitLowParamV2[i]; | |
206 | fFitHighParamV2=new Float_t [fNFitHighParamV2*fNCentBins]; | |
207 | for(int i=0;i<fNFitHighParamV2*fNCentBins;i++)fFitHighParamV2[i]=FitHighParamV2[i]; | |
208 | ||
209 | fFitLowParamV3=new Float_t [fNFitLowParamV3*fNCentBins]; | |
210 | for(int i=0;i<fNFitLowParamV3*fNCentBins;i++)fFitLowParamV3[i]=FitLowParamV3[i]; | |
211 | fFitHighParamV3=new Float_t [fNFitHighParamV3*fNCentBins]; | |
212 | for(int i=0;i<fNFitHighParamV3*fNCentBins;i++)fFitHighParamV3[i]=FitHighParamV3[i]; | |
213 | ||
214 | fFitLowParamV4=new Float_t [fNFitLowParamV4*fNCentBins]; | |
215 | for(int i=0;i<fNFitLowParamV4*fNCentBins;i++)fFitLowParamV4[i]=FitLowParamV4[i]; | |
216 | fFitHighParamV4=new Float_t [fNFitHighParamV4*fNCentBins]; | |
217 | for(int i=0;i<fNFitHighParamV4*fNCentBins;i++)fFitHighParamV4[i]=FitHighParamV4[i]; | |
218 | if(fDEBUG)Printf("FlowSet"); | |
219 | } | |
220 | //---------------------------------------------------------- | |
221 | void AliAnalysisTaskDiHadron::SetSimulation(Int_t Simulate, Float_t SimNBgPart, Float_t SimNJetPart, Float_t SimNJet, Int_t SimNEvents){ | |
222 | fSimulate=Simulate; | |
223 | fSimNBgPart=SimNBgPart; | |
224 | fSimNJetPart=SimNJetPart; | |
225 | fSimNJet=SimNJet; | |
226 | fSimNEvents=SimNEvents; | |
3b7aa4ba | 227 | |
d514944f | 228 | } |
229 | ||
3b7aa4ba | 230 | //----------------------------------------------------------- |
231 | void AliAnalysisTaskDiHadron::ConnectInputData(Option_t *){ | |
232 | //Connect to ESD | |
69088c96 | 233 | if(fDEBUG)Printf("Connecting"); |
3b7aa4ba | 234 | TTree* tree = dynamic_cast<TTree*> (GetInputData(0)); |
69088c96 | 235 | if (!tree&&fDEBUG) {Printf("ERROR: Could not read chain from input slot 0");} |
3b7aa4ba | 236 | else { |
d514944f | 237 | if(!fAODData){ |
238 | AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); | |
239 | if (!esdH){if(fDEBUG) Printf("ERROR: Could not get ESDInputHandler");} | |
240 | else fESD = esdH->GetEvent(); | |
00596b83 | 241 | } |
d514944f | 242 | else{ |
243 | AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); | |
244 | if (!aodH) { | |
245 | Printf("ERROR: Could not get AODInputHandler"); | |
246 | } | |
247 | else{ | |
248 | fAOD = aodH->GetEvent(); | |
249 | } | |
00596b83 | 250 | } |
3b7aa4ba | 251 | //MC Data handler (so one can calcualte eff) |
252 | AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler()); | |
253 | if(mcH)fMC=mcH->MCEvent(); | |
254 | } | |
d514944f | 255 | if(fDEBUG)Printf("Connected"); |
3b7aa4ba | 256 | } |
257 | ||
258 | //--------------------------------------------------------- | |
259 | void AliAnalysisTaskDiHadron::CreateOutputObjects(){ | |
3b7aa4ba | 260 | //Creates the histograms and list |
69088c96 | 261 | if(fDEBUG)Printf("Output"); |
3b7aa4ba | 262 | fOutput=new TList(); |
263 | fOutput->SetName(GetName()); | |
d514944f | 264 | char histname[300]; |
265 | char histtitle[300]; | |
3b7aa4ba | 266 | int nptbins=fNAPtBins; |
267 | int lptbins=0; | |
a4e1e779 | 268 | const char *cmc1[2]={"","_MC"}; |
269 | const char *cmc2[2]={""," MC"}; | |
270 | const char *sign1[3]={"","_LS","_ULS"}; | |
271 | const char *sign2[3]={""," Like-Sign"," Unlike-Sign"}; | |
272 | const char *sign31[4]={"","_LS","_ULT","_ULA"}; | |
273 | const char *sign32[4]={""," Like-Sign"," Trigger-Diff"," Assoc-Diff"}; | |
69088c96 | 274 | Float_t etaEdge=fEtaCut+fTrigEtaCut; |
275 | Float_t phiArray[fnBinPhi+1]; | |
276 | Float_t etaArray[fnBinEta+1]; | |
277 | Float_t phiEtaArrayPhi[fnBinPhiEtaPhi+1]; | |
278 | Float_t phiEtaArrayEta[fnBinPhiEtaEta+1]; | |
d514944f | 279 | Int_t BufferSize=256; |
3b7aa4ba | 280 | for(int iphi=0;iphi<=fnBinPhi;iphi++){ |
69088c96 | 281 | phiArray[iphi]=fdPhiMin+iphi*2*fPi/fnBinPhi; |
3b7aa4ba | 282 | } |
283 | for(int ieta=0;ieta<=fnBinEta;ieta++){ | |
69088c96 | 284 | etaArray[ieta]=-etaEdge+ieta*2*etaEdge/fnBinEta; |
3b7aa4ba | 285 | } |
286 | for(int iphi=0;iphi<=fnBinPhiEtaPhi;iphi++){ | |
69088c96 | 287 | phiEtaArrayPhi[iphi]=fdPhiMin+iphi*2*fPi/fnBinPhiEtaPhi; |
3b7aa4ba | 288 | } |
289 | for(int ieta=0;ieta<=fnBinPhiEtaEta;ieta++){ | |
69088c96 | 290 | phiEtaArrayEta[ieta]=-etaEdge+ieta*2*etaEdge/fnBinPhiEtaEta; |
3b7aa4ba | 291 | } |
292 | for(int imc=0;imc<=1;imc++){//MC loop | |
293 | if(imc==1&&!fMCHistos) continue; | |
294 | //Create the histograms | |
d514944f | 295 | snprintf(histname,BufferSize,"fHistMult%s",cmc1[imc]); |
296 | snprintf(histtitle,BufferSize,"Multiplicity%s",cmc2[imc]); | |
3b7aa4ba | 297 | fHistMult[imc]=new TH1F(histname,histtitle,2000,-0.5,1999.5); |
298 | fHistMult[imc]->Sumw2(); | |
299 | fHistMult[imc]->GetXaxis()->SetTitle("Number of tracks"); | |
300 | fHistMult[imc]->GetYaxis()->SetTitle("Counts"); | |
301 | fOutput->Add(fHistMult[imc]); | |
302 | ||
303 | for(int imult=0;imult<fNCentBins;imult++){//loop for multiplicity bins | |
304 | ||
305 | //Histograms that are independent of the trigger | |
d514944f | 306 | snprintf(histname,BufferSize,"fHistPt_C%d%s",imult,cmc1[imc]); |
307 | snprintf(histtitle,BufferSize,"P_{T} Distribution of Tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 308 | fHistPt[imult][imc]=new TH1F(histname,histtitle,nptbins,fPtAssocArray); |
309 | fHistPt[imult][imc]->Sumw2(); | |
310 | fHistPt[imult][imc]->GetXaxis()->SetTitle("p_{T}"); | |
311 | fHistPt[imult][imc]->GetYaxis()->SetTitle("Counts"); | |
312 | fOutput->Add(fHistPt[imult][imc]); | |
313 | ||
d514944f | 314 | //Histograms that are independent of the trigger |
315 | snprintf(histname,BufferSize,"fHistPtEff_C%d%s",imult,cmc1[imc]); | |
316 | snprintf(histtitle,BufferSize,"P_{T} Distribution of Tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 317 | fHistPtEff[imult][imc]=new TH1F(histname,histtitle,1000,0,100); |
318 | fHistPtEff[imult][imc]->Sumw2(); | |
319 | fHistPtEff[imult][imc]->GetXaxis()->SetTitle("p_{T}"); | |
320 | fHistPtEff[imult][imc]->GetYaxis()->SetTitle("Counts"); | |
321 | fOutput->Add(fHistPtEff[imult][imc]); | |
322 | ||
d514944f | 323 | snprintf(histname,BufferSize,"fHistPhi_C%d%s",imult,cmc1[imc]); |
324 | snprintf(histtitle,BufferSize,"#phi Distribution of Tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 325 | fHistPhi[imult][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,nptbins,fPtAssocArray); |
3b7aa4ba | 326 | fHistPhi[imult][imc]->Sumw2(); |
327 | fHistPhi[imult][imc]->GetXaxis()->SetTitle("#phi"); | |
328 | fHistPhi[imult][imc]->GetYaxis()->SetTitle("P_{T}"); | |
329 | fOutput->Add(fHistPhi[imult][imc]); | |
330 | ||
d514944f | 331 | snprintf(histname,BufferSize,"fHistPhiPt_C%d%s",imult,cmc1[imc]); |
332 | snprintf(histtitle,BufferSize,"P_{T} weighted #phi Distribution of tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 333 | fHistPhiPt[imult][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,nptbins,fPtAssocArray); |
3b7aa4ba | 334 | fHistPhiPt[imult][imc]->Sumw2(); |
335 | fHistPhiPt[imult][imc]->GetXaxis()->SetTitle("#phi"); | |
336 | fHistPhiPt[imult][imc]->GetYaxis()->SetTitle("P_{T}"); | |
337 | fOutput->Add(fHistPhiPt[imult][imc]); | |
338 | ||
d514944f | 339 | snprintf(histname,BufferSize,"fHistEta_C%d%s",imult,cmc1[imc]); |
340 | snprintf(histtitle,BufferSize,"#eta Distribution of Tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 341 | fHistEta[imult][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,nptbins,fPtAssocArray); |
3b7aa4ba | 342 | fHistEta[imult][imc]->Sumw2(); |
343 | fHistEta[imult][imc]->GetXaxis()->SetTitle("#eta"); | |
344 | fHistEta[imult][imc]->GetYaxis()->SetTitle("P_{T}"); | |
345 | fOutput->Add(fHistEta[imult][imc]); | |
346 | ||
d514944f | 347 | snprintf(histname,BufferSize,"fHistEtaPt_C%d%s",imult,cmc1[imc]); |
348 | snprintf(histtitle,BufferSize,"P_{T} weighted #eta Distribution of tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 349 | fHistEtaPt[imult][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,nptbins,fPtAssocArray); |
3b7aa4ba | 350 | fHistEtaPt[imult][imc]->Sumw2(); |
351 | fHistEtaPt[imult][imc]->GetXaxis()->SetTitle("#eta"); | |
352 | fHistEtaPt[imult][imc]->GetYaxis()->SetTitle("P_{T}"); | |
353 | fOutput->Add(fHistEtaPt[imult][imc]); | |
354 | ||
d514944f | 355 | snprintf(histname,BufferSize,"fHistNEvents_C%d%s",imult,cmc1[imc]); |
356 | snprintf(histtitle,BufferSize,"Number of Events and Number Passing Cuts %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 357 | fHistNEvents[imult][imc]=new TH1F(histname,histtitle,2,-0.5,1.5); |
358 | fHistNEvents[imult][imc]->Sumw2(); | |
359 | fHistNEvents[imult][imc]->GetXaxis()->SetTitle("Events,Passing Cuts"); | |
360 | fHistNEvents[imult][imc]->GetYaxis()->SetTitle("Number of Events"); | |
361 | fOutput->Add(fHistNEvents[imult][imc]); | |
362 | ||
d514944f | 363 | snprintf(histname,BufferSize,"fHistNTrigger_C%d%s",imult,cmc1[imc]); |
364 | snprintf(histtitle,BufferSize,"Number of Triggers %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 365 | fHistNTrigger[imult][imc]=new TH1F(histname,histtitle,fNTPtBins,-0.5,fNTPtBins-0.5); |
366 | fHistNTrigger[imult][imc]->Sumw2(); | |
367 | fHistNTrigger[imult][imc]->GetXaxis()->SetTitle("Trigger Number"); | |
368 | fHistNTrigger[imult][imc]->GetYaxis()->SetTitle("Number of Triggers"); | |
369 | fOutput->Add(fHistNTrigger[imult][imc]); | |
370 | ||
d514944f | 371 | snprintf(histname,BufferSize,"fHistNTriggerPt_C%d%s",imult,cmc1[imc]); |
372 | snprintf(histtitle,BufferSize,"P_{T} Weighted Number of Triggers %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 373 | fHistNTriggerPt[imult][imc]=new TH1F(histname,histtitle,fNTPtBins,-0.5,fNTPtBins-0.5); |
374 | fHistNTriggerPt[imult][imc]->Sumw2(); | |
375 | fHistNTriggerPt[imult][imc]->GetXaxis()->SetTitle("Trigger Number"); | |
376 | fHistNTriggerPt[imult][imc]->GetYaxis()->SetTitle("Number of Triggers"); | |
377 | fOutput->Add(fHistNTriggerPt[imult][imc]); | |
378 | ||
d514944f | 379 | snprintf(histname,BufferSize,"fHistNMix_C%d%s",imult,cmc1[imc]); |
380 | snprintf(histtitle,BufferSize,"Number of Mixed Events %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 381 | fHistNMix[imult][imc]=new TH1F(histname,histtitle,fNTPtBins,-0.5,fNTPtBins-0.5); |
382 | fHistNMix[imult][imc]->Sumw2(); | |
383 | fHistNMix[imult][imc]->GetXaxis()->SetTitle("Trigger Number"); | |
384 | fHistNMix[imult][imc]->GetYaxis()->SetTitle("Number of Mixed Events"); | |
385 | fOutput->Add(fHistNMix[imult][imc]); | |
386 | ||
d514944f | 387 | snprintf(histname,BufferSize,"fHistPhiEta_C%d%s",imult,cmc1[imc]); |
388 | snprintf(histtitle,BufferSize,"#phi-#eta distribution of tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 389 | fHistPhiEta[imult][imc]=new TH3F(histname, histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,nptbins,fPtAssocArray); |
3b7aa4ba | 390 | fHistPhiEta[imult][imc]->Sumw2(); |
391 | fHistPhiEta[imult][imc]->GetXaxis()->SetTitle("#phi"); | |
392 | fHistPhiEta[imult][imc]->GetYaxis()->SetTitle("#eta"); | |
393 | fHistPhiEta[imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
394 | fOutput->Add(fHistPhiEta[imult][imc]); | |
395 | ||
d514944f | 396 | snprintf(histname,BufferSize,"fHistPhiEtaPt_C%d%s",imult,cmc1[imc]); |
397 | snprintf(histtitle,BufferSize,"Pt Weighted #phi-#eta distribution of tracks %dMult%d%s",fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 398 | fHistPhiEtaPt[imult][imc]=new TH3F(histname, histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,nptbins,fPtAssocArray); |
3b7aa4ba | 399 | fHistPhiEtaPt[imult][imc]->Sumw2(); |
400 | fHistPhiEtaPt[imult][imc]->GetXaxis()->SetTitle("#phi"); | |
401 | fHistPhiEtaPt[imult][imc]->GetYaxis()->SetTitle("#eta"); | |
402 | fHistPhiEtaPt[imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
403 | fOutput->Add(fHistPhiEtaPt[imult][imc]); | |
404 | ||
69088c96 | 405 | //if(fDEBUG)Printf("OutPut2"); |
3b7aa4ba | 406 | //Histograms with a trigger dependence |
407 | ||
408 | for(int i=0;i<fNTPtBins;i++){ | |
409 | for(int j=1;j<fNAPtBins;j++){ | |
69088c96 | 410 | if(fabs(fPtTrigArray[i]-fPtAssocArray[j])<1E-5)lptbins=j; |
3b7aa4ba | 411 | } |
69088c96 | 412 | //if(fDEBUG)Printf("Loop: %d Pt %3.2f",i,fPtTrigArray[i]/fPtBinWidth); |
3b7aa4ba | 413 | |
414 | //Ones with no centrality binning | |
415 | if(imult==0){ | |
d514944f | 416 | snprintf(histname,BufferSize,"fHistMultTrig_P%d%s",i,cmc1[imc]); |
417 | snprintf(histtitle,BufferSize,"Distrubition of number of tracks in triggered events with %3.1f<p_{T}^{Trig}<%3.1f%s",fPtTrigArray[i],fPtTrigArray[i+1],cmc2[imc]); | |
3b7aa4ba | 418 | fHistMultTrig[i][imc]=new TH1F(histname,histtitle,2000,0,2000); |
419 | fHistMultTrig[i][imc]->Sumw2(); | |
420 | fHistMultTrig[i][imc]->GetXaxis()->SetTitle("Number of Tracks"); | |
421 | fHistMultTrig[i][imc]->GetYaxis()->SetTitle("Counts"); | |
422 | fOutput->Add(fHistMultTrig[i][imc]); | |
423 | } | |
d514944f | 424 | snprintf(histname,BufferSize,"fHistPtTrig_P%d_C%d%s",i,imult,cmc1[imc]); |
425 | snprintf(histtitle,BufferSize,"P_{T} distribution in triggered events with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 426 | fHistPtTrig[i][imult][imc]=new TH1F(histname,histtitle,nptbins,fPtAssocArray); |
427 | fHistPtTrig[i][imult][imc]->Sumw2(); | |
428 | fHistPtTrig[i][imult][imc]->GetXaxis()->SetTitle("p_{T}"); | |
429 | fHistPtTrig[i][imult][imc]->GetYaxis()->SetTitle("Counts"); | |
430 | fOutput->Add(fHistPtTrig[i][imult][imc]); | |
431 | ||
d514944f | 432 | snprintf(histname,BufferSize,"fHistPhiTrig_P%d_C%d%s",i,imult,cmc1[imc]); |
433 | snprintf(histtitle,BufferSize,"Phi Distribution of triggered events with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 434 | fHistPhiTrig[i][imult][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 435 | fHistPhiTrig[i][imult][imc]->Sumw2(); |
436 | fHistPhiTrig[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
437 | fHistPhiTrig[i][imult][imc]->GetYaxis()->SetTitle("p_{T}"); | |
438 | fOutput->Add(fHistPhiTrig[i][imult][imc]); | |
439 | ||
d514944f | 440 | snprintf(histname,BufferSize,"fHistPhiTrigPt_P%d_C%d%s",i,imult,cmc1[imc]); |
441 | snprintf(histtitle,BufferSize,"P_{T} Weighted Phi Distribution of triggered events with %3.1f<p_{T}^{Trig}<%3.1f%s",fPtTrigArray[i],fPtTrigArray[i+1],cmc2[imc]); | |
69088c96 | 442 | fHistPhiTrigPt[i][imult][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 443 | fHistPhiTrigPt[i][imult][imc]->Sumw2(); |
444 | fHistPhiTrigPt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
445 | fHistPhiTrigPt[i][imult][imc]->GetYaxis()->SetTitle("p_{T}"); | |
446 | fOutput->Add(fHistPhiTrigPt[i][imult][imc]); | |
447 | ||
d514944f | 448 | snprintf(histname,BufferSize,"fHistEtaTrig_P%d_C%d%s",i,imult,cmc1[imc]); |
449 | snprintf(histtitle,BufferSize,"Eta Distribution of triggered events with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 450 | fHistEtaTrig[i][imult][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 451 | fHistEtaTrig[i][imult][imc]->Sumw2(); |
452 | fHistEtaTrig[i][imult][imc]->GetXaxis()->SetTitle("#eta"); | |
453 | fHistEtaTrig[i][imult][imc]->GetYaxis()->SetTitle("p_{T}"); | |
454 | fOutput->Add(fHistEtaTrig[i][imult][imc]); | |
455 | ||
d514944f | 456 | snprintf(histname,BufferSize,"fHistEtaTrigPt_P%d_C%d%s",i,imult,cmc1[imc]); |
457 | snprintf(histtitle,BufferSize,"P_{T} Weighted Eta Distribution of triggered events with %3.1f<p_{T}^{Trig}<%3.1f%s",fPtTrigArray[i],fPtTrigArray[i+1],cmc2[imc]); | |
69088c96 | 458 | fHistEtaTrigPt[i][imult][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 459 | fHistEtaTrigPt[i][imult][imc]->Sumw2(); |
460 | fHistEtaTrigPt[i][imult][imc]->GetXaxis()->SetTitle("#eta"); | |
461 | fHistEtaTrigPt[i][imult][imc]->GetYaxis()->SetTitle("p_{T}"); | |
462 | fOutput->Add(fHistEtaTrigPt[i][imult][imc]); | |
463 | ||
d514944f | 464 | snprintf(histname,BufferSize,"fHistPhiEtaTrig_P%d_C%d%s",i,imult,cmc1[imc]); |
465 | snprintf(histtitle,BufferSize,"#phi-#eta distribution in triggered events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 466 | fHistPhiEtaTrig[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 467 | fHistPhiEtaTrig[i][imult][imc]->Sumw2(); |
468 | fHistPhiEtaTrig[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
469 | fHistPhiEtaTrig[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
470 | fHistPhiEtaTrig[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
471 | fOutput->Add(fHistPhiEtaTrig[i][imult][imc]); | |
472 | ||
d514944f | 473 | snprintf(histname,BufferSize,"fHistXEN_P%d_C%d%s",i,imult,cmc1[imc]); |
474 | snprintf(histtitle,BufferSize,"Near-Side X_{E} distribution for %3.1f<p_{T}^{Lead}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 475 | fHistXEN[i][imult][imc]=new TH1F(histname,histtitle,fNXEBins,fXEArray); |
476 | fHistXEN[i][imult][imc]->Sumw2(); | |
477 | fHistXEN[i][imult][imc]->GetXaxis()->SetTitle("X_{E}"); | |
478 | fOutput->Add(fHistXEN[i][imult][imc]); | |
479 | ||
d514944f | 480 | snprintf(histname,BufferSize,"fHistXENMixed_P%d_C%d%s",i,imult,cmc1[imc]); |
481 | snprintf(histtitle,BufferSize,"Mixed Near-Side X_{E} distribution for %3.1f<p_{T}^{Lead}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 482 | fHistXENMix[i][imult][imc]=new TH1F(histname,histtitle,fNXEBins,fXEArray); |
483 | fHistXENMix[i][imult][imc]->Sumw2(); | |
484 | fHistXENMix[i][imult][imc]->GetXaxis()->SetTitle("X_{E}"); | |
485 | fOutput->Add(fHistXENMix[i][imult][imc]); | |
486 | ||
d514944f | 487 | snprintf(histname,BufferSize,"fHistXEA_P%d_C%d%s",i,imult,cmc1[imc]); |
488 | snprintf(histtitle,BufferSize,"Away-Side X_{E} distribution for %3.1f<p_{T}^{Lead}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 489 | fHistXEA[i][imult][imc]=new TH1F(histname,histtitle,fNXEBins,fXEArray); |
490 | fHistXEA[i][imult][imc]->Sumw2(); | |
491 | fHistXEA[i][imult][imc]->GetXaxis()->SetTitle("X_{E}"); | |
492 | fOutput->Add(fHistXEA[i][imult][imc]); | |
493 | ||
d514944f | 494 | snprintf(histname,BufferSize,"fHistXEAMixed_P%d_C%d%s",i,imult,cmc1[imc]); |
495 | snprintf(histtitle,BufferSize,"Mixed Away-Side X_{E} distribution for %3.1f<p_{T}^{Lead}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
3b7aa4ba | 496 | fHistXEAMix[i][imult][imc]=new TH1F(histname,histtitle,fNXEBins,fXEArray); |
497 | fHistXEAMix[i][imult][imc]->Sumw2(); | |
498 | fHistXEAMix[i][imult][imc]->GetXaxis()->SetTitle("X_{E}"); | |
499 | fOutput->Add(fHistXEAMix[i][imult][imc]); | |
500 | ||
501 | //signloop | |
502 | for(int isign=0;isign<3;isign++){ | |
d514944f | 503 | snprintf(histname,BufferSize,"fHistDeltaPhi_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
504 | snprintf(histtitle,BufferSize,"#Delta#phi Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 505 | fHistDeltaPhi[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 506 | fHistDeltaPhi[i][imult][isign][imc]->Sumw2(); |
507 | fHistDeltaPhi[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
508 | fHistDeltaPhi[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
509 | fOutput->Add(fHistDeltaPhi[i][imult][isign][imc]); | |
510 | ||
d514944f | 511 | snprintf(histname,BufferSize,"fHistDeltaPhiPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
512 | snprintf(histtitle,BufferSize,"P_{T} Weighted #Delta#phi Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 513 | fHistDeltaPhiPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 514 | fHistDeltaPhiPt[i][imult][isign][imc]->Sumw2(); |
515 | fHistDeltaPhiPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
516 | fHistDeltaPhiPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
517 | fOutput->Add(fHistDeltaPhiPt[i][imult][isign][imc]); | |
518 | ||
d514944f | 519 | snprintf(histname,BufferSize,"fHistDeltaPhiMix_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
520 | snprintf(histtitle,BufferSize,"#Delta#phi Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 521 | fHistDeltaPhiMix[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 522 | fHistDeltaPhiMix[i][imult][isign][imc]->Sumw2(); |
523 | fHistDeltaPhiMix[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
524 | fHistDeltaPhiMix[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
525 | fOutput->Add(fHistDeltaPhiMix[i][imult][isign][imc]); | |
d514944f | 526 | |
527 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV2_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
528 | snprintf(histtitle,BufferSize,"#Delta#phi Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
529 | fHistDeltaPhiMixV2[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
530 | fHistDeltaPhiMixV2[i][imult][isign][imc]->Sumw2(); | |
531 | fHistDeltaPhiMixV2[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
532 | fHistDeltaPhiMixV2[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
533 | fOutput->Add(fHistDeltaPhiMixV2[i][imult][isign][imc]); | |
534 | ||
535 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV3_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
536 | snprintf(histtitle,BufferSize,"#Delta#phi Mixed Event V3 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
537 | fHistDeltaPhiMixV3[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
538 | fHistDeltaPhiMixV3[i][imult][isign][imc]->Sumw2(); | |
539 | fHistDeltaPhiMixV3[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
540 | fHistDeltaPhiMixV3[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
541 | fOutput->Add(fHistDeltaPhiMixV3[i][imult][isign][imc]); | |
542 | ||
543 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV4_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
544 | snprintf(histtitle,BufferSize,"#Delta#phi Mixed Event V4 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
545 | fHistDeltaPhiMixV4[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
546 | fHistDeltaPhiMixV4[i][imult][isign][imc]->Sumw2(); | |
547 | fHistDeltaPhiMixV4[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
548 | fHistDeltaPhiMixV4[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
549 | fOutput->Add(fHistDeltaPhiMixV4[i][imult][isign][imc]); | |
3b7aa4ba | 550 | |
d514944f | 551 | snprintf(histname,BufferSize,"fHistDeltaPhiMixPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
552 | snprintf(histtitle,BufferSize,"P_{T} Weighted #Delta#phi Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 553 | fHistDeltaPhiMixPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); |
3b7aa4ba | 554 | fHistDeltaPhiMixPt[i][imult][isign][imc]->Sumw2(); |
555 | fHistDeltaPhiMixPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
556 | fHistDeltaPhiMixPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
557 | fOutput->Add(fHistDeltaPhiMixPt[i][imult][isign][imc]); | |
d514944f | 558 | |
559 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV2Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
560 | snprintf(histtitle,BufferSize,"P_{T} Weighted #Delta#phi Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
561 | fHistDeltaPhiMixV2Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
562 | fHistDeltaPhiMixV2Pt[i][imult][isign][imc]->Sumw2(); | |
563 | fHistDeltaPhiMixV2Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
564 | fHistDeltaPhiMixV2Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
565 | fOutput->Add(fHistDeltaPhiMixV2Pt[i][imult][isign][imc]); | |
566 | ||
567 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV3Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
568 | snprintf(histtitle,BufferSize,"P_{T} Weighted #Delta#phi Mixed Event V3 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
569 | fHistDeltaPhiMixV3Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
570 | fHistDeltaPhiMixV3Pt[i][imult][isign][imc]->Sumw2(); | |
571 | fHistDeltaPhiMixV3Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
572 | fHistDeltaPhiMixV3Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
573 | fOutput->Add(fHistDeltaPhiMixV3Pt[i][imult][isign][imc]); | |
3b7aa4ba | 574 | |
d514944f | 575 | snprintf(histname,BufferSize,"fHistDeltaPhiMixV4Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
576 | snprintf(histtitle,BufferSize,"P_{T} Weighted #Delta#phi Mixed Event V4 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
577 | fHistDeltaPhiMixV4Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinPhi,phiArray,lptbins,fPtAssocArray); | |
578 | fHistDeltaPhiMixV4Pt[i][imult][isign][imc]->Sumw2(); | |
579 | fHistDeltaPhiMixV4Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#phi"); | |
580 | fHistDeltaPhiMixV4Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
581 | fOutput->Add(fHistDeltaPhiMixV4Pt[i][imult][isign][imc]); | |
582 | ||
583 | ||
3b7aa4ba | 584 | //etaNear |
d514944f | 585 | snprintf(histname,BufferSize,"fHistDeltaEtaN_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
586 | snprintf(histtitle,BufferSize,"Near-Side #Delta#eta Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 587 | fHistDeltaEtaN[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 588 | fHistDeltaEtaN[i][imult][isign][imc]->Sumw2(); |
589 | fHistDeltaEtaN[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
590 | fHistDeltaEtaN[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
591 | fOutput->Add(fHistDeltaEtaN[i][imult][isign][imc]); | |
592 | ||
d514944f | 593 | snprintf(histname,BufferSize,"fHistDeltaEtaNPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
594 | snprintf(histtitle,BufferSize,"Near-Side P_{T} Weighted #Delta#eta Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 595 | fHistDeltaEtaNPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 596 | fHistDeltaEtaNPt[i][imult][isign][imc]->Sumw2(); |
597 | fHistDeltaEtaNPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
598 | fHistDeltaEtaNPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
599 | fOutput->Add(fHistDeltaEtaNPt[i][imult][isign][imc]); | |
600 | ||
d514944f | 601 | snprintf(histname,BufferSize,"fHistDeltaEtaNMix_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
602 | snprintf(histtitle,BufferSize,"Near-Side #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 603 | fHistDeltaEtaNMix[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 604 | fHistDeltaEtaNMix[i][imult][isign][imc]->Sumw2(); |
605 | fHistDeltaEtaNMix[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
606 | fHistDeltaEtaNMix[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
607 | fOutput->Add(fHistDeltaEtaNMix[i][imult][isign][imc]); | |
d514944f | 608 | |
609 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV2_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
610 | snprintf(histtitle,BufferSize,"Near-Side #Delta#eta Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
611 | fHistDeltaEtaNMixV2[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
612 | fHistDeltaEtaNMixV2[i][imult][isign][imc]->Sumw2(); | |
613 | fHistDeltaEtaNMixV2[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
614 | fHistDeltaEtaNMixV2[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
615 | fOutput->Add(fHistDeltaEtaNMixV2[i][imult][isign][imc]); | |
616 | ||
617 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV3_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
618 | snprintf(histtitle,BufferSize,"Near-Side #Delta#eta Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
619 | fHistDeltaEtaNMixV3[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
620 | fHistDeltaEtaNMixV3[i][imult][isign][imc]->Sumw2(); | |
621 | fHistDeltaEtaNMixV3[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
622 | fHistDeltaEtaNMixV3[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
623 | fOutput->Add(fHistDeltaEtaNMixV3[i][imult][isign][imc]); | |
624 | ||
625 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV4_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
626 | snprintf(histtitle,BufferSize,"Near-Side #Delta#eta Mixed Event V4 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
627 | fHistDeltaEtaNMixV4[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
628 | fHistDeltaEtaNMixV4[i][imult][isign][imc]->Sumw2(); | |
629 | fHistDeltaEtaNMixV4[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
630 | fHistDeltaEtaNMixV4[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
631 | fOutput->Add(fHistDeltaEtaNMixV4[i][imult][isign][imc]); | |
632 | ||
3b7aa4ba | 633 | |
d514944f | 634 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
635 | snprintf(histtitle,BufferSize,"Near-Side P_{T} Weighted #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 636 | fHistDeltaEtaNMixPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 637 | fHistDeltaEtaNMixPt[i][imult][isign][imc]->Sumw2(); |
638 | fHistDeltaEtaNMixPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
639 | fHistDeltaEtaNMixPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
640 | fOutput->Add(fHistDeltaEtaNMixPt[i][imult][isign][imc]); | |
d514944f | 641 | |
642 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV2Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
643 | snprintf(histtitle,BufferSize,"Near-Side P_{T} Weighted #Delta#eta Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
644 | fHistDeltaEtaNMixV2Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
645 | fHistDeltaEtaNMixV2Pt[i][imult][isign][imc]->Sumw2(); | |
646 | fHistDeltaEtaNMixV2Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
647 | fHistDeltaEtaNMixV2Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
648 | fOutput->Add(fHistDeltaEtaNMixV2Pt[i][imult][isign][imc]); | |
649 | ||
650 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV3Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
651 | snprintf(histtitle,BufferSize,"Near-Side P_{T} Weighted #Delta#eta Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
652 | fHistDeltaEtaNMixV3Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
653 | fHistDeltaEtaNMixV3Pt[i][imult][isign][imc]->Sumw2(); | |
654 | fHistDeltaEtaNMixV3Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
655 | fHistDeltaEtaNMixV3Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
656 | fOutput->Add(fHistDeltaEtaNMixV3Pt[i][imult][isign][imc]); | |
657 | ||
658 | snprintf(histname,BufferSize,"fHistDeltaEtaNMixV4Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
659 | snprintf(histtitle,BufferSize,"Near-Side P_{T} Weighted #Delta#eta V4 Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
660 | fHistDeltaEtaNMixV4Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
661 | fHistDeltaEtaNMixV4Pt[i][imult][isign][imc]->Sumw2(); | |
662 | fHistDeltaEtaNMixV4Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
663 | fHistDeltaEtaNMixV4Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
664 | fOutput->Add(fHistDeltaEtaNMixV4Pt[i][imult][isign][imc]); | |
665 | ||
3b7aa4ba | 666 | //Away Eta |
d514944f | 667 | snprintf(histname,BufferSize,"fHistDeltaEtaA_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
668 | snprintf(histtitle,BufferSize,"Away-Side #Delta#eta Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 669 | fHistDeltaEtaA[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 670 | fHistDeltaEtaA[i][imult][isign][imc]->Sumw2(); |
671 | fHistDeltaEtaA[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
672 | fHistDeltaEtaA[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
673 | fOutput->Add(fHistDeltaEtaA[i][imult][isign][imc]); | |
674 | ||
d514944f | 675 | snprintf(histname,BufferSize,"fHistDeltaEtaAPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
676 | snprintf(histtitle,BufferSize,"Away-Side P_{T} Weighted #Delta#eta Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 677 | fHistDeltaEtaAPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 678 | fHistDeltaEtaAPt[i][imult][isign][imc]->Sumw2(); |
679 | fHistDeltaEtaAPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
680 | fHistDeltaEtaAPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
681 | fOutput->Add(fHistDeltaEtaAPt[i][imult][isign][imc]); | |
682 | ||
d514944f | 683 | snprintf(histname,BufferSize,"fHistDeltaEtaAMix_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
684 | snprintf(histtitle,BufferSize,"Away-Side #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 685 | fHistDeltaEtaAMix[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 686 | fHistDeltaEtaAMix[i][imult][isign][imc]->Sumw2(); |
687 | fHistDeltaEtaAMix[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
688 | fHistDeltaEtaAMix[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
689 | fOutput->Add(fHistDeltaEtaAMix[i][imult][isign][imc]); | |
d514944f | 690 | |
691 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV2_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
692 | snprintf(histtitle,BufferSize,"Away-Side #Delta#eta Mixed Event V2 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
693 | fHistDeltaEtaAMixV2[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
694 | fHistDeltaEtaAMixV2[i][imult][isign][imc]->Sumw2(); | |
695 | fHistDeltaEtaAMixV2[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
696 | fHistDeltaEtaAMixV2[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
697 | fOutput->Add(fHistDeltaEtaAMixV2[i][imult][isign][imc]); | |
698 | ||
699 | ||
700 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV3_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
701 | snprintf(histtitle,BufferSize,"Away-Side #Delta#eta Mixed Event V3 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
702 | fHistDeltaEtaAMixV3[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
703 | fHistDeltaEtaAMixV3[i][imult][isign][imc]->Sumw2(); | |
704 | fHistDeltaEtaAMixV3[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
705 | fHistDeltaEtaAMixV3[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
706 | fOutput->Add(fHistDeltaEtaAMixV3[i][imult][isign][imc]); | |
707 | ||
708 | ||
709 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV4_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
710 | snprintf(histtitle,BufferSize,"Away-Side #Delta#eta Mixed Event V4 Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
711 | fHistDeltaEtaAMixV4[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
712 | fHistDeltaEtaAMixV4[i][imult][isign][imc]->Sumw2(); | |
713 | fHistDeltaEtaAMixV4[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
714 | fHistDeltaEtaAMixV4[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
715 | fOutput->Add(fHistDeltaEtaAMixV4[i][imult][isign][imc]); | |
3b7aa4ba | 716 | |
d514944f | 717 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixPt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
718 | snprintf(histtitle,BufferSize,"Away-Side P_{T} Weighted #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
69088c96 | 719 | fHistDeltaEtaAMixPt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); |
3b7aa4ba | 720 | fHistDeltaEtaAMixPt[i][imult][isign][imc]->Sumw2(); |
721 | fHistDeltaEtaAMixPt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
722 | fHistDeltaEtaAMixPt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
723 | fOutput->Add(fHistDeltaEtaAMixPt[i][imult][isign][imc]); | |
724 | ||
d514944f | 725 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV2Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); |
726 | snprintf(histtitle,BufferSize,"Away-Side P_{T} Weighted V2 #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
727 | fHistDeltaEtaAMixV2Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
728 | fHistDeltaEtaAMixV2Pt[i][imult][isign][imc]->Sumw2(); | |
729 | fHistDeltaEtaAMixV2Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
730 | fHistDeltaEtaAMixV2Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
731 | fOutput->Add(fHistDeltaEtaAMixV2Pt[i][imult][isign][imc]); | |
732 | ||
733 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV3Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
734 | snprintf(histtitle,BufferSize,"Away-Side P_{T} Weighted V3 #Delta#eta Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
735 | fHistDeltaEtaAMixV3Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
736 | fHistDeltaEtaAMixV3Pt[i][imult][isign][imc]->Sumw2(); | |
737 | fHistDeltaEtaAMixV3Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
738 | fHistDeltaEtaAMixV3Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
739 | fOutput->Add(fHistDeltaEtaAMixV3Pt[i][imult][isign][imc]); | |
740 | ||
741 | snprintf(histname,BufferSize,"fHistDeltaEtaAMixV4Pt_P%d_C%d%s%s",i,imult,sign1[isign],cmc1[imc]); | |
742 | snprintf(histtitle,BufferSize,"Away-Side P_{T} Weighted #Delta#eta V4 Mixed Event Distribution with %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],sign2[isign],cmc2[imc]); | |
743 | fHistDeltaEtaAMixV4Pt[i][imult][isign][imc]=new TH2F(histname,histtitle,fnBinEta,etaArray,lptbins,fPtAssocArray); | |
744 | fHistDeltaEtaAMixV4Pt[i][imult][isign][imc]->Sumw2(); | |
745 | fHistDeltaEtaAMixV4Pt[i][imult][isign][imc]->GetXaxis()->SetTitle("#Delta#eta"); | |
746 | fHistDeltaEtaAMixV4Pt[i][imult][isign][imc]->GetYaxis()->SetTitle("p_{T}"); | |
747 | fOutput->Add(fHistDeltaEtaAMixV4Pt[i][imult][isign][imc]); | |
748 | ||
3b7aa4ba | 749 | |
750 | //==== | |
751 | }//end isignloop | |
d514944f | 752 | snprintf(histname,BufferSize,"fHistDeltaPhiEta_P%d_C%d%s",i,imult,cmc1[imc]); |
753 | snprintf(histtitle,BufferSize,"#Delta#phi-#Delta#eta %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 754 | fHistDeltaPhiEta[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 755 | fHistDeltaPhiEta[i][imult][imc]->Sumw2(); |
756 | fHistDeltaPhiEta[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
757 | fHistDeltaPhiEta[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
758 | fHistDeltaPhiEta[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
759 | fOutput->Add(fHistDeltaPhiEta[i][imult][imc]); | |
760 | ||
d514944f | 761 | |
762 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMix_P%d_C%d%s",i,imult,cmc1[imc]); | |
763 | snprintf(histtitle,BufferSize,"#Delta#phi-#Delta#eta from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 764 | fHistDeltaPhiEtaMix[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 765 | fHistDeltaPhiEtaMix[i][imult][imc]->Sumw2(); |
766 | fHistDeltaPhiEtaMix[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
767 | fHistDeltaPhiEtaMix[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
768 | fHistDeltaPhiEtaMix[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
769 | fOutput->Add(fHistDeltaPhiEtaMix[i][imult][imc]); | |
d514944f | 770 | |
771 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV2_P%d_C%d%s",i,imult,cmc1[imc]); | |
772 | snprintf(histtitle,BufferSize,"#Delta#phi-#Delta#eta V2 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
773 | fHistDeltaPhiEtaMixV2[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
774 | fHistDeltaPhiEtaMixV2[i][imult][imc]->Sumw2(); | |
775 | fHistDeltaPhiEtaMixV2[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
776 | fHistDeltaPhiEtaMixV2[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
777 | fHistDeltaPhiEtaMixV2[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
778 | fOutput->Add(fHistDeltaPhiEtaMixV2[i][imult][imc]); | |
779 | ||
780 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV3_P%d_C%d%s",i,imult,cmc1[imc]); | |
781 | snprintf(histtitle,BufferSize,"#Delta#phi-#Delta#eta V3 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
782 | fHistDeltaPhiEtaMixV3[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
783 | fHistDeltaPhiEtaMixV3[i][imult][imc]->Sumw2(); | |
784 | fHistDeltaPhiEtaMixV3[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
785 | fHistDeltaPhiEtaMixV3[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
786 | fHistDeltaPhiEtaMixV3[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
787 | fOutput->Add(fHistDeltaPhiEtaMixV3[i][imult][imc]); | |
788 | ||
789 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV4_P%d_C%d%s",i,imult,cmc1[imc]); | |
790 | snprintf(histtitle,BufferSize,"#Delta#phi-#Delta#eta V4 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
791 | fHistDeltaPhiEtaMixV4[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
792 | fHistDeltaPhiEtaMixV4[i][imult][imc]->Sumw2(); | |
793 | fHistDeltaPhiEtaMixV4[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
794 | fHistDeltaPhiEtaMixV4[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
795 | fHistDeltaPhiEtaMixV4[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
796 | fOutput->Add(fHistDeltaPhiEtaMixV4[i][imult][imc]); | |
3b7aa4ba | 797 | |
d514944f | 798 | snprintf(histname,BufferSize,"fHistPhiEtaTrigPt_P%d_C%d%s",i,imult,cmc1[imc]); |
799 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #phi-#eta distribution in triggered events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 800 | fHistPhiEtaTrigPt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 801 | fHistPhiEtaTrigPt[i][imult][imc]->Sumw2(); |
802 | fHistPhiEtaTrigPt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
803 | fHistPhiEtaTrigPt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
804 | fHistPhiEtaTrigPt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
805 | fOutput->Add(fHistPhiEtaTrigPt[i][imult][imc]); | |
806 | ||
d514944f | 807 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaPt_P%d_C%d%s",i,imult,cmc1[imc]); |
808 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #Delta#phi-#Delta#eta %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 809 | fHistDeltaPhiEtaPt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 810 | fHistDeltaPhiEtaPt[i][imult][imc]->Sumw2(); |
811 | fHistDeltaPhiEtaPt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
812 | fHistDeltaPhiEtaPt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
813 | fHistDeltaPhiEtaPt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
814 | fOutput->Add(fHistDeltaPhiEtaPt[i][imult][imc]); | |
815 | ||
d514944f | 816 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixPt_P%d_C%d%s",i,imult,cmc1[imc]); |
817 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #Delta#phi-#Delta#eta from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
69088c96 | 818 | fHistDeltaPhiEtaMixPt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); |
3b7aa4ba | 819 | fHistDeltaPhiEtaMixPt[i][imult][imc]->Sumw2(); |
820 | fHistDeltaPhiEtaMixPt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
821 | fHistDeltaPhiEtaMixPt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
822 | fHistDeltaPhiEtaMixPt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
823 | fOutput->Add(fHistDeltaPhiEtaMixPt[i][imult][imc]); | |
824 | ||
d514944f | 825 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV2Pt_P%d_C%d%s",i,imult,cmc1[imc]); |
826 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #Delta#phi-#Delta#eta V2 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
827 | fHistDeltaPhiEtaMixV2Pt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
828 | fHistDeltaPhiEtaMixV2Pt[i][imult][imc]->Sumw2(); | |
829 | fHistDeltaPhiEtaMixV2Pt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
830 | fHistDeltaPhiEtaMixV2Pt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
831 | fHistDeltaPhiEtaMixV2Pt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
832 | fOutput->Add(fHistDeltaPhiEtaMixV2Pt[i][imult][imc]); | |
833 | ||
834 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV3Pt_P%d_C%d%s",i,imult,cmc1[imc]); | |
835 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #Delta#phi-#Delta#eta V3 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
836 | fHistDeltaPhiEtaMixV3Pt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
837 | fHistDeltaPhiEtaMixV3Pt[i][imult][imc]->Sumw2(); | |
838 | fHistDeltaPhiEtaMixV3Pt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
839 | fHistDeltaPhiEtaMixV3Pt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
840 | fHistDeltaPhiEtaMixV3Pt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
841 | fOutput->Add(fHistDeltaPhiEtaMixV3Pt[i][imult][imc]); | |
842 | ||
843 | snprintf(histname,BufferSize,"fHistDeltaPhiEtaMixV4Pt_P%d_C%d%s",i,imult,cmc1[imc]); | |
844 | snprintf(histtitle,BufferSize,"P_{T}-Weighted #Delta#phi-#Delta#eta V4 from Mixed Events %3.1f<p_{T}^{Trig}<%3.1f %dMult%d%s",fPtTrigArray[i],fPtTrigArray[i+1],fCentArrayMin[imult],fCentArrayMax[imult],cmc2[imc]); | |
845 | fHistDeltaPhiEtaMixV4Pt[i][imult][imc]=new TH3F(histname,histtitle,fnBinPhiEtaPhi,phiEtaArrayPhi,fnBinPhiEtaEta,phiEtaArrayEta,lptbins,fPtAssocArray); | |
846 | fHistDeltaPhiEtaMixV4Pt[i][imult][imc]->Sumw2(); | |
847 | fHistDeltaPhiEtaMixV4Pt[i][imult][imc]->GetXaxis()->SetTitle("#phi"); | |
848 | fHistDeltaPhiEtaMixV4Pt[i][imult][imc]->GetYaxis()->SetTitle("#eta"); | |
849 | fHistDeltaPhiEtaMixV4Pt[i][imult][imc]->GetZaxis()->SetTitle("p_{T}"); | |
850 | fOutput->Add(fHistDeltaPhiEtaMixV4Pt[i][imult][imc]); | |
851 | ||
3b7aa4ba | 852 | //Three-Particle Histograms |
853 | for(int ipt=0;ipt<fNAPt3Bins;ipt++){ | |
854 | for(int iSign=0;iSign<4;iSign++){ | |
d514944f | 855 | snprintf(histname,BufferSize,"fHistDeltaPhiPhi_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
856 | snprintf(histtitle,BufferSize,"Raw #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
3b7aa4ba | 857 | fHistDeltaPhiPhi[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); |
858 | fHistDeltaPhiPhi[i][ipt][imult][iSign][imc]->Sumw2(); | |
859 | fHistDeltaPhiPhi[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
860 | fHistDeltaPhiPhi[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
861 | fOutput->Add(fHistDeltaPhiPhi[i][ipt][imult][iSign][imc]); | |
862 | ||
d514944f | 863 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiMix_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
864 | snprintf(histtitle,BufferSize,"Mixed #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
3b7aa4ba | 865 | fHistDeltaPhiPhiMix[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); |
866 | fHistDeltaPhiPhiMix[i][ipt][imult][iSign][imc]->Sumw2(); | |
867 | fHistDeltaPhiPhiMix[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
868 | fHistDeltaPhiPhiMix[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
869 | fOutput->Add(fHistDeltaPhiPhiMix[i][ipt][imult][iSign][imc]); | |
870 | ||
d514944f | 871 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiMixV2_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
872 | snprintf(histtitle,BufferSize,"Mixed #Delta#phi-#Delta#phi V2 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
873 | fHistDeltaPhiPhiMixV2[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
874 | fHistDeltaPhiPhiMixV2[i][ipt][imult][iSign][imc]->Sumw2(); | |
875 | fHistDeltaPhiPhiMixV2[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
876 | fHistDeltaPhiPhiMixV2[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
877 | fOutput->Add(fHistDeltaPhiPhiMixV2[i][ipt][imult][iSign][imc]); | |
878 | ||
879 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiMixV3_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
880 | snprintf(histtitle,BufferSize,"Mixed #Delta#phi-#Delta#phi V3 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
881 | fHistDeltaPhiPhiMixV3[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
882 | fHistDeltaPhiPhiMixV3[i][ipt][imult][iSign][imc]->Sumw2(); | |
883 | fHistDeltaPhiPhiMixV3[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
884 | fHistDeltaPhiPhiMixV3[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
885 | fOutput->Add(fHistDeltaPhiPhiMixV3[i][ipt][imult][iSign][imc]); | |
886 | ||
887 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiMixV4_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
888 | snprintf(histtitle,BufferSize,"Mixed #Delta#phi-#Delta#phi V4 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
889 | fHistDeltaPhiPhiMixV4[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
890 | fHistDeltaPhiPhiMixV4[i][ipt][imult][iSign][imc]->Sumw2(); | |
891 | fHistDeltaPhiPhiMixV4[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
892 | fHistDeltaPhiPhiMixV4[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
893 | fOutput->Add(fHistDeltaPhiPhiMixV4[i][ipt][imult][iSign][imc]); | |
894 | ||
895 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiMixV2V2V4_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
896 | snprintf(histtitle,BufferSize,"Mixed #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
897 | fHistDeltaPhiPhiMixV2V2V4[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
898 | fHistDeltaPhiPhiMixV2V2V4[i][ipt][imult][iSign][imc]->Sumw2(); | |
899 | fHistDeltaPhiPhiMixV2V2V4[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
900 | fHistDeltaPhiPhiMixV2V2V4[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
901 | fOutput->Add(fHistDeltaPhiPhiMixV2V2V4[i][ipt][imult][iSign][imc]); | |
902 | ||
903 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiSS_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
904 | snprintf(histtitle,BufferSize,"Soft-Soft #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
3b7aa4ba | 905 | fHistDeltaPhiPhiSS[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); |
906 | fHistDeltaPhiPhiSS[i][ipt][imult][iSign][imc]->Sumw2(); | |
907 | fHistDeltaPhiPhiSS[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
908 | fHistDeltaPhiPhiSS[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
909 | fOutput->Add(fHistDeltaPhiPhiSS[i][ipt][imult][iSign][imc]); | |
910 | ||
d514944f | 911 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiSSV2_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
912 | snprintf(histtitle,BufferSize,"Soft-Soft V2 #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
913 | fHistDeltaPhiPhiSSV2[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
914 | fHistDeltaPhiPhiSSV2[i][ipt][imult][iSign][imc]->Sumw2(); | |
915 | fHistDeltaPhiPhiSSV2[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
916 | fHistDeltaPhiPhiSSV2[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
917 | fOutput->Add(fHistDeltaPhiPhiSSV2[i][ipt][imult][iSign][imc]); | |
918 | ||
919 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiSSV3_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
920 | snprintf(histtitle,BufferSize,"Soft-Soft V3 #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
921 | fHistDeltaPhiPhiSSV3[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
922 | fHistDeltaPhiPhiSSV3[i][ipt][imult][iSign][imc]->Sumw2(); | |
923 | fHistDeltaPhiPhiSSV3[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
924 | fHistDeltaPhiPhiSSV3[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
925 | fOutput->Add(fHistDeltaPhiPhiSSV3[i][ipt][imult][iSign][imc]); | |
926 | ||
927 | snprintf(histname,BufferSize,"fHistDeltaPhiPhiSSV4_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
928 | snprintf(histtitle,BufferSize,"Soft-Soft V4 #Delta#phi-#Delta#phi %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
929 | fHistDeltaPhiPhiSSV4[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinPhi3,fdPhiMin,fdPhiMax,fnBinPhi3,fdPhiMin,fdPhiMax); | |
930 | fHistDeltaPhiPhiSSV4[i][ipt][imult][iSign][imc]->Sumw2(); | |
931 | fHistDeltaPhiPhiSSV4[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#phi_{1}"); | |
932 | fHistDeltaPhiPhiSSV4[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#phi_{2}"); | |
933 | fOutput->Add(fHistDeltaPhiPhiSSV4[i][ipt][imult][iSign][imc]); | |
934 | ||
935 | snprintf(histname,BufferSize,"fHistDeltaEtaEta_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
936 | snprintf(histtitle,BufferSize,"Raw #Delta#eta-#Delta#eta %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
69088c96 | 937 | fHistDeltaEtaEta[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); |
3b7aa4ba | 938 | fHistDeltaEtaEta[i][ipt][imult][iSign][imc]->Sumw2(); |
939 | fHistDeltaEtaEta[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
940 | fHistDeltaEtaEta[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
941 | fOutput->Add(fHistDeltaEtaEta[i][ipt][imult][iSign][imc]); | |
942 | ||
d514944f | 943 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaMix_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
944 | snprintf(histtitle,BufferSize,"Mixed #Delta#eta-#Delta#eta %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
69088c96 | 945 | fHistDeltaEtaEtaMix[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); |
3b7aa4ba | 946 | fHistDeltaEtaEtaMix[i][ipt][imult][iSign][imc]->Sumw2(); |
947 | fHistDeltaEtaEtaMix[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
948 | fHistDeltaEtaEtaMix[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
949 | fOutput->Add(fHistDeltaEtaEtaMix[i][ipt][imult][iSign][imc]); | |
950 | ||
d514944f | 951 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaMixV2_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); |
952 | snprintf(histtitle,BufferSize,"Mixed #Delta#eta-#Delta#eta V2 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
953 | fHistDeltaEtaEtaMixV2[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); | |
954 | fHistDeltaEtaEtaMixV2[i][ipt][imult][iSign][imc]->Sumw2(); | |
955 | fHistDeltaEtaEtaMixV2[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
956 | fHistDeltaEtaEtaMixV2[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
957 | fOutput->Add(fHistDeltaEtaEtaMixV2[i][ipt][imult][iSign][imc]); | |
958 | ||
959 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaMixV3_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
960 | snprintf(histtitle,BufferSize,"Mixed #Delta#eta-#Delta#eta V3 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
961 | fHistDeltaEtaEtaMixV3[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); | |
962 | fHistDeltaEtaEtaMixV3[i][ipt][imult][iSign][imc]->Sumw2(); | |
963 | fHistDeltaEtaEtaMixV3[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
964 | fHistDeltaEtaEtaMixV3[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
965 | fOutput->Add(fHistDeltaEtaEtaMixV3[i][ipt][imult][iSign][imc]); | |
966 | ||
967 | ||
968 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaMixV4_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
969 | snprintf(histtitle,BufferSize,"Mixed #Delta#eta-#Delta#eta V4 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
970 | fHistDeltaEtaEtaMixV4[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); | |
971 | fHistDeltaEtaEtaMixV4[i][ipt][imult][iSign][imc]->Sumw2(); | |
972 | fHistDeltaEtaEtaMixV4[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
973 | fHistDeltaEtaEtaMixV4[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
974 | fOutput->Add(fHistDeltaEtaEtaMixV4[i][ipt][imult][iSign][imc]); | |
975 | ||
976 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaMixV2V2V4_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
977 | snprintf(histtitle,BufferSize,"Mixed #Delta#eta-#Delta#eta V2V2V4 %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
978 | fHistDeltaEtaEtaMixV2V2V4[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); | |
979 | fHistDeltaEtaEtaMixV2V2V4[i][ipt][imult][iSign][imc]->Sumw2(); | |
980 | fHistDeltaEtaEtaMixV2V2V4[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
981 | fHistDeltaEtaEtaMixV2V2V4[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
982 | fOutput->Add(fHistDeltaEtaEtaMixV2V2V4[i][ipt][imult][iSign][imc]); | |
983 | ||
984 | snprintf(histname,BufferSize,"fHistDeltaEtaEtaSS_P%dp%d_C%d%s%s",i,ipt,imult,cmc1[imc],sign31[iSign]); | |
985 | snprintf(histtitle,BufferSize,"Soft-Soft #Delta#eta-#Delta#eta %3.1f<p_{T}^{Trig}<%3.1f %3.2f<p_{T}^{Assoc}<%3.2f %dMult%d%s%s",fPtTrigArray[i],fPtTrigArray[i+1],fPtAssoc3Array1[ipt],fPtAssoc3Array2[ipt],fCentArrayMin[imult],fCentArrayMax[imult],sign32[iSign],cmc2[imc]); | |
69088c96 | 986 | fHistDeltaEtaEtaSS[i][ipt][imult][iSign][imc]=new TH2F(histname,histtitle,fnBinEta3,-etaEdge,etaEdge,fnBinEta3,-etaEdge,etaEdge); |
3b7aa4ba | 987 | fHistDeltaEtaEtaSS[i][ipt][imult][iSign][imc]->Sumw2(); |
988 | fHistDeltaEtaEtaSS[i][ipt][imult][iSign][imc]->GetXaxis()->SetTitle("#Delta#eta_{1}"); | |
989 | fHistDeltaEtaEtaSS[i][ipt][imult][iSign][imc]->GetYaxis()->SetTitle("#Delta#eta_{2}"); | |
990 | fOutput->Add(fHistDeltaEtaEtaSS[i][ipt][imult][iSign][imc]); | |
991 | ||
992 | }//iSign | |
993 | }//associated pt (ipt) | |
994 | }//pt loop (i) | |
995 | }//centrality loop (imult) | |
996 | }//imc | |
69088c96 | 997 | if(fDEBUG)Printf("OutPut Created"); |
3b7aa4ba | 998 | }//CreateOutputObjects |
d514944f | 999 | ///////////////////////////////// |
69088c96 | 1000 | Int_t AliAnalysisTaskDiHadron::CheckVertex(const AliESDEvent *rESD){ |
1001 | //checks whether the vertex passes cuts | |
3b7aa4ba | 1002 | Int_t rGood=-1; |
69088c96 | 1003 | Float_t vtx[3]; |
1004 | vtx[0]=rESD->GetPrimaryVertex()->GetX(); | |
1005 | vtx[1]=rESD->GetPrimaryVertex()->GetY(); | |
1006 | vtx[2]=rESD->GetPrimaryVertex()->GetZ(); | |
d514944f | 1007 | if((vtx[0]*vtx[0]+vtx[1]*vtx[1])<9&&fabs(vtx[2])<fVzCut) rGood=0; //vertex out of beam pipe |
1008 | //if(fabs(vtx[2])<fVzCut)rGood=0;//Vertex Z cut | |
69088c96 | 1009 | if(fDEBUG)Printf("vtxZ %f",vtx[2]); |
3b7aa4ba | 1010 | for(int i=0;i<fNVertexBins;i++){ |
69088c96 | 1011 | if(vtx[2]>fVertexArray[i]&&vtx[2]<=fVertexArray[i+1]&&rGood==0)rGood=i; |
3b7aa4ba | 1012 | } |
1013 | return rGood; | |
1014 | } | |
d514944f | 1015 | /////////////////////////// |
1016 | Int_t AliAnalysisTaskDiHadron::CheckVertexAOD(const AliAODEvent *rAOD){ | |
1017 | //checks whether the vertex passes cuts | |
1018 | Int_t rGood=-1; | |
1019 | Float_t vtx[3]; | |
1020 | vtx[0]=rAOD->GetPrimaryVertex()->GetX(); | |
1021 | vtx[1]=rAOD->GetPrimaryVertex()->GetY(); | |
1022 | vtx[2]=rAOD->GetPrimaryVertex()->GetZ(); | |
1023 | if((vtx[0]*vtx[0]+vtx[1]*vtx[1])<9&&fabs(vtx[2])<fVzCut) rGood=0; //vertex out of beam pipe | |
1024 | //if(fabs(vtx[2])<fVzCut)rGood=0;//Vertex Z cut | |
1025 | if(fDEBUG)Printf("vtxZ %f",vtx[2]); | |
1026 | for(int i=0;i<fNVertexBins;i++){ | |
1027 | if(vtx[2]>fVertexArray[i]&&vtx[2]<=fVertexArray[i+1]&&rGood==0)rGood=i; | |
1028 | } | |
1029 | return rGood; | |
1030 | } | |
1031 | /////////////////////////////// | |
69088c96 | 1032 | Int_t AliAnalysisTaskDiHadron::CheckTrigger(const AliESDEvent *rESD){ |
1033 | //checks whether the trigger passes cuts | |
d514944f | 1034 | if(fDEBUG)Printf("Checking Trigger"); |
3b7aa4ba | 1035 | Int_t rGood=0; |
1036 | TString trigID=rESD->GetFiredTriggerClasses(); | |
0f3a7491 | 1037 | int count=0; |
69088c96 | 1038 | char trigID2[50]; |
0f3a7491 | 1039 | int stop=0;//in as a safety |
1040 | ||
3b7aa4ba | 1041 | for(int i=0;i<fNIDs;i++){ |
0f3a7491 | 1042 | if(stop==1)continue; |
1043 | for(int j=0;j<50;j++){ | |
69088c96 | 1044 | if(fTrigIDArray[count]==',')trigID2[j]='\0'; |
1045 | else if(fTrigIDArray[count]=='\0'){trigID2[j]='\0';stop=1;} | |
1046 | else trigID2[j]=fTrigIDArray[count]; | |
0f3a7491 | 1047 | count++; |
69088c96 | 1048 | if(trigID2[j]=='\0') break; |
0f3a7491 | 1049 | } |
69088c96 | 1050 | if(trigID.Contains(trigID2)) rGood=1; |
3b7aa4ba | 1051 | } |
1052 | return rGood; | |
1053 | } | |
d514944f | 1054 | /////////////////////////////////////////// |
1055 | Int_t AliAnalysisTaskDiHadron::CheckTriggerAOD(const AliAODEvent *rAOD){ | |
1056 | //checks whether the trigger passes cuts | |
1057 | if(fDEBUG)Printf("Checking Trigger"); | |
1058 | Int_t rGood=0; | |
1059 | TString trigID=rAOD->GetFiredTriggerClasses(); | |
1060 | int count=0; | |
1061 | char trigID2[50]; | |
1062 | int stop=0;//in as a safety | |
1063 | ||
1064 | for(int i=0;i<fNIDs;i++){ | |
1065 | if(stop==1)continue; | |
1066 | for(int j=0;j<50;j++){ | |
1067 | if(fTrigIDArray[count]==',')trigID2[j]='\0'; | |
1068 | else if(fTrigIDArray[count]=='\0'){trigID2[j]='\0';stop=1;} | |
1069 | else trigID2[j]=fTrigIDArray[count]; | |
1070 | count++; | |
1071 | if(trigID2[j]=='\0') break; | |
1072 | } | |
1073 | if(trigID.Contains(trigID2)) rGood=1; | |
1074 | } | |
1075 | return rGood; | |
1076 | } | |
1077 | ///////////////////////////////////////////// | |
3b7aa4ba | 1078 | |
d514944f | 1079 | Int_t AliAnalysisTaskDiHadron::TrackCuts(const AliESDEvent *rESD, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Float_t *rV2, Float_t *rV3, Float_t *rV4, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks){ |
1080 | if(fDEBUG) Printf("Selecting Tracks"); | |
3b7aa4ba | 1081 | //fills arrays with all of the tracks passing cuts |
1082 | rGoodTracks[0]=0; | |
69088c96 | 1083 | Int_t lead=0; |
1084 | Float_t leadPt=0; | |
3b7aa4ba | 1085 | Int_t rTrack=fESD->GetNumberOfTracks(); |
1086 | Float_t sPt, sEta, sPhi, sChi, sb[2], sbCov[3]; | |
1087 | Int_t sNcls, sNclsF, sITScls; | |
1088 | Short_t sCharge; | |
1089 | for(int iTrack=0;iTrack<rTrack;iTrack++){ | |
69088c96 | 1090 | AliESDtrack *eSDtrack=rESD->GetTrack(iTrack); |
1091 | const AliExternalTrackParam *conTrack = eSDtrack->GetConstrainedParam(); | |
1092 | if(!conTrack)continue; | |
1093 | sPt=conTrack->Pt(); | |
1094 | //if(fDEBUG)Printf("Pt%f",rPt); | |
1095 | sEta=conTrack->Eta(); | |
1096 | sPhi=conTrack->Phi(); | |
1097 | sCharge=conTrack->Charge(); | |
d514944f | 1098 | if(fDEBUG) Printf("Pt%2.2f Eta%2.2f Phi%2.2f ", sPt,sEta,sPhi); |
3b7aa4ba | 1099 | if(sPhi<fdPhiMin)sPhi+=2*fPi; |
1100 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1101 | if(sPt<fMinPtAssoc||sPt>fMaxPtAssoc)continue;//set Pt range | |
1102 | if(fabs(sEta)>fEtaCut)continue;//set Eta Range | |
1103 | if(!sCharge)continue; | |
69088c96 | 1104 | sNcls=eSDtrack->GetTPCNcls(); |
1105 | //if(fDEBUG)Printf("NCLS%d",sNcls); | |
3b7aa4ba | 1106 | if(sNcls<fMinClustersTPC)continue; |
d514944f | 1107 | sNclsF=eSDtrack->GetTPCnclsS(); |
1108 | if((1-1.0*sNclsF/sNcls)<fMinClusterRatio)continue;//Clusters fit/ total | |
69088c96 | 1109 | sChi=(eSDtrack->GetTPCchi2())/sNcls; |
3b7aa4ba | 1110 | if(sChi>fMaxTPCchi2)continue; |
69088c96 | 1111 | sITScls=eSDtrack->GetNcls(0); |
3b7aa4ba | 1112 | if(sITScls<fMinClustersITS)continue; |
69088c96 | 1113 | eSDtrack->GetImpactParameters(sb,sbCov); |
d514944f | 1114 | if(fDEBUG)Printf("dca %2.2f %2.2f",sb[0],sb[1]); |
3b7aa4ba | 1115 | if(!fDCA2D&&(sb[0]*sb[0]+sb[1]*sb[1])>(fMaxDCA*fMaxDCA))continue;//DCA cut |
1116 | if(fDCA2D==1&&(sb[0]*sb[0]/fMaxDCAXY/fMaxDCAXY+sb[1]*sb[1]/fMaxDCAZ/fMaxDCAZ)>1)continue; | |
1117 | if(fDCA2D==2&&(0.35+0.42*std::pow(double(sPt),-0.9))<(sb[0]*sb[0]))continue; | |
69088c96 | 1118 | if(eSDtrack->GetKinkIndex(0)>0)continue;//removes kinked tracks |
d514944f | 1119 | if(!eSDtrack->GetStatus()&AliESDtrack::kTPCrefit&&fTPCRefit)continue;//refit in TPC |
1120 | if((fITSRefit==1||(fITSRefit==2&&sPt>5))&&!eSDtrack->GetStatus()&AliESDtrack::kITSrefit)continue;//refit of its tracks either for none,all, or >5 GeV/c | |
1121 | if(fDEBUG)Printf("SPD %d %d ", eSDtrack->HasPointOnITSLayer(0), eSDtrack->HasPointOnITSLayer(1)); | |
69088c96 | 1122 | if(fSPDCut&&!eSDtrack->HasPointOnITSLayer(0)&&!eSDtrack->HasPointOnITSLayer(1))continue; |
d514944f | 1123 | if(fDEBUG)Printf("Pass \n"); |
3b7aa4ba | 1124 | rPt[rGoodTracks[0]]=sPt; |
1125 | rEta[rGoodTracks[0]]=sEta; | |
1126 | rPhi[rGoodTracks[0]]=sPhi; | |
1127 | rCharge[rGoodTracks[0]]=sCharge; | |
1128 | if(fEfficiencyCorr){ | |
1129 | if(sPt<fEffFitPt)rEff[rGoodTracks[0]]=1./fFitLow->Eval(sPt); | |
1130 | else rEff[rGoodTracks[0]]=1./fFitHigh->Eval(sPt); | |
1131 | } | |
1132 | else rEff[rGoodTracks[0]]=1; | |
d514944f | 1133 | if(rEff[rGoodTracks[0]]!=rEff[rGoodTracks[0]]||rEff[rGoodTracks[0]]>1E8||rEff[rGoodTracks[0]]<-1E8){ |
1134 | Printf("Efficiency Error %f %f",rEff[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1135 | continue; | |
1136 | } | |
69088c96 | 1137 | if(sPt>leadPt)lead=rGoodTracks[0]; |
d514944f | 1138 | if(sPt<fV2FitPt)rV2[rGoodTracks[0]]=fFitLowV2->Eval(sPt); |
1139 | else rV2[rGoodTracks[0]]=fFitHighV2->Eval(sPt); | |
1140 | if(sPt<fV3FitPt)rV3[rGoodTracks[0]]=fFitLowV3->Eval(sPt); | |
1141 | else rV3[rGoodTracks[0]]=fFitHighV3->Eval(sPt); | |
1142 | if(sPt<fV4FitPt)rV4[rGoodTracks[0]]=fFitLowV4->Eval(sPt); | |
1143 | else rV4[rGoodTracks[0]]=fFitHighV4->Eval(sPt); | |
1144 | if(rV2[rGoodTracks[0]]!=rV2[rGoodTracks[0]]||rV2[rGoodTracks[0]]>1E8||rV2[rGoodTracks[0]]<-1E8){ | |
1145 | Printf("V2 Error %f %f",rV2[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1146 | continue; | |
1147 | } | |
1148 | if(rV4[rGoodTracks[0]]!=rV4[rGoodTracks[0]]||rV4[rGoodTracks[0]]>1E8||rV4[rGoodTracks[0]]<-1E8){ | |
1149 | Printf("V4 Error %f %f",rV4[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1150 | continue; | |
1151 | } | |
1152 | ||
1153 | //Printf("V2 %2.2f V4 %2.4f 1.15V2V2 %2.4f",rV2[rGoodTracks[0]],rV4[rGoodTracks[0]],1.15*pow(rV2[rGoodTracks[0]],2)); | |
3b7aa4ba | 1154 | //rPtAssoc3[rGoodTracks[0]]=new Int_t [10]; |
1155 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1156 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1157 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1158 | rPtAssoc3[rGoodTracks[0]][rNPtAssoc3[rGoodTracks[0]]]=apt3; | |
1159 | rNPtAssoc3[rGoodTracks[0]]++; | |
1160 | } | |
1161 | } | |
1162 | ||
1163 | rGoodTracks[0]++; | |
1164 | ||
1165 | } | |
69088c96 | 1166 | return lead; |
3b7aa4ba | 1167 | } |
d514944f | 1168 | ///////////////////////////////////////////// |
1169 | ||
1170 | Int_t AliAnalysisTaskDiHadron::TrackCutsAOD(const AliAODEvent *rAOD, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Float_t *rV2, Float_t *rV3, Float_t *rV4, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks){ | |
1171 | if(fDEBUG) Printf("Selecting Tracks"); | |
1172 | //fills arrays with all of the tracks passing cuts | |
1173 | rGoodTracks[0]=0; | |
1174 | Int_t lead=0; | |
1175 | Float_t leadPt=0; | |
1176 | Int_t rTrack=fAOD->GetNTracks(); | |
1177 | Float_t sPt, sEta, sPhi, sChi, sb[2]; | |
1178 | Int_t sNcls, sNclsF, sITScls; | |
1179 | Short_t sCharge; | |
1180 | for(int iTrack=0;iTrack<rTrack;iTrack++){ | |
1181 | AliAODTrack *aodTrack=rAOD->GetTrack(iTrack); | |
1182 | sPt=aodTrack->Pt(); | |
1183 | sEta=aodTrack->Eta(); | |
1184 | sPhi=aodTrack->Phi(); | |
1185 | sCharge=aodTrack->Charge(); | |
1186 | if(fDEBUG) Printf("Pt%2.2f Eta%2.2f Phi%2.2f ", sPt,sEta,sPhi); | |
1187 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1188 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1189 | if(sPt<fMinPtAssoc||sPt>fMaxPtAssoc)continue;//set Pt range | |
1190 | if(fabs(sEta)>fEtaCut)continue;//set Eta Range | |
1191 | if(!sCharge)continue; | |
1192 | sNcls=aodTrack->GetTPCNcls(); | |
1193 | if(sNcls<fMinClustersTPC)continue; | |
1194 | sNclsF=aodTrack->GetTPCSharedMap().CountBits(); | |
1195 | if((1-1.0*sNclsF/sNcls)<fMinClusterRatio)continue;//Clusters shared/ total; | |
1196 | sChi=aodTrack->Chi2perNDF(); | |
1197 | if(sChi>fMaxTPCchi2)continue; | |
1198 | sITScls=aodTrack->GetNcls(0); | |
1199 | if(sITScls<fMinClustersITS)continue; | |
1200 | sb[0]=aodTrack->DCA(); | |
1201 | sb[1]=aodTrack->ZAtDCA(); | |
1202 | if(fDEBUG)Printf("dca %2.2f %2.2f",sb[0],sb[1]); | |
1203 | if(!fDCA2D&&(sb[0]*sb[0]+sb[1]*sb[1])>(fMaxDCA*fMaxDCA))continue;//DCA cut | |
1204 | if(fDCA2D==1&&(sb[0]*sb[0]/fMaxDCAXY/fMaxDCAXY+sb[1]*sb[1]/fMaxDCAZ/fMaxDCAZ)>1)continue; | |
1205 | if(fDCA2D==2&&(0.35+0.42*std::pow(double(sPt),-0.9))<(sb[0])*sb[0])continue; | |
1206 | //if(eSDtrack->GetKinkIndex(0)>0)continue;//removes kinked tracks | |
1207 | if(!aodTrack->IsPrimaryCandidate())continue;//I assume this removes kinks | |
1208 | //if(!aodTrack->GetStatus()&AliAODTrack::kTPCrefit&&fTPCRefit)continue;//refit in TPC | |
1209 | //if((fITSRefit==1||(fITSRefit==2&&sPt>5))&&!aodTrack->GetStatus()&AliAODTrack::kITSrefit)continue;//refit of its tracks either for none,all, or >5 GeV/c | |
1210 | if(fDEBUG)Printf("SPD %d %d ", aodTrack->HasPointOnITSLayer(0), aodTrack->HasPointOnITSLayer(1)); | |
1211 | if(fSPDCut&&!aodTrack->HasPointOnITSLayer(0)&&!aodTrack->HasPointOnITSLayer(1))continue; | |
1212 | if(fDEBUG)Printf("Pass \n"); | |
1213 | rPt[rGoodTracks[0]]=sPt; | |
1214 | rEta[rGoodTracks[0]]=sEta; | |
1215 | rPhi[rGoodTracks[0]]=sPhi; | |
1216 | rCharge[rGoodTracks[0]]=sCharge; | |
1217 | if(fEfficiencyCorr){ | |
1218 | if(sPt<fEffFitPt)rEff[rGoodTracks[0]]=1./fFitLow->Eval(sPt); | |
1219 | else rEff[rGoodTracks[0]]=1./fFitHigh->Eval(sPt); | |
1220 | } | |
1221 | else rEff[rGoodTracks[0]]=1; | |
1222 | if(rEff[rGoodTracks[0]]!=rEff[rGoodTracks[0]]||rEff[rGoodTracks[0]]>1E8||rEff[rGoodTracks[0]]<-1E8){ | |
1223 | Printf("Efficiency Error %f %f",rEff[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1224 | continue; | |
1225 | } | |
1226 | if(sPt>leadPt)lead=rGoodTracks[0]; | |
1227 | if(sPt<fV2FitPt)rV2[rGoodTracks[0]]=fFitLowV2->Eval(sPt); | |
1228 | else rV2[rGoodTracks[0]]=fFitHighV2->Eval(sPt); | |
1229 | if(sPt<fV3FitPt)rV3[rGoodTracks[0]]=fFitLowV3->Eval(sPt); | |
1230 | else rV3[rGoodTracks[0]]=fFitHighV3->Eval(sPt); | |
1231 | if(sPt<fV4FitPt)rV4[rGoodTracks[0]]=fFitLowV4->Eval(sPt); | |
1232 | else rV4[rGoodTracks[0]]=fFitHighV4->Eval(sPt); | |
1233 | if(rV2[rGoodTracks[0]]!=rV2[rGoodTracks[0]]||rV2[rGoodTracks[0]]>1E8||rV2[rGoodTracks[0]]<-1E8){ | |
1234 | Printf("V2 Error %f %f",rV2[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1235 | continue; | |
1236 | } | |
1237 | if(rV4[rGoodTracks[0]]!=rV4[rGoodTracks[0]]||rV4[rGoodTracks[0]]>1E8||rV4[rGoodTracks[0]]<-1E8){ | |
1238 | Printf("V4 Error %f %f",rV4[rGoodTracks[0]],rPt[rGoodTracks[0]]); | |
1239 | continue; | |
1240 | } | |
1241 | ||
1242 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1243 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1244 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1245 | rPtAssoc3[rGoodTracks[0]][rNPtAssoc3[rGoodTracks[0]]]=apt3; | |
1246 | rNPtAssoc3[rGoodTracks[0]]++; | |
1247 | } | |
1248 | } | |
1249 | ||
1250 | rGoodTracks[0]++; | |
1251 | ||
1252 | } | |
1253 | return lead; | |
1254 | } | |
1255 | /////////////////////////////////////////////////////// | |
3b7aa4ba | 1256 | |
d514944f | 1257 | Int_t AliAnalysisTaskDiHadron::TrackCutsMC(AliMCEvent *rMC, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Float_t *rV2, Float_t *rV3, Float_t *rV4, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks){ |
1258 | //Fills Arrays of MC particles | |
3b7aa4ba | 1259 | rGoodTracks[1]=0; |
1260 | AliStack *rStack=rMC->Stack(); | |
1261 | Int_t rTrack=rStack->GetNtrack(); | |
1262 | Float_t sPt, sEta, sPhi; | |
1263 | Short_t sCharge; | |
69088c96 | 1264 | Int_t lead=0; |
1265 | Float_t leadPt=0; | |
3b7aa4ba | 1266 | for(int iTrack=0;iTrack<rTrack;iTrack++){ |
1267 | TParticle *rParticle=rStack->Particle(iTrack); | |
1268 | sPt=rParticle->Pt(); | |
69088c96 | 1269 | //if(fDEBUG)Printf("MCPt%f",rPt); |
3b7aa4ba | 1270 | sEta=rParticle->Eta(); |
1271 | sPhi=rParticle->Phi(); | |
1272 | sCharge=rMC->GetTrack(iTrack)->Charge(); | |
1273 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1274 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1275 | if(sPt<fMinPtAssoc||sPt>fMaxPtAssoc)continue;//set Pt range | |
1276 | if(fabs(sEta)>fEtaCut)continue;//set Eta Range | |
1277 | if(!rStack->IsPhysicalPrimary(iTrack))continue;//primary particles only | |
1278 | if(!sCharge)continue;//only charged particles kept | |
1279 | rPt[rGoodTracks[1]]=sPt; | |
1280 | rEta[rGoodTracks[1]]=sEta; | |
1281 | rPhi[rGoodTracks[1]]=sPhi; | |
1282 | rCharge[rGoodTracks[1]]=sCharge; | |
1283 | rEff[rGoodTracks[1]]=1; | |
d514944f | 1284 | rV2[rGoodTracks[1]]=0; |
1285 | rV3[rGoodTracks[1]]=0; | |
1286 | rV4[rGoodTracks[1]]=0; | |
69088c96 | 1287 | if(sPt>leadPt)lead=rGoodTracks[1]; |
3b7aa4ba | 1288 | rNPtAssoc3[rGoodTracks[1]]=0; |
1289 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1290 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1291 | rPtAssoc3[rGoodTracks[1]][rNPtAssoc3[rGoodTracks[1]]]=apt3; | |
1292 | rNPtAssoc3[rGoodTracks[1]]++; | |
1293 | } | |
1294 | } | |
1295 | rGoodTracks[1]++; | |
1296 | } | |
69088c96 | 1297 | return lead; |
3b7aa4ba | 1298 | } |
d514944f | 1299 | //--------------------------------------------------------- |
1300 | Int_t AliAnalysisTaskDiHadron::TrackCutsSim(Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Float_t *rV2, Float_t *rV3, Float_t *rV4, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks){ | |
1301 | ||
1302 | float v2=fFitHighV2->Eval(3.); | |
1303 | float v3=fFitHighV3->Eval(3.); | |
1304 | float v4=fFitHighV4->Eval(3.); | |
1305 | Int_t lead=0; | |
1306 | rGoodTracks[0]=0; | |
1307 | ||
1308 | TF1 *SimFlow=new TF1("SimFlow","1+2*[0]*cos(2*x)+2*[1]*cos(3*(x-[2]))+2*[3]*cos(4*x)",-TMath::Pi(),TMath::Pi()); | |
1309 | Float_t V3PlaneAngle=2*TMath::Pi()*gRandom->Rndm(); | |
1310 | SimFlow->SetParameters(v2,v3,V3PlaneAngle,v4); | |
1311 | // SimFlow->SetParameters(0,0,0,0); | |
1312 | TF1 *SimNear=new TF1("SimNear","exp(-0.5*x*x/[0]/[0])",-TMath::Pi(),TMath::Pi()); | |
1313 | SimNear->SetParameter(0,0.3); | |
1314 | TF1 *SimAway=new TF1("SimAway","exp(-0.5*x*x/[0]/[0])",-TMath::Pi(),TMath::Pi()); | |
1315 | SimAway->SetParameter(0,0.5);//0.5 for DiJet 0.3 for cone | |
1316 | ||
1317 | TF1 *SimAway2=new TF1("SimAway2","exp(-0.5*(x-[1])*(x-[1])/[0]/[0])+exp(-0.5*(x+[1])*(x+[1])/[0]/[0])",-TMath::Pi(),TMath::Pi()); | |
1318 | SimAway2->SetParameter(0,0.3);//0.5 for DiJet 0.3 for cone | |
1319 | SimAway2->SetParameter(1,1.4);//Cone Angle | |
1320 | ||
1321 | // TF1 *AwayProb=new TF1("AwayProb","[0]"); | |
1322 | TF1 *AwayProb=new TF1("AwayProb","[0]*cos(2*x)*cos(2*x)"); | |
1323 | //AwayProb->SetParameter(0,0.5); | |
1324 | AwayProb->SetParameter(0,1); | |
1325 | Int_t AwayDeflected=0; | |
1326 | ||
1327 | ||
1328 | // TF1 *SimAway=new TF1("SimAway","0.035+2*[0]*[0]*cos(2*x)+2*[1]*[1]*cos(3*x)+2*[2]*[2]*cos(4*x)",1.0,TMath::Pi()*2-1.0); | |
1329 | // SimAway->SetParameters(v2,v3,v4); | |
1330 | // TF1 *SimAway2=new TF1("SimAway2","0.035+2*[0]*[0]*cos(2*x)+2*[1]*[1]*cos(3*x)+2*[2]*[2]*cos(4*x)",1.05,TMath::Pi()*2-1.05); | |
1331 | //SimAway->SetParameters(v2,v3,v4); | |
1332 | ||
1333 | Float_t RPAngle=2*TMath::Pi()*gRandom->Rndm(); | |
1334 | Float_t TrigAngle; | |
1335 | Float_t sPt,sPhi; | |
1336 | Int_t InAccpt; | |
1337 | Int_t AccptPercent=4;//1 over this is % in aceptance on away-side | |
1338 | Int_t AwaySidePM=0; | |
1339 | ||
1340 | Int_t AwaySide1=1; | |
1341 | //Use SimAway1 or 2 | |
1342 | // if(gRandom->Rndm()<AwayProb->Eval(RPAngle))AwaySide1=1; | |
1343 | //else AwaySide1=2; | |
1344 | ||
1345 | for(int i=0;i<gRandom->Poisson(fSimNBgPart);i++){ | |
1346 | sPt=1.5; | |
1347 | rPt[rGoodTracks[0]]=sPt; | |
1348 | rEta[rGoodTracks[0]]=0; | |
1349 | sPhi=SimFlow->GetRandom()+RPAngle; | |
1350 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1351 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1352 | rPhi[rGoodTracks[0]]=sPhi; | |
1353 | rCharge[rGoodTracks[0]]=1; | |
1354 | rEff[rGoodTracks[0]]=1; | |
1355 | rV2[rGoodTracks[0]]=v2; | |
1356 | rV3[rGoodTracks[0]]=v3; | |
1357 | rV4[rGoodTracks[0]]=v4; | |
1358 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1359 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1360 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1361 | rPtAssoc3[rGoodTracks[0]][rNPtAssoc3[rGoodTracks[0]]]=apt3; | |
1362 | rNPtAssoc3[rGoodTracks[0]]++; | |
1363 | } | |
1364 | } | |
1365 | rGoodTracks[0]++; | |
1366 | } | |
1367 | for(int i=0;i<gRandom->Poisson(fSimNJet);i++){ | |
1368 | TrigAngle=SimFlow->GetRandom()+RPAngle; | |
1369 | if(gRandom->Rndm()<AwayProb->Eval(TrigAngle-RPAngle))AwaySide1=1; | |
1370 | else AwaySide1=2; | |
1371 | sPhi=TrigAngle; | |
1372 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1373 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1374 | sPt=3.1; | |
1375 | rPt[rGoodTracks[0]]=sPt; | |
1376 | rEta[rGoodTracks[0]]=0; | |
1377 | rPhi[rGoodTracks[0]]=sPhi; | |
1378 | rCharge[rGoodTracks[0]]=1; | |
1379 | rEff[rGoodTracks[0]]=1; | |
1380 | rV2[rGoodTracks[0]]=v2; | |
1381 | rV3[rGoodTracks[0]]=v3; | |
1382 | rV4[rGoodTracks[0]]=v4; | |
1383 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1384 | lead=rGoodTracks[0]; | |
1385 | rGoodTracks[0]++; | |
1386 | ||
1387 | for(int k=0;k<gRandom->Poisson(fSimNJetPart);k++){ | |
1388 | sPhi=SimNear->GetRandom()+TrigAngle; | |
1389 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1390 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1391 | sPt=1.5; | |
1392 | rPt[rGoodTracks[0]]=sPt; | |
1393 | rEta[rGoodTracks[0]]=0; | |
1394 | rPhi[rGoodTracks[0]]=sPhi; | |
1395 | rCharge[rGoodTracks[0]]=1; | |
1396 | rEff[rGoodTracks[0]]=1; | |
1397 | rV2[rGoodTracks[0]]=v2; | |
1398 | rV3[rGoodTracks[0]]=v3; | |
1399 | rV4[rGoodTracks[0]]=v4; | |
1400 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1401 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1402 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1403 | rPtAssoc3[rGoodTracks[0]][rNPtAssoc3[rGoodTracks[0]]]=apt3; | |
1404 | rNPtAssoc3[rGoodTracks[0]]++; | |
1405 | } | |
1406 | } | |
1407 | rGoodTracks[0]++; | |
1408 | } | |
1409 | ||
1410 | if(gRandom->Rndm()<1./AccptPercent)InAccpt=1; | |
1411 | else InAccpt=0; | |
1412 | if(gRandom->Rndm()<0.5)AwaySidePM=0; | |
1413 | else AwaySidePM=1; | |
1414 | for(int k=0;k<gRandom->Poisson(InAccpt*AccptPercent*fSimNJetPart);k++){ | |
1415 | //sPhi=SimAway->GetRandom()+TrigAngle+TMath::Pi(); | |
1416 | if(AwaySide1==1)sPhi=SimAway->GetRandom(); | |
1417 | else(sPhi=SimAway2->GetRandom()); | |
1418 | if(AwayDeflected){ | |
1419 | if(sPhi>0&&AwaySidePM)sPhi=-sPhi; | |
1420 | else if(sPhi<0&&!AwaySidePM)sPhi=-sPhi; | |
1421 | } | |
1422 | sPhi+=TrigAngle+fPi; | |
1423 | if(sPhi<fdPhiMin)sPhi+=2*fPi; | |
1424 | if(sPhi>fdPhiMax)sPhi-=2*fPi; | |
1425 | sPt=1.5; | |
1426 | rPt[rGoodTracks[0]]=sPt; | |
1427 | rEta[rGoodTracks[0]]=0; | |
1428 | rPhi[rGoodTracks[0]]=sPhi; | |
1429 | rCharge[rGoodTracks[0]]=1; | |
1430 | rEff[rGoodTracks[0]]=1; | |
1431 | rV2[rGoodTracks[0]]=v2; | |
1432 | rV3[rGoodTracks[0]]=v3; | |
1433 | rV4[rGoodTracks[0]]=v4; | |
1434 | rNPtAssoc3[rGoodTracks[0]]=0; | |
1435 | for(int apt3=0;apt3<fNAPt3Bins;apt3++){ | |
1436 | if(sPt<fPtAssoc3Array2[apt3]&&sPt>=fPtAssoc3Array1[apt3]){ | |
1437 | rPtAssoc3[rGoodTracks[0]][rNPtAssoc3[rGoodTracks[0]]]=apt3; | |
1438 | rNPtAssoc3[rGoodTracks[0]]++; | |
1439 | } | |
1440 | } | |
1441 | rGoodTracks[0]++; | |
1442 | } | |
1443 | ||
1444 | ||
1445 | }//njet | |
1446 | ||
1447 | return lead; | |
1448 | } | |
1449 | ||
1450 | ||
3b7aa4ba | 1451 | //------------------------------------------------------------ |
1452 | void AliAnalysisTaskDiHadron::Exec(Option_t *) | |
1453 | { | |
69088c96 | 1454 | //Main executable |
1455 | if(fDEBUG)Printf("Exec"); | |
3b7aa4ba | 1456 | |
69088c96 | 1457 | const int nTPtBins=fNTPtBins; |
1458 | const int nCentBins=fNCentBins; | |
3b7aa4ba | 1459 | for(int ievent=0;ievent<=1;ievent++){ |
1460 | ||
d514944f | 1461 | if((!fESD&&!fAOD)&&ievent==0){ |
1462 | if(fDEBUG)Printf("Error: fESD not found"); | |
3b7aa4ba | 1463 | break; |
1464 | } | |
d514944f | 1465 | if(!fMC&&ievent==1){ |
3b7aa4ba | 1466 | break; |
1467 | } | |
d514944f | 1468 | // Printf("fSimulate %d",fSimulate); |
1469 | if(fSimulate==1&&ievent==1) break; | |
1470 | if(ievent==1&&!fMCHistos)break;//break out if MC event and we don't have fill of those set | |
1471 | //Secondary check | |
1472 | if(ievent==0){ | |
1473 | if(!fAODData){ | |
1474 | if(fESD->GetNumberOfTracks()<=0){ | |
1475 | if(fDEBUG)Printf("Error: no tracks"); | |
1476 | break; | |
1477 | } | |
1478 | } | |
1479 | else{ | |
1480 | if(fAOD->GetNTracks()<=0){ | |
1481 | if(fDEBUG)Printf("Error: no tracks"); | |
1482 | break; | |
1483 | } | |
1484 | } | |
1485 | } | |
1486 | //The previous check doesn't seem to work as a fMC is bad not NULL | |
1487 | if(ievent==1){ | |
1488 | if(fMC->GetNumberOfTracks()<=0){ | |
1489 | if(fDEBUG)Printf("<=0 MCTracks"); | |
1490 | break; | |
1491 | } | |
3b7aa4ba | 1492 | } |
3b7aa4ba | 1493 | |
d514944f | 1494 | //Check for Trigger only on real data |
1495 | if(!fMC){ | |
1496 | if(!fAODData){ | |
1497 | if(!CheckTrigger(fESD)) break; | |
1498 | } | |
1499 | else{ | |
1500 | if(!CheckTriggerAOD(fAOD)) break; | |
1501 | } | |
3b7aa4ba | 1502 | } |
3b7aa4ba | 1503 | |
d514944f | 1504 | //I'll only cut on the reconstructed vertex since these are the events that will be used |
1505 | int vertexBin; | |
1506 | if(!fAODData)vertexBin=CheckVertex(fESD); | |
1507 | else vertexBin=CheckVertexAOD(fAOD); | |
1508 | if(vertexBin<0)break; | |
1509 | ||
1510 | ||
1511 | ||
1512 | Int_t nGoodTracks[2]={0,0}, nTriggers[nTPtBins][nCentBins][2]; | |
1513 | Int_t nTrack; | |
1514 | if(!ievent){ | |
1515 | if(!fAODData)nTrack=fESD->GetNumberOfTracks(); | |
1516 | else nTrack=fAOD->GetNumberOfTracks(); | |
1517 | } | |
1518 | else nTrack=fMC->Stack()->GetNtrack(); | |
1519 | if(fSimulate)nTrack=10*(fSimNBgPart+10*fSimNJetPart); | |
1520 | gRandom->SetSeed(time(0)+gSystem->GetPid()); | |
1521 | Float_t tdPhi, tdEta, tXE; | |
1522 | Float_t tdPhi2, tdEta2; | |
1523 | Float_t V2_T1, V2_T2, V3_T1, V3_T2, V4_T1, V4_T2, V42_T12, V42_1T2, V42_2T1, V2V2V4, V2, V3, V4; | |
1524 | Float_t V2_A, V3_A, V4_A; | |
1525 | ftPhi=new Float_t [nTrack]; | |
1526 | ftEta=new Float_t [nTrack]; | |
1527 | ftPt=new Float_t [nTrack]; | |
1528 | ftCharge=new Short_t [nTrack]; | |
1529 | ftEff=new Float_t [nTrack]; | |
1530 | ftV2=new Float_t [nTrack]; | |
1531 | ftV3=new Float_t [nTrack]; | |
1532 | ftV4=new Float_t [nTrack]; | |
1533 | ftPtAssoc3=new Int_t *[nTrack]; | |
1534 | for(int i=0;i<nTrack;i++){ | |
1535 | ftPtAssoc3[i]=new Int_t [10]; | |
3b7aa4ba | 1536 | } |
d514944f | 1537 | ftNPtAssoc3=new Int_t [nTrack]; |
1538 | Short_t sign; | |
1539 | //trigger particle arrays | |
3b7aa4ba | 1540 | for(int i=0;i<fNTPtBins;i++){ |
d514944f | 1541 | for(int c=0;c<fNCentBins;c++){ |
1542 | nTriggers[i][c][ievent]=0; | |
1543 | } | |
1544 | } | |
1545 | //Int_t tMult=fESD->GetMultiplicity()->GetNumberOfTracklets();//I think this is the correct multiplicity to use | |
1546 | ||
1547 | //AliESDVZERO* esdV0 = fESD->GetVZEROData(); | |
1548 | Float_t tMult=0; | |
1549 | if(!fAODData){ | |
1550 | if(fCentPercent) tMult=fESD->GetCentrality()->GetCentralityPercentile("V0M"); | |
1551 | else tMult=fESD->GetVZEROData()->GetMTotV0A()+fESD->GetVZEROData()->GetMTotV0C(); | |
1552 | } | |
1553 | else{ | |
1554 | AliAODHeader *tHeader=fAOD->GetHeader(); | |
1555 | tMult=tHeader->GetCentrality(); | |
1556 | } | |
1557 | ||
1558 | if(fDEBUG)Printf("Mult/Cent%6.1f",tMult); | |
1559 | ||
1560 | //Decide what multiplicy bins are filled with this event, note set to max of 4 overlapping bins as I didn't think more then 2 overlapping bins likely at one time, easliy changed | |
1561 | Int_t multArray[4]={0,0,0,0}; | |
1562 | Int_t maxArray=0; | |
1563 | ||
1564 | for(int imult=0;imult<fNCentBins;imult++){ | |
1565 | if(tMult>=fCentArrayMin[imult]&&tMult<fCentArrayMax[imult]){ | |
1566 | multArray[maxArray]=imult; | |
1567 | maxArray++; | |
1568 | } | |
1569 | } | |
1570 | if(maxArray==0)break; | |
1571 | //Printf("maxArray%d Mult%1.2f",maxArray,tMult); | |
1572 | if(fDEBUG)Printf("maxArray%d",maxArray); | |
1573 | //Set Efficiency and flow for the centrality bin (lowest bin used in array if multiple overlap) | |
1574 | for(int ipar=0;ipar<fNFitLowParam;ipar++){ | |
1575 | fFitLow->SetParameter(ipar,fFitLowParam[multArray[0]*fNFitLowParam+ipar]); | |
1576 | } | |
1577 | for(int ipar=0;ipar<fNFitHighParam;ipar++){ | |
1578 | fFitHigh->SetParameter(ipar,fFitHighParam[multArray[0]*fNFitHighParam+ipar]); | |
1579 | } | |
1580 | for(int ipar=0;ipar<fNFitLowParamV2;ipar++){ | |
1581 | fFitLowV2->SetParameter(ipar,fFitLowParamV2[multArray[0]*fNFitLowParamV2+ipar]); | |
1582 | } | |
1583 | for(int ipar=0;ipar<fNFitHighParamV2;ipar++){ | |
1584 | fFitHighV2->SetParameter(ipar,fFitHighParamV2[multArray[0]*fNFitHighParamV2+ipar]); | |
1585 | } | |
1586 | for(int ipar=0;ipar<fNFitLowParamV3;ipar++){ | |
1587 | fFitLowV3->SetParameter(ipar,fFitLowParamV3[multArray[0]*fNFitLowParamV3+ipar]); | |
1588 | } | |
1589 | for(int ipar=0;ipar<fNFitHighParamV3;ipar++){ | |
1590 | fFitHighV3->SetParameter(ipar,fFitHighParamV3[multArray[0]*fNFitHighParamV2+ipar]); | |
1591 | } | |
1592 | for(int ipar=0;ipar<fNFitLowParamV4;ipar++){ | |
1593 | fFitLowV4->SetParameter(ipar,fFitLowParamV4[multArray[0]*fNFitLowParamV4+ipar]); | |
1594 | } | |
1595 | for(int ipar=0;ipar<fNFitHighParamV4;ipar++){ | |
1596 | fFitHighV4->SetParameter(ipar,fFitHighParamV4[multArray[0]*fNFitHighParamV4+ipar]); | |
1597 | } | |
1598 | fHistMult[ievent]->Fill(tMult); | |
1599 | for(int c=0;c<maxArray;c++){fHistNEvents[multArray[c]][ievent]->Fill(0);}//count the number of events used | |
1600 | Int_t leadPart=-1; | |
1601 | ||
1602 | //returns arrays filled up to nGoodTracks with tracks passing cuts | |
1603 | for(int nSimEvents=0;nSimEvents<=(fSimulate*fSimNEvents);nSimEvents++){//only 1 loop if not simulation | |
1604 | //Printf("nSimEvents %d",nSimEvents); | |
1605 | if(fSimulate)leadPart=TrackCutsSim(ftPt,ftEta,ftPhi,ftCharge,ftEff,ftV2,ftV3,ftV4,ftPtAssoc3,ftNPtAssoc3,nGoodTracks); | |
1606 | else if(!ievent){ | |
1607 | if(!fAODData)leadPart=TrackCuts(fESD,ftPt,ftEta,ftPhi,ftCharge,ftEff,ftV2,ftV3,ftV4,ftPtAssoc3,ftNPtAssoc3,nGoodTracks); | |
1608 | else leadPart=TrackCutsAOD(fAOD,ftPt,ftEta,ftPhi,ftCharge,ftEff,ftV2,ftV3,ftV4,ftPtAssoc3,ftNPtAssoc3,nGoodTracks); | |
1609 | } | |
1610 | else leadPart=TrackCutsMC(fMC,ftPt,ftEta,ftPhi,ftCharge,ftEff,ftV2,ftV3,ftV4,ftPtAssoc3,ftNPtAssoc3,nGoodTracks); | |
1611 | //Printf("nGoodTracks %d",nGoodTracks[0]); | |
1612 | int nearEta=0,NearXE=0; | |
1613 | int nearEta2=0; | |
1614 | ||
1615 | if(fDEBUG)Printf("Track Loop"); | |
1616 | for(int iTrack=0;iTrack<nGoodTracks[ievent];iTrack++){ | |
1617 | if(fDEBUG)Printf("Track%d Pt%f",iTrack,ftPt[iTrack]); | |
1618 | //if(ftPhi[iTrack]<fdPhiMin)ftPhi[iTrack]+=2*fPi; | |
1619 | //if(ftPhi[iTrack]>fdPhiMax)ftPhi[iTrack]-=2*fPi; | |
69088c96 | 1620 | for(int c=0;c<maxArray;c++){ |
d514944f | 1621 | // Printf("c%d mult%d",c,multArray[c]); |
1622 | fHistPt[multArray[c]][ievent]->Fill(ftPt[iTrack],ftEff[iTrack]); | |
1623 | fHistPtEff[multArray[c]][ievent]->Fill(ftPt[iTrack]); | |
1624 | fHistPhi[multArray[c]][ievent]->Fill(ftPhi[iTrack],ftPt[iTrack],ftEff[iTrack]); | |
1625 | fHistPhiPt[multArray[c]][ievent]->Fill(ftPhi[iTrack],ftPt[iTrack],ftPt[iTrack]*ftEff[iTrack]); | |
1626 | fHistEta[multArray[c]][ievent]->Fill(ftEta[iTrack],ftPt[iTrack],ftEff[iTrack]); | |
1627 | fHistEtaPt[multArray[c]][ievent]->Fill(ftEta[iTrack],ftPt[iTrack],ftPt[iTrack]*ftEff[iTrack]); | |
1628 | fHistPhiEta[multArray[c]][ievent]->Fill(ftPhi[iTrack],ftEta[iTrack],ftPt[iTrack],ftEff[iTrack]); | |
1629 | fHistPhiEtaPt[multArray[c]][ievent]->Fill(ftPhi[iTrack],ftEta[iTrack],ftPt[iTrack],ftPt[iTrack]*ftEff[iTrack]); | |
3b7aa4ba | 1630 | } |
d514944f | 1631 | for(int i=0;i<fNTPtBins;i++){ |
1632 | if(ftPt[iTrack]>fPtTrigArray[i]&&ftPt[iTrack]<=fPtTrigArray[i+1]&&fabs(ftEta[iTrack])<fTrigEtaCut){ | |
1633 | if(fDEBUG)Printf("In %fpt%f",fPtTrigArray[i],fPtTrigArray[i+1]); | |
1634 | fHistMultTrig[i][ievent]->Fill(tMult); | |
1635 | for(int c=0;c<maxArray;c++){ | |
1636 | nTriggers[i][multArray[c]][ievent]++; | |
1637 | fHistNTrigger[multArray[c]][ievent]->Fill(i,ftEff[iTrack]); | |
1638 | fHistNTriggerPt[multArray[c]][ievent]->Fill(i,ftPt[iTrack]*ftEff[iTrack]); | |
3b7aa4ba | 1639 | } |
d514944f | 1640 | |
1641 | if(fDEBUG)Printf("Assiciated Particle Loop"); | |
1642 | // Printf("GoodTracks %d Cent%d",nGoodTracks[ievent],multArray[0]); | |
1643 | for(int iTrack2=0;iTrack2<nGoodTracks[ievent];iTrack2++){ | |
1644 | if(iTrack==iTrack2) continue; | |
1645 | if(ftPt[iTrack2]>ftPt[iTrack])continue; | |
1646 | tdPhi=ftPhi[iTrack]-ftPhi[iTrack2]; | |
1647 | if(tdPhi<-fPi)tdPhi+=2*fPi; | |
1648 | if(tdPhi>fPi)tdPhi-=2*fPi; | |
1649 | if(fabs(tdPhi)<fNearPhiCut)nearEta=1; | |
1650 | else nearEta=0; | |
1651 | if(fabs(tdPhi)<fXECut)NearXE=1; | |
1652 | else NearXE=0; | |
1653 | if(fabs(tdPhi)<(fPi/2))tdEta=ftEta[iTrack]-ftEta[iTrack2]; | |
1654 | else tdEta=ftEta[iTrack]+ftEta[iTrack2]; | |
1655 | if(tdPhi<fdPhiMin)tdPhi+=2*fPi; | |
1656 | if(tdPhi>fdPhiMax)tdPhi-=2*fPi; | |
1657 | if((ftCharge[iTrack]<0&&ftCharge[iTrack2]<0)||(ftCharge[iTrack]>0&&ftCharge[iTrack2]>0))sign=1; | |
1658 | else sign=2; | |
1659 | if(fDEBUG) Printf("dPhi %f dEta %f",tdPhi,tdEta); | |
1660 | for(int c=0;c<maxArray;c++){//loop over multiplicity bins | |
1661 | fHistPtTrig[i][multArray[c]][ievent]->Fill(ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1662 | fHistPhiTrig[i][multArray[c]][ievent]->Fill(ftPhi[iTrack2],ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1663 | fHistPhiTrigPt[i][multArray[c]][ievent]->Fill(ftPhi[iTrack2],ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1664 | fHistEtaTrig[i][multArray[c]][ievent]->Fill(ftEta[iTrack2],ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1665 | fHistEtaTrigPt[i][multArray[c]][ievent]->Fill(ftEta[iTrack2],ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1666 | ||
1667 | fHistPhiEtaTrig[i][multArray[c]][ievent]->Fill(ftPhi[iTrack2],ftEta[iTrack2],ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1668 | fHistPhiEtaTrigPt[i][multArray[c]][ievent]->Fill(ftPhi[iTrack2],ftEta[iTrack2],ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1669 | fHistDeltaPhi[i][multArray[c]][0][ievent]->Fill(tdPhi,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1670 | fHistDeltaPhiPt[i][multArray[c]][0][ievent]->Fill(tdPhi,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1671 | fHistDeltaPhi[i][multArray[c]][sign][ievent]->Fill(tdPhi,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1672 | fHistDeltaPhiPt[i][multArray[c]][sign][ievent]->Fill(tdPhi,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1673 | ||
69088c96 | 1674 | if(nearEta){ |
d514944f | 1675 | fHistDeltaEtaN[i][multArray[c]][0][ievent]->Fill(tdEta,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); |
1676 | fHistDeltaEtaNPt[i][multArray[c]][0][ievent]->Fill(tdEta,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1677 | fHistDeltaEtaN[i][multArray[c]][sign][ievent]->Fill(tdEta,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1678 | fHistDeltaEtaNPt[i][multArray[c]][sign][ievent]->Fill(tdEta,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
3b7aa4ba | 1679 | } |
1680 | else{ | |
d514944f | 1681 | fHistDeltaEtaA[i][multArray[c]][0][ievent]->Fill(tdEta,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); |
1682 | fHistDeltaEtaAPt[i][multArray[c]][0][ievent]->Fill(tdEta,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1683 | fHistDeltaEtaA[i][multArray[c]][sign][ievent]->Fill(tdEta,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1684 | fHistDeltaEtaAPt[i][multArray[c]][sign][ievent]->Fill(tdEta,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1685 | } | |
1686 | fHistDeltaPhiEta[i][multArray[c]][ievent]->Fill(tdPhi,tdEta,ftPt[iTrack2],ftEff[iTrack2]*ftEff[iTrack]); | |
1687 | fHistDeltaPhiEtaPt[i][multArray[c]][ievent]->Fill(tdPhi,tdEta,ftPt[iTrack2],ftPt[iTrack2]*ftEff[iTrack2]*ftEff[iTrack]); | |
1688 | ||
1689 | //only fill these if trigger particle is the leading particle | |
69088c96 | 1690 | if(iTrack==leadPart){ |
3b7aa4ba | 1691 | if(NearXE){ |
d514944f | 1692 | tXE=ftPt[iTrack2]*cos(tdPhi)/ftPt[iTrack]; |
1693 | fHistXEN[i][multArray[c]][ievent]->Fill(tXE,ftEff[iTrack2]*ftEff[iTrack]); | |
3b7aa4ba | 1694 | } |
1695 | else{ | |
d514944f | 1696 | tXE=ftPt[iTrack2]*cos(tdPhi+fPi)/ftPt[iTrack]; |
1697 | fHistXEA[i][multArray[c]][ievent]->Fill(tXE,ftEff[iTrack2]*ftEff[iTrack]); | |
3b7aa4ba | 1698 | } |
1699 | } | |
d514944f | 1700 | |
1701 | }//Centrality loop (c) | |
1702 | ||
1703 | //3-particle Correlations | |
1704 | for(int iTrack3=0;iTrack3<nGoodTracks[ievent];iTrack3++){ | |
1705 | if(iTrack2==iTrack3)continue; | |
1706 | if(ftPt[iTrack3]>ftPt[iTrack])continue; | |
1707 | tdPhi2=ftPhi[iTrack]-ftPhi[iTrack3]; | |
3b7aa4ba | 1708 | if(tdPhi2<-fPi)tdPhi2+=2*fPi; |
1709 | if(tdPhi2>fPi)tdPhi2-=2*fPi; | |
d514944f | 1710 | if(fabs(tdPhi2)<fNearPhiCut&&nearEta==1)nearEta2=1; |
69088c96 | 1711 | else nearEta2=0; |
d514944f | 1712 | //if(fabs(tdPhi)<fXECut)NearXE=1; |
1713 | //else NearXE=0; | |
1714 | if(fabs(tdPhi2)<(fPi/2))tdEta2=ftEta[iTrack]-ftEta[iTrack3]; | |
1715 | else tdEta2=ftEta[iTrack]+ftEta[iTrack3]; | |
1716 | if(tdPhi2<fdPhiMin)tdPhi2+=2*fPi; | |
3b7aa4ba | 1717 | if(tdPhi2>fdPhiMax)tdPhi2-=2*fPi; |
d514944f | 1718 | // if((ftCharge[iTrack]<0&&ftCharge[iTrack2]<0)||(ftCharge[iTrack]>0&&ftCharge[iTrack2]>0))sign=1; |
1719 | if((ftCharge[iTrack]<0&&ftCharge[iTrack2]<0&&ftCharge[iTrack3]<0)||(ftCharge[iTrack]>0&&ftCharge[iTrack2]>0&&ftCharge[iTrack3]>0))sign=1; | |
1720 | else if((ftCharge[iTrack3]<0&&ftCharge[iTrack2]<0)||(ftCharge[iTrack3]>0&&ftCharge[iTrack2]>0))sign=2; | |
69088c96 | 1721 | else sign=3; |
d514944f | 1722 | for(int e=0;e<ftNPtAssoc3[iTrack2];e++){//check associated pT bin |
1723 | for(int f=0;f<ftNPtAssoc3[iTrack3];f++){ | |
1724 | if(ftPtAssoc3[iTrack2][e]==ftPtAssoc3[iTrack3][f]){ | |
1725 | for(int c=0;c<maxArray;c++){//loop over multiplicity bins | |
1726 | fHistDeltaPhiPhi[i][ftPtAssoc3[iTrack2][e]][multArray[c]][0][ievent]->Fill(tdPhi,tdPhi2,ftEff[iTrack2]*ftEff[iTrack3]*ftEff[iTrack]); | |
1727 | fHistDeltaPhiPhi[i][ftPtAssoc3[iTrack2][e]][multArray[c]][sign][ievent]->Fill(tdPhi2,tdPhi,ftEff[iTrack2]*ftEff[iTrack3]*ftEff[iTrack]); | |
1728 | ||
1729 | ||
1730 | if(nearEta2){ | |
1731 | fHistDeltaEtaEta[i][ftPtAssoc3[iTrack2][e]][multArray[c]][0][ievent]->Fill(tdEta,tdEta2,ftEff[iTrack2]*ftEff[iTrack3]*ftEff[iTrack]); | |
1732 | fHistDeltaEtaEta[i][ftPtAssoc3[iTrack2][e]][multArray[c]][sign][ievent]->Fill(tdEta,tdEta2,ftEff[iTrack2]*ftEff[iTrack3]*ftEff[iTrack]); | |
1733 | } | |
1734 | }//multiplicity loop (c) | |
3b7aa4ba | 1735 | } |
1736 | } | |
d514944f | 1737 | }//track checking loops |
1738 | }//iTrack3 | |
1739 | }//iTrack2 (associated track loop) | |
1740 | ||
1741 | if(fDEBUG)Printf("Mixed Event Loop"); | |
1742 | for(int c=0;c<maxArray;c++){ | |
1743 | //Printf("c%d mult%d",c,multArray[c]); | |
1744 | int d=multArray[c];//Centrality bin we are in | |
1745 | if(fMixEnd[d][vertexBin][ievent]>2){//check if there are any mixed events for this bin, require 2 for soft-soft mixing | |
1746 | for(int imix=0;imix<fMixEnd[d][vertexBin][ievent];imix++){//loop over the stored mixed events | |
1747 | fHistNMix[d][ievent]->Fill(i); | |
1748 | //Printf("GoodTracksMixed %d Cent%d fMixEnd%d",fMixTrack[imix][d][vertexBin][ievent],d,fMixEnd[d][vertexBin][ievent]); | |
1749 | for(int iTrack2=0;iTrack2<fMixTrack[imix][d][vertexBin][ievent];iTrack2++){ | |
1750 | if(ftPt[iTrack]<fMPt[imix][d][vertexBin][ievent][iTrack2])continue; | |
1751 | tdPhi=ftPhi[iTrack]-fMPhi[imix][d][vertexBin][ievent][iTrack2]; | |
1752 | if(tdPhi<-fPi)tdPhi+=2*fPi; | |
1753 | if(tdPhi>fPi)tdPhi-=2*fPi; | |
1754 | if(fabs(tdPhi)<fNearPhiCut)nearEta=1; | |
1755 | else nearEta=0; | |
1756 | if(fabs(tdPhi)<fXECut)NearXE=1; | |
1757 | else NearXE=0; | |
1758 | if(fabs(tdPhi)<(fPi/2))tdEta=ftEta[iTrack]-fMEta[imix][d][vertexBin][ievent][iTrack2]; | |
1759 | else tdEta=ftEta[iTrack]+fMEta[imix][d][vertexBin][ievent][iTrack2]; | |
1760 | if(tdPhi<fdPhiMin)tdPhi+=2*fPi; | |
1761 | if(tdPhi>fdPhiMax)tdPhi-=2*fPi; | |
1762 | if((ftCharge[iTrack]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]<0)||(ftCharge[iTrack]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]>0))sign=1; | |
1763 | else sign=2; | |
1764 | V2_T1=2*fMV2[imix][d][vertexBin][ievent][iTrack2]*ftV2[iTrack]*cos(2*tdPhi); | |
1765 | V3_T1=2*fMV3[imix][d][vertexBin][ievent][iTrack2]*ftV3[iTrack]*cos(3*tdPhi); | |
1766 | V4_T1=2*fMV4[imix][d][vertexBin][ievent][iTrack2]*ftV4[iTrack]*cos(4*tdPhi); | |
1767 | ||
1768 | fHistDeltaPhiMix[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1769 | fHistDeltaPhiMixV2[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1); | |
1770 | fHistDeltaPhiMixV3[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1); | |
1771 | fHistDeltaPhiMixV4[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1); | |
1772 | fHistDeltaPhiMixPt[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1773 | fHistDeltaPhiMixV2Pt[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1774 | fHistDeltaPhiMixV3Pt[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1775 | fHistDeltaPhiMixV4Pt[i][d][0][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1776 | fHistDeltaPhiMix[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1777 | fHistDeltaPhiMixV2[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1); | |
1778 | fHistDeltaPhiMixV3[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1); | |
1779 | fHistDeltaPhiMixV4[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1); | |
1780 | fHistDeltaPhiMixPt[i][d][sign][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1781 | fHistDeltaPhiMixV2Pt[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1782 | fHistDeltaPhiMixV3Pt[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1783 | fHistDeltaPhiMixV4Pt[i][d][sign][ievent]->Fill(tdPhi,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1784 | ||
1785 | if(nearEta){ | |
1786 | fHistDeltaEtaNMix[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1787 | fHistDeltaEtaNMixV2[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1); | |
1788 | fHistDeltaEtaNMixV3[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1); | |
1789 | fHistDeltaEtaNMixV4[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1); | |
1790 | fHistDeltaEtaNMixPt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1791 | fHistDeltaEtaNMix[i][d][sign][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1792 | fHistDeltaEtaNMixPt[i][d][sign][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1793 | fHistDeltaEtaNMixV2Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1794 | fHistDeltaEtaNMixV3Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1795 | fHistDeltaEtaNMixV4Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1796 | } | |
1797 | else{ | |
1798 | fHistDeltaEtaAMix[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1799 | fHistDeltaEtaAMixV2[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1); | |
1800 | fHistDeltaEtaAMixV3[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1); | |
1801 | fHistDeltaEtaAMixV4[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1); | |
1802 | fHistDeltaEtaAMixPt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1803 | fHistDeltaEtaAMix[i][d][sign][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1804 | fHistDeltaEtaAMixPt[i][d][sign][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1805 | fHistDeltaEtaAMixV2Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1806 | fHistDeltaEtaAMixV3Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1807 | fHistDeltaEtaAMixV4Pt[i][d][0][ievent]->Fill(tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1*fMPt[imix][d][vertexBin][ievent][iTrack2]); | |
1808 | } | |
1809 | ||
1810 | fHistDeltaPhiEtaMix[i][d][ievent]->Fill(tdPhi,tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1811 | fHistDeltaPhiEtaMixV2[i][d][ievent]->Fill(tdPhi,tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V2_T1); | |
1812 | fHistDeltaPhiEtaMixV3[i][d][ievent]->Fill(tdPhi,tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V3_T1); | |
1813 | fHistDeltaPhiEtaMixV4[i][d][ievent]->Fill(tdPhi,tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMEff[imix][d][vertexBin][ievent][iTrack2]*V4_T1); | |
1814 | fHistDeltaPhiEtaMixPt[i][d][ievent]->Fill(tdPhi,tdEta,fMPt[imix][d][vertexBin][ievent][iTrack2],fMPt[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1815 | ||
1816 | if(iTrack==leadPart){ | |
1817 | if(NearXE){ | |
1818 | tXE=fMPt[imix][d][vertexBin][ievent][iTrack2]*cos(tdPhi)/ftPt[iTrack]; | |
1819 | fHistXENMix[i][d][ievent]->Fill(tXE,fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
3b7aa4ba | 1820 | } |
d514944f | 1821 | else{ |
1822 | tXE=fMPt[imix][d][vertexBin][ievent][iTrack2]*cos(tdPhi+fPi)/ftPt[iTrack]; | |
1823 | fHistXEAMix[i][multArray[c]][ievent]->Fill(tXE,fMEff[imix][d][vertexBin][ievent][iTrack2]); | |
1824 | } | |
1825 | } | |
1826 | ||
1827 | //3-particle correlation soft-soft term (both associated from the same event) | |
1828 | for(int iTrack3=0;iTrack3<fMixTrack[imix][d][vertexBin][ievent];iTrack3++){ | |
1829 | if(iTrack3==iTrack2)continue; | |
1830 | if(ftPt[iTrack]<fMPt[imix][d][vertexBin][ievent][iTrack3])continue; | |
1831 | tdPhi2=ftPhi[iTrack]-fMPhi[imix][d][vertexBin][ievent][iTrack3]; | |
1832 | if(tdPhi2<-fPi)tdPhi2+=2*fPi; | |
1833 | if(tdPhi2>fPi)tdPhi2-=2*fPi; | |
1834 | if(fabs(tdPhi2)<fNearPhiCut&&nearEta)nearEta2=1; | |
1835 | else nearEta2=0; | |
1836 | if(fabs(tdPhi2)<(fPi/2))tdEta2=ftEta[iTrack]-fMEta[imix][d][vertexBin][ievent][iTrack3]; | |
1837 | else tdEta2=ftEta[iTrack]+fMEta[imix][d][vertexBin][ievent][iTrack3]; | |
1838 | if(tdPhi2<fdPhiMin)tdPhi2+=2*fPi; | |
1839 | if(tdPhi2>fdPhiMax)tdPhi2-=2*fPi; | |
1840 | ||
1841 | if((ftCharge[iTrack]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack3]<0)||(ftCharge[iTrack]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack3]>0))sign=1; | |
1842 | else if((fMCharge[imix][d][vertexBin][ievent][iTrack3]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]<0)||(fMCharge[imix][d][vertexBin][ievent][iTrack3]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]>0))sign=2; | |
1843 | else sign=3; | |
1844 | for(int e=0;e<fMNPtAssoc3[imix][d][vertexBin][ievent][iTrack2];e++){//check associated pT bin | |
1845 | for(int f=0;f<fMNPtAssoc3[imix][d][vertexBin][ievent][iTrack3];f++){ | |
1846 | if(fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]==fMPtAssoc3[imix][d][vertexBin][ievent][f][iTrack3]){ | |
1847 | fHistDeltaPhiPhiSS[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack3]); | |
1848 | fHistDeltaPhiPhiSS[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack3]); | |
1849 | ||
1850 | if(nearEta2){ | |
1851 | fHistDeltaEtaEtaSS[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack3]); | |
1852 | fHistDeltaEtaEtaSS[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix][d][vertexBin][ievent][iTrack3]); | |
1853 | }//near-side | |
1854 | } | |
1855 | } | |
1856 | }//associated pt bin | |
1857 | }//iTrack3 | |
1858 | ||
1859 | //3-particle mixed event (associated from different events) | |
1860 | int imix2=imix+1; | |
1861 | if(imix2>=fMixEnd[d][vertexBin][ievent])imix2=0; | |
1862 | if(imix2==imix)continue; | |
1863 | for(int iTrack3=0;iTrack3<fMixTrack[imix2][d][vertexBin][ievent];iTrack3++){ | |
1864 | if(ftPt[iTrack]<fMPt[imix2][d][vertexBin][ievent][iTrack3])continue; | |
1865 | tdPhi2=ftPhi[iTrack]-fMPhi[imix2][d][vertexBin][ievent][iTrack3]; | |
1866 | if(tdPhi2<-fPi)tdPhi2+=2*fPi; | |
1867 | if(tdPhi2>fPi)tdPhi2-=2*fPi; | |
1868 | if(fabs(tdPhi2)<fNearPhiCut&&nearEta)nearEta2=1; | |
1869 | else nearEta2=0; | |
1870 | if(fabs(tdPhi2)<(fPi/2))tdEta2=ftEta[iTrack]-fMEta[imix2][d][vertexBin][ievent][iTrack3]; | |
1871 | else tdEta2=ftEta[iTrack]+fMEta[imix2][d][vertexBin][ievent][iTrack3]; | |
1872 | if(tdPhi2<fdPhiMin)tdPhi2+=2*fPi; | |
1873 | if(tdPhi2>fdPhiMax)tdPhi2-=2*fPi; | |
1874 | V2_T2=2*ftV2[iTrack]*fMV2[imix2][d][vertexBin][ievent][iTrack3]*cos(2*tdPhi2); | |
1875 | V3_T2=2*ftV3[iTrack]*fMV3[imix2][d][vertexBin][ievent][iTrack3]*cos(3*tdPhi2); | |
1876 | V4_T2=2*ftV4[iTrack]*fMV4[imix2][d][vertexBin][ievent][iTrack3]*cos(4*tdPhi2); | |
1877 | V42_T12=2*ftV4[iTrack]*fMV2[imix2][d][vertexBin][ievent][iTrack3]*fMV2[imix][d][vertexBin][ievent][iTrack2]*cos(2*tdPhi+2*tdPhi2); | |
1878 | V42_1T2=2*fMV4[imix][d][vertexBin][ievent][iTrack2]*ftV2[iTrack]*fMV2[imix2][d][vertexBin][ievent][iTrack3]*cos(4*tdPhi-2*tdPhi2); | |
1879 | V42_2T1=2*fMV4[imix2][d][vertexBin][ievent][iTrack3]*ftV2[iTrack]*fMV2[imix][d][vertexBin][ievent][iTrack2]*cos(4*tdPhi2-2*tdPhi); | |
1880 | V2_A=2*fMV2[imix2][d][vertexBin][ievent][iTrack3]*fMV2[imix][d][vertexBin][ievent][iTrack2]*cos(2*(tdPhi-tdPhi2)); | |
1881 | V3_A=2*fMV3[imix2][d][vertexBin][ievent][iTrack3]*fMV3[imix][d][vertexBin][ievent][iTrack2]*cos(3*(tdPhi-tdPhi2)); | |
1882 | V4_A=2*fMV4[imix2][d][vertexBin][ievent][iTrack3]*fMV4[imix][d][vertexBin][ievent][iTrack2]*cos(4*(tdPhi-tdPhi2)); | |
1883 | ||
1884 | V2=V2_T1+V2_T2; | |
1885 | V3=V3_T1+V3_T2; | |
1886 | V4=V4_T1+V4_T2; | |
1887 | V2V2V4=V42_T12+V42_1T2+V42_2T1; | |
1888 | ||
1889 | if((ftCharge[iTrack]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]<0&&fMCharge[imix2][d][vertexBin][ievent][iTrack3]<0)||(ftCharge[iTrack]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]>0&&fMCharge[imix2][d][vertexBin][ievent][iTrack3]>0))sign=1; | |
1890 | else if((fMCharge[imix2][d][vertexBin][ievent][iTrack3]<0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]<0)||(fMCharge[imix2][d][vertexBin][ievent][iTrack3]>0&&fMCharge[imix][d][vertexBin][ievent][iTrack2]>0))sign=2; | |
1891 | else sign=3; | |
1892 | for(int e=0;e<fMNPtAssoc3[imix][d][vertexBin][ievent][iTrack2];e++){//check associated pT bin | |
1893 | for(int f=0;f<fMNPtAssoc3[imix2][d][vertexBin][ievent][iTrack3];f++){ | |
1894 | if(fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]==fMPtAssoc3[imix2][d][vertexBin][ievent][f][iTrack3]){ | |
1895 | fHistDeltaPhiPhiMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1896 | fHistDeltaPhiPhiMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1897 | fHistDeltaPhiPhiMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]);//free factor of 2 in statistics | |
1898 | fHistDeltaPhiPhiMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1899 | //v2 | |
1900 | fHistDeltaPhiPhiMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1901 | fHistDeltaPhiPhiMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1902 | fHistDeltaPhiPhiMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2);//free factor of 2 in statistics | |
1903 | fHistDeltaPhiPhiMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1904 | fHistDeltaPhiPhiSSV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2_A); | |
1905 | fHistDeltaPhiPhiSSV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2_A); | |
1906 | //v3 | |
1907 | fHistDeltaPhiPhiMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1908 | fHistDeltaPhiPhiMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1909 | fHistDeltaPhiPhiMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3);//free factor of 2 in statistics | |
1910 | fHistDeltaPhiPhiMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1911 | fHistDeltaPhiPhiSSV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3_A); | |
1912 | fHistDeltaPhiPhiSSV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3_A); | |
1913 | //v4 | |
1914 | fHistDeltaPhiPhiMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1915 | fHistDeltaPhiPhiMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1916 | fHistDeltaPhiPhiMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4);//free factor of 2 in statistics | |
1917 | fHistDeltaPhiPhiMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1918 | fHistDeltaPhiPhiSSV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4_A); | |
1919 | fHistDeltaPhiPhiSSV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4_A); | |
1920 | //v2v2v4 | |
1921 | fHistDeltaPhiPhiMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1922 | fHistDeltaPhiPhiMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi,tdPhi2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1923 | fHistDeltaPhiPhiMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4);//free factor of 2 in statistics | |
1924 | fHistDeltaPhiPhiMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdPhi2,tdPhi,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1925 | ||
1926 | if(nearEta2){ | |
1927 | fHistDeltaEtaEtaMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1928 | fHistDeltaEtaEtaMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1929 | fHistDeltaEtaEtaMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1930 | fHistDeltaEtaEtaMix[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]); | |
1931 | //v2 | |
1932 | fHistDeltaEtaEtaMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1933 | fHistDeltaEtaEtaMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1934 | fHistDeltaEtaEtaMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1935 | fHistDeltaEtaEtaMixV2[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2); | |
1936 | //v3 | |
1937 | fHistDeltaEtaEtaMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1938 | fHistDeltaEtaEtaMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1939 | fHistDeltaEtaEtaMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1940 | fHistDeltaEtaEtaMixV3[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V3); | |
1941 | //v4 | |
1942 | fHistDeltaEtaEtaMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1943 | fHistDeltaEtaEtaMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1944 | fHistDeltaEtaEtaMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1945 | fHistDeltaEtaEtaMixV4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V4); | |
1946 | //v2v2v4 | |
1947 | fHistDeltaEtaEtaMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1948 | fHistDeltaEtaEtaMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta,tdEta2,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1949 | fHistDeltaEtaEtaMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][0][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1950 | fHistDeltaEtaEtaMixV2V2V4[i][fMPtAssoc3[imix][d][vertexBin][ievent][e][iTrack2]][d][sign][ievent]->Fill(tdEta2,tdEta,fMEff[imix][d][vertexBin][ievent][iTrack2]*fMEff[imix2][d][vertexBin][ievent][iTrack3]*V2V2V4); | |
1951 | ||
1952 | }//near-side | |
1953 | } | |
1954 | } | |
1955 | }//associated pt bin | |
1956 | }//iTrack3 | |
1957 | }//iTrack2 | |
1958 | }//imix | |
1959 | }//fMixEnd | |
1960 | }//Centrality bins (c) | |
1961 | }//pt trig cuts | |
1962 | }//i Pt Trig | |
1963 | }//itrack | |
3b7aa4ba | 1964 | |
d514944f | 1965 | //now store this event for mixing (using these dynamic arrays to save memory) |
1966 | if(fDEBUG)Printf("Store Event For Mixing"); | |
1967 | for(int c=0;c<maxArray;c++){//loops over centrality bins | |
1968 | int d=multArray[c];//too many nested arrays looked confusing d=which centrality bin | |
1969 | if(fMixEnd[d][vertexBin][ievent]<=fNMix)fMixEnd[d][vertexBin][ievent]++; | |
1970 | if(fMixPointer[d][vertexBin][ievent]<(fNMix-1)&&fMixEnd[d][vertexBin][ievent]!=1)fMixPointer[d][vertexBin][ievent]++; | |
1971 | else fMixPointer[d][vertexBin][ievent]=0; | |
1972 | int e=fMixPointer[d][vertexBin][ievent];//nested arrays (e is event number in pool) | |
1973 | delete [] fMPt[e][d][vertexBin][ievent]; | |
1974 | delete [] fMPhi[e][d][vertexBin][ievent]; | |
1975 | delete [] fMEta[e][d][vertexBin][ievent]; | |
1976 | delete [] fMCharge[e][d][vertexBin][ievent]; | |
1977 | delete [] fMEff[e][d][vertexBin][ievent]; | |
1978 | delete [] fMV2[e][d][vertexBin][ievent]; | |
1979 | delete [] fMV3[e][d][vertexBin][ievent]; | |
1980 | delete [] fMV4[e][d][vertexBin][ievent]; | |
1981 | delete [] fMNPtAssoc3[e][d][vertexBin][ievent]; | |
1982 | for(int jj=0;jj<10;jj++){ | |
1983 | delete [] fMPtAssoc3[e][d][vertexBin][ievent][jj]; | |
1984 | } | |
1985 | fMPt[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1986 | fMPhi[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1987 | fMEta[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1988 | fMCharge[e][d][vertexBin][ievent]=new Short_t [nGoodTracks[ievent]]; | |
1989 | fMEff[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1990 | fMV2[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1991 | fMV3[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1992 | fMV4[e][d][vertexBin][ievent]=new Float_t [nGoodTracks[ievent]]; | |
1993 | fMixTrack[e][d][vertexBin][ievent]=nGoodTracks[ievent]; | |
1994 | fMNPtAssoc3[e][d][vertexBin][ievent]=new Short_t [nGoodTracks[ievent]]; | |
1995 | for(int jj=0;jj<10;jj++){ | |
1996 | fMPtAssoc3[e][d][vertexBin][ievent][jj]=new Short_t [nGoodTracks[ievent]]; | |
1997 | } | |
3b7aa4ba | 1998 | |
d514944f | 1999 | for(int iTrack=0;iTrack<nGoodTracks[ievent];iTrack++){ |
2000 | fMPt[e][d][vertexBin][ievent][iTrack]=ftPt[iTrack]; | |
2001 | fMPhi[e][d][vertexBin][ievent][iTrack]=ftPhi[iTrack]; | |
2002 | fMEta[e][d][vertexBin][ievent][iTrack]=ftEta[iTrack]; | |
2003 | fMCharge[e][d][vertexBin][ievent][iTrack]=ftCharge[iTrack]; | |
2004 | fMEff[e][d][vertexBin][ievent][iTrack]=ftEff[iTrack]; | |
2005 | fMV2[e][d][vertexBin][ievent][iTrack]=ftV2[iTrack]; | |
2006 | fMV3[e][d][vertexBin][ievent][iTrack]=ftV3[iTrack]; | |
2007 | fMV4[e][d][vertexBin][ievent][iTrack]=ftV4[iTrack]; | |
2008 | fMNPtAssoc3[e][d][vertexBin][ievent][iTrack]=ftNPtAssoc3[iTrack]; | |
2009 | for(int jj=0;jj<ftNPtAssoc3[iTrack];jj++){ | |
2010 | fMPtAssoc3[e][d][vertexBin][ievent][jj][iTrack]=ftPtAssoc3[iTrack][jj]; | |
2011 | } | |
2012 | }//iTracks | |
2013 | }//Centrality (c) | |
2014 | } //sim | |
2015 | }//ievent | |
2016 | ||
3b7aa4ba | 2017 | //track=0; |
2018 | //track2=0; | |
d514944f | 2019 | |
3b7aa4ba | 2020 | |
2021 | PostData(0, fOutput); | |
2022 | //get rid of these arrays from memory | |
69088c96 | 2023 | delete [] ftPhi; |
2024 | delete [] ftEta; | |
2025 | delete [] ftPt; | |
2026 | delete [] ftCharge; | |
2027 | delete [] ftEff; | |
d514944f | 2028 | delete [] ftV2; |
2029 | delete [] ftV3; | |
2030 | delete [] ftV4; | |
69088c96 | 2031 | delete [] ftNPtAssoc3; |
2032 | delete [] ftPtAssoc3; | |
2033 | ftPhi=NULL; | |
2034 | ftEta=NULL; | |
2035 | ftPt=NULL; | |
2036 | ftCharge=NULL; | |
2037 | ftEff=NULL; | |
d514944f | 2038 | ftV2=NULL; |
2039 | ftV3=NULL; | |
2040 | ftV4=NULL; | |
69088c96 | 2041 | ftNPtAssoc3=NULL; |
2042 | ftPtAssoc3=NULL; | |
3b7aa4ba | 2043 | |
d514944f | 2044 | }//Exec |
3b7aa4ba | 2045 | |
2046 | //--------------------------------------------------- | |
2047 | void AliAnalysisTaskDiHadron::Terminate(Option_t *){ | |
69088c96 | 2048 | //Terminates the code, frees up memory |
3b7aa4ba | 2049 | for(int ii=0;ii<fNMix;ii++){ |
2050 | for(int cc=0;cc<fNCentBins;cc++){ | |
2051 | for(int vtx=0;vtx<fNVertexBins;vtx++){ | |
2052 | for(int jj=0;jj<2;jj++){ | |
2053 | delete [] fMPt[ii][cc][vtx][jj]; | |
2054 | delete [] fMPhi[ii][cc][vtx][jj]; | |
2055 | delete [] fMEta[ii][cc][vtx][jj]; | |
2056 | delete [] fMCharge[ii][cc][vtx][jj]; | |
2057 | delete [] fMEff[ii][cc][vtx][jj]; | |
d514944f | 2058 | delete [] fMV2[ii][cc][vtx][jj]; |
2059 | delete [] fMV3[ii][cc][vtx][jj]; | |
2060 | delete [] fMV4[ii][cc][vtx][jj]; | |
3b7aa4ba | 2061 | delete [] fMNPtAssoc3[ii][cc][vtx][jj]; |
2062 | for(int qq=0;qq<10;qq++){ | |
2063 | delete [] fMPtAssoc3[ii][cc][vtx][jj][qq]; | |
2064 | fMPtAssoc3[ii][cc][vtx][jj][qq]=NULL; | |
2065 | } | |
2066 | fMPt[ii][cc][vtx][jj]=NULL; | |
2067 | fMPhi[ii][cc][vtx][jj]=NULL; | |
2068 | fMEta[ii][cc][vtx][jj]=NULL; | |
2069 | fMCharge[ii][cc][vtx][jj]=NULL; | |
2070 | fMEff[ii][cc][vtx][jj]=NULL; | |
d514944f | 2071 | fMV2[ii][cc][vtx][jj]=NULL; |
2072 | fMV3[ii][cc][vtx][jj]=NULL; | |
2073 | fMV4[ii][cc][vtx][jj]=NULL; | |
3b7aa4ba | 2074 | fMNPtAssoc3[ii][cc][vtx][jj]=NULL; |
2075 | ||
2076 | } | |
2077 | } | |
2078 | } | |
2079 | } | |
0f3a7491 | 2080 | delete [] fFitLowParam; |
2081 | delete [] fFitHighParam; | |
2082 | delete [] fPtTrigArray; | |
2083 | delete [] fPtAssocArray; | |
2084 | delete [] fPtAssoc3Array1; | |
2085 | delete [] fPtAssoc3Array2; | |
2086 | delete [] fCentArrayMin; | |
2087 | delete [] fCentArrayMax; | |
2088 | delete [] fXEArray; | |
2089 | fFitLowParam=NULL; | |
2090 | fFitHighParam=NULL; | |
2091 | fPtTrigArray=NULL; | |
2092 | fPtAssocArray=NULL; | |
2093 | fPtAssoc3Array1=NULL; | |
2094 | fPtAssoc3Array2=NULL; | |
2095 | fCentArrayMin=NULL; | |
2096 | fCentArrayMax=NULL; | |
3b7aa4ba | 2097 | Printf("Terminate AliAnalysisTaskDiHadron"); |
2098 | } |