]>
Commit | Line | Data |
---|---|---|
99e5fe42 | 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 | ||
16 | // Jet MC Reader | |
17 | // MC reader for jet analysis | |
18 | // Author: Mercedes Lopez Noriega (mercedes.lopez.noriega@cern.ch) | |
19 | ||
20 | // From root ... | |
21 | #include <TClonesArray.h> | |
22 | #include <TPDGCode.h> | |
23 | #include <TParticle.h> | |
24 | #include <TParticlePDG.h> | |
25 | #include <TVector3.h> | |
26 | #include <TLorentzVector.h> | |
27 | #include <TSystem.h> | |
28 | // From AliRoot ... | |
29 | #include "AliJetMCReader.h" | |
30 | #include "AliJetMCReaderHeader.h" | |
31 | #include "AliESD.h" | |
32 | #include "AliESDtrack.h" | |
33 | ||
34 | ClassImp(AliJetMCReader) | |
35 | ||
36 | AliJetMCReader::AliJetMCReader() | |
37 | { | |
38 | // Constructor | |
39 | fReaderHeader = 0x0; | |
40 | fMass = 0; | |
41 | fPdgC = 0; | |
42 | } | |
43 | ||
44 | //____________________________________________________________________________ | |
45 | ||
46 | AliJetMCReader::~AliJetMCReader() | |
47 | { | |
48 | // Destructor | |
49 | delete fReaderHeader; | |
50 | } | |
51 | ||
52 | //____________________________________________________________________________ | |
53 | ||
54 | ||
55 | void AliJetMCReader::FillMomentumArray(Int_t event) | |
56 | { | |
57 | // Fill momentum array | |
58 | TClonesArray &arrayMC = *fArrayMC; | |
59 | Int_t goodTrack = 0; | |
60 | Int_t nt = 0; | |
61 | Float_t pt, e; | |
62 | TVector3 p; | |
63 | ||
64 | // clear array | |
65 | ClearArray(); | |
66 | // get event from chains | |
67 | fChain->GetEntry(event); | |
68 | fChainMC->GetEntry(event); | |
69 | // get number of tracks in event (for the loop) | |
70 | nt = fESD->GetNumberOfTracks(); | |
71 | ||
72 | // get cuts set by user | |
73 | Double_t ptMin = ((AliJetMCReaderHeader*) fReaderHeader)->GetPtCut(); | |
74 | ||
75 | //loop over particles | |
76 | for (Int_t it = 0; it < nt; it++) { | |
77 | AliESDtrack *track = fESD->GetTrack(it); //track | |
78 | UInt_t status = track->GetStatus(); | |
79 | if ((status & AliESDtrack::kITSrefit) == 0) continue; // quality check | |
80 | // track->GetImpactParameters(dca,z); | |
81 | // if (dca > dcaMax) continue; // check track is reasonable | |
82 | Int_t label = TMath::Abs(track->GetLabel()); | |
83 | TParticle *part = (TParticle*)arrayMC[label]; //particle | |
84 | pt = part->Pt(); // pt of the particle | |
85 | if (pt < ptMin) continue; //check cuts | |
86 | p = part->P(); | |
87 | e = part->Energy(); | |
88 | fMass = part->GetCalcMass(); | |
89 | fPdgC = part->GetPdgCode(); | |
90 | // fill momentum array | |
91 | new ((*fMomentumArray)[goodTrack]) TLorentzVector(p.X(), p.Y(), p.Z(), e); | |
92 | goodTrack++; | |
93 | } | |
94 | printf("\nNumber of good tracks %d \n", goodTrack); | |
95 | } | |
96 | ||
97 |