/****************************************************************************
* *
* This macro determines the impact parameter of each track in pp event *
* with respect to the primaty vertex position reconstructed using all *
* the other tracks in the event. This procedure is necessary to avoid *
* biases in the impact parameter estimate. *
* *
* Output: TNtuple (ntd0) on file ImpactParameters.root *
* There is one entry per track. The elements of the ntuple are: *
* 1) Event: Event number *
* 2) nTraks: Number of tracks for this event *
* 3) pt: Transverse momentum for the current track *
* 4) d0rphi: transverse impact parameter of the current track *
* 5) vx: x coordinate of the vertex *
* 6) vy: y coordinate of the vertex *
* origin: A.Dainese andrea.dainese@pd.infn.it *
****************************************************************************/
#if !defined(__CINT__) || defined(__MAKECINT__)
//-- --- standard headers-------------
#include <Riostream.h>
//--------Root headers ---------------
#include <TSystem.h>
#include <TFile.h>
#include <TNtuple.h>
#include <TString.h>
#include <TStopwatch.h>
#include <TObject.h>
#include <TVector3.h>
#include <TTree.h>
#include <TParticle.h>
#include <TArray.h>
//----- AliRoot headers ---------------
#include "alles.h"
#include "AliRun.h"
#include "AliKalmanTrack.h"
#include "AliITStrackV2.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
#include "AliV0vertex.h"
#include "AliV0vertexer.h"
#include "AliITSVertex.h"
#include "AliITSVertexer.h"
#include "AliITSVertexerTracks.h"
#endif
//-------------------------------------
// field (T)
const Double_t kBz = 0.4;
// this function ckecks file existence
Bool_t GetInputFile();
void MoveTracks(TTree& itsTree,TObjArray& array);
void AliITSImpactParametersPP(Int_t evFirst=0,Int_t evLast=0) {
const Char_t *name="AliITSImpactParametersPP";
cerr<<'\n'<<name<<"...\n";
gBenchmark->Start(name);
AliKalmanTrack::SetConvConst(100/0.299792458/kBz);
// check existence of input file
if(!GetInputFile()) { cerr<<"No tracks file found"<<endl; return; }
TString outName("ImpactParameters.root");
// primary vertex
Double_t v1[3] = {0.,0.,0,};
Int_t ev,itsEntries,i;
Int_t nTotEv=0;
Double_t pt,d0rphi;
Char_t trksName[100];
AliITStrackV2 *itstrack = 0;
// output ntuple
TNtuple *ntd0 = new TNtuple("ntd0","ntd0","Event:nTrks:pt:d0rphi:vx:vy");
// create the AliITSVertexerTracks object
AliITSVertexerTracks *vertexer1 = new AliITSVertexerTracks;
vertexer1->SetMinTracks(3);
vertexer1->SetDebug(0);
Int_t skipped[2];
// Open file with ITS tracks
TFile* itstrks = TFile::Open("AliITStracksV2.root");
// loop on events in file
for(ev=evFirst; ev<=evLast; ev++) {
printf(" --- Processing event %d ---\n",ev);
sprintf(trksName,"TreeT_ITS_%d",ev);
// tracks from ITS
TTree *itsTree =(TTree*)itstrks->Get(trksName);
if(!itsTree) continue;
itsEntries = (Int_t)itsTree->GetEntries();
printf("+++\n+++ Number of tracks in ITS: %d\n+++\n\n",itsEntries);
TObjArray tArray(itsEntries);
MoveTracks(*itsTree,tArray);
// count the total number of events
nTotEv++;
// loop on tracks
for(i=0; i<itsEntries; i++) {
itstrack = (AliITStrackV2*)tArray.At(i);
// pt
pt = itstrack->Pt();
// primary vertex from other tracks in event
Bool_t goodVtx = kFALSE;
vertexer1->SetVtxStart(0.,0.);
skipped[0] = i;
skipped[1] = -1;
vertexer1->SetSkipTracks(1,skipped);
AliITSVertex *vertex1 =
(AliITSVertex*)vertexer1->VertexOnTheFly(*itsTree);
if(vertex1->GetNContributors()>0) goodVtx = kTRUE;
vertex1->GetXYZ(v1);
//vertex1->PrintStatus();
// impact parameter w.r.t. v1 (in microns)
d0rphi = 10000.*itstrack->GetD(v1[0],v1[1]);
delete vertex1;
// fill ntuple
if (goodVtx) ntd0->Fill(ev,itsEntries,pt,d0rphi,v1[0],v1[1]);
itstrack = 0;
} // loop on tracks
delete itsTree;
} // loop on events in file
printf("\n+++\n+++ Total number of events: %d\n+++\n",nTotEv);
delete vertexer1;
itstrks->Close();
// store ntuple in a file
TFile* outroot = new TFile(outName.Data(),"recreate");
ntd0->Write();
outroot->Close();
delete outroot;
gBenchmark->Stop(name);
gBenchmark->Show(name);
return;
}
//___________________________________________________________________________
Bool_t GetInputFile() {
TString itsName("AliITStracksV2.root");
if(gSystem->AccessPathName(itsName.Data(),kFileExists)) return kFALSE;
return kTRUE;
}
//___________________________________________________________________________
void MoveTracks(TTree& itsTree,TObjArray& array) {
//
// this function creates two TObjArrays with tracks
//
Int_t entr = (Int_t)itsTree.GetEntries();
// trasfer tracks from tree to array
for(Int_t i=0; i<entr; i++) {
AliITStrackV2 *t = new AliITStrackV2;
itsTree.SetBranchAddress("tracks",&t);
itsTree.GetEvent(i);
array.AddLast(t);
}
return;
}
AliITSImpactParametersPP.C:1 AliITSImpactParametersPP.C:2 AliITSImpactParametersPP.C:3 AliITSImpactParametersPP.C:4 AliITSImpactParametersPP.C:5 AliITSImpactParametersPP.C:6 AliITSImpactParametersPP.C:7 AliITSImpactParametersPP.C:8 AliITSImpactParametersPP.C:9 AliITSImpactParametersPP.C:10 AliITSImpactParametersPP.C:11 AliITSImpactParametersPP.C:12 AliITSImpactParametersPP.C:13 AliITSImpactParametersPP.C:14 AliITSImpactParametersPP.C:15 AliITSImpactParametersPP.C:16 AliITSImpactParametersPP.C:17 AliITSImpactParametersPP.C:18 AliITSImpactParametersPP.C:19 AliITSImpactParametersPP.C:20 AliITSImpactParametersPP.C:21 AliITSImpactParametersPP.C:22 AliITSImpactParametersPP.C:23 AliITSImpactParametersPP.C:24 AliITSImpactParametersPP.C:25 AliITSImpactParametersPP.C:26 AliITSImpactParametersPP.C:27 AliITSImpactParametersPP.C:28 AliITSImpactParametersPP.C:29 AliITSImpactParametersPP.C:30 AliITSImpactParametersPP.C:31 AliITSImpactParametersPP.C:32 AliITSImpactParametersPP.C:33 AliITSImpactParametersPP.C:34 AliITSImpactParametersPP.C:35 AliITSImpactParametersPP.C:36 AliITSImpactParametersPP.C:37 AliITSImpactParametersPP.C:38 AliITSImpactParametersPP.C:39 AliITSImpactParametersPP.C:40 AliITSImpactParametersPP.C:41 AliITSImpactParametersPP.C:42 AliITSImpactParametersPP.C:43 AliITSImpactParametersPP.C:44 AliITSImpactParametersPP.C:45 AliITSImpactParametersPP.C:46 AliITSImpactParametersPP.C:47 AliITSImpactParametersPP.C:48 AliITSImpactParametersPP.C:49 AliITSImpactParametersPP.C:50 AliITSImpactParametersPP.C:51 AliITSImpactParametersPP.C:52 AliITSImpactParametersPP.C:53 AliITSImpactParametersPP.C:54 AliITSImpactParametersPP.C:55 AliITSImpactParametersPP.C:56 AliITSImpactParametersPP.C:57 AliITSImpactParametersPP.C:58 AliITSImpactParametersPP.C:59 AliITSImpactParametersPP.C:60 AliITSImpactParametersPP.C:61 AliITSImpactParametersPP.C:62 AliITSImpactParametersPP.C:63 AliITSImpactParametersPP.C:64 AliITSImpactParametersPP.C:65 AliITSImpactParametersPP.C:66 AliITSImpactParametersPP.C:67 AliITSImpactParametersPP.C:68 AliITSImpactParametersPP.C:69 AliITSImpactParametersPP.C:70 AliITSImpactParametersPP.C:71 AliITSImpactParametersPP.C:72 AliITSImpactParametersPP.C:73 AliITSImpactParametersPP.C:74 AliITSImpactParametersPP.C:75 AliITSImpactParametersPP.C:76 AliITSImpactParametersPP.C:77 AliITSImpactParametersPP.C:78 AliITSImpactParametersPP.C:79 AliITSImpactParametersPP.C:80 AliITSImpactParametersPP.C:81 AliITSImpactParametersPP.C:82 AliITSImpactParametersPP.C:83 AliITSImpactParametersPP.C:84 AliITSImpactParametersPP.C:85 AliITSImpactParametersPP.C:86 AliITSImpactParametersPP.C:87 AliITSImpactParametersPP.C:88 AliITSImpactParametersPP.C:89 AliITSImpactParametersPP.C:90 AliITSImpactParametersPP.C:91 AliITSImpactParametersPP.C:92 AliITSImpactParametersPP.C:93 AliITSImpactParametersPP.C:94 AliITSImpactParametersPP.C:95 AliITSImpactParametersPP.C:96 AliITSImpactParametersPP.C:97 AliITSImpactParametersPP.C:98 AliITSImpactParametersPP.C:99 AliITSImpactParametersPP.C:100 AliITSImpactParametersPP.C:101 AliITSImpactParametersPP.C:102 AliITSImpactParametersPP.C:103 AliITSImpactParametersPP.C:104 AliITSImpactParametersPP.C:105 AliITSImpactParametersPP.C:106 AliITSImpactParametersPP.C:107 AliITSImpactParametersPP.C:108 AliITSImpactParametersPP.C:109 AliITSImpactParametersPP.C:110 AliITSImpactParametersPP.C:111 AliITSImpactParametersPP.C:112 AliITSImpactParametersPP.C:113 AliITSImpactParametersPP.C:114 AliITSImpactParametersPP.C:115 AliITSImpactParametersPP.C:116 AliITSImpactParametersPP.C:117 AliITSImpactParametersPP.C:118 AliITSImpactParametersPP.C:119 AliITSImpactParametersPP.C:120 AliITSImpactParametersPP.C:121 AliITSImpactParametersPP.C:122 AliITSImpactParametersPP.C:123 AliITSImpactParametersPP.C:124 AliITSImpactParametersPP.C:125 AliITSImpactParametersPP.C:126 AliITSImpactParametersPP.C:127 AliITSImpactParametersPP.C:128 AliITSImpactParametersPP.C:129 AliITSImpactParametersPP.C:130 AliITSImpactParametersPP.C:131 AliITSImpactParametersPP.C:132 AliITSImpactParametersPP.C:133 AliITSImpactParametersPP.C:134 AliITSImpactParametersPP.C:135 AliITSImpactParametersPP.C:136 AliITSImpactParametersPP.C:137 AliITSImpactParametersPP.C:138 AliITSImpactParametersPP.C:139 AliITSImpactParametersPP.C:140 AliITSImpactParametersPP.C:141 AliITSImpactParametersPP.C:142 AliITSImpactParametersPP.C:143 AliITSImpactParametersPP.C:144 AliITSImpactParametersPP.C:145 AliITSImpactParametersPP.C:146 AliITSImpactParametersPP.C:147 AliITSImpactParametersPP.C:148 AliITSImpactParametersPP.C:149 AliITSImpactParametersPP.C:150 AliITSImpactParametersPP.C:151 AliITSImpactParametersPP.C:152 AliITSImpactParametersPP.C:153 AliITSImpactParametersPP.C:154 AliITSImpactParametersPP.C:155 AliITSImpactParametersPP.C:156 AliITSImpactParametersPP.C:157 AliITSImpactParametersPP.C:158 AliITSImpactParametersPP.C:159 AliITSImpactParametersPP.C:160 AliITSImpactParametersPP.C:161 AliITSImpactParametersPP.C:162 AliITSImpactParametersPP.C:163 AliITSImpactParametersPP.C:164 AliITSImpactParametersPP.C:165 AliITSImpactParametersPP.C:166 AliITSImpactParametersPP.C:167 AliITSImpactParametersPP.C:168 AliITSImpactParametersPP.C:169 AliITSImpactParametersPP.C:170 AliITSImpactParametersPP.C:171 AliITSImpactParametersPP.C:172 AliITSImpactParametersPP.C:173 AliITSImpactParametersPP.C:174 AliITSImpactParametersPP.C:175 AliITSImpactParametersPP.C:176 AliITSImpactParametersPP.C:177 AliITSImpactParametersPP.C:178 AliITSImpactParametersPP.C:179 AliITSImpactParametersPP.C:180 AliITSImpactParametersPP.C:181 AliITSImpactParametersPP.C:182 AliITSImpactParametersPP.C:183 AliITSImpactParametersPP.C:184 AliITSImpactParametersPP.C:185 AliITSImpactParametersPP.C:186 AliITSImpactParametersPP.C:187 AliITSImpactParametersPP.C:188 AliITSImpactParametersPP.C:189 AliITSImpactParametersPP.C:190 AliITSImpactParametersPP.C:191 AliITSImpactParametersPP.C:192