]>
Commit | Line | Data |
---|---|---|
e2b3cee0 | 1 | #include "AliAnaTPCTrackCalib.h"\r |
2 | //\r | |
3 | // This class is ment as an example of how to get access to the \r | |
4 | // clusters associated with reconstructed ESD tracks \r | |
5 | //\r | |
6 | //\r | |
7 | \r | |
8 | // ROOT includes\r | |
9 | #include <TChain.h>\r | |
10 | #include <TMath.h>\r | |
11 | \r | |
12 | // ALIROOT includes\r | |
13 | #include <AliTPCclusterMI.h>\r | |
14 | #include <AliTPCcalibTracksCuts.h>\r | |
15 | #include <AliTPCClusterParam.h>\r | |
16 | \r | |
17 | // STL includes\r | |
18 | #include <iostream>\r | |
19 | \r | |
20 | using namespace std;\r | |
21 | \r | |
22 | ClassImp(AliAnaTPCTrackCalib)\r | |
23 | \r | |
24 | //________________________________________________________________________\r | |
25 | AliAnaTPCTrackCalib::AliAnaTPCTrackCalib() : \r | |
26 | AliAnaTPCTrackBase(), fNtracks(0), fNClusters(0), fCalibTracks(0)\r | |
27 | {\r | |
28 | //\r | |
29 | // Default constructor (should not be used)\r | |
30 | //\r | |
31 | }\r | |
32 | \r | |
33 | //________________________________________________________________________\r | |
34 | AliAnaTPCTrackCalib::AliAnaTPCTrackCalib(const char *name) : \r | |
35 | AliAnaTPCTrackBase(name), fNtracks(0), fNClusters(0), fCalibTracks(0)\r | |
36 | {\r | |
37 | //\r | |
38 | // Normal constructor\r | |
39 | //\r | |
40 | printf("Normal constructor called with name %s \n", name); \r | |
41 | // Input slot #1 works with a AliTPCCalibTracksCuts\r | |
42 | DefineInput(1, AliTPCcalibTracksCuts::Class());\r | |
43 | // Input slot #2 works with a AliTPCClusterParam\r | |
44 | DefineInput(2, AliTPCClusterParam::Class());\r | |
45 | \r | |
46 | // Output slot #0 writes into a TList\r | |
47 | // DefineOutput(0, TList::Class());\r | |
48 | }\r | |
49 | \r | |
50 | //________________________________________________________________________\r | |
51 | void AliAnaTPCTrackCalib::CreateOutputObjects() \r | |
52 | {\r | |
53 | //\r | |
54 | // Connect the output objects\r | |
55 | //\r | |
56 | if(fDebug>0)\r | |
57 | cout << "AliAnaTPCTrackCalib::CreateOutputObjects()" << endl;\r | |
58 | \r | |
59 | AliAnaTPCTrackBase::CreateOutputObjects();\r | |
60 | \r | |
61 | // user code to go here\r | |
62 | if (GetInputData(0)) printf("Input slo 0, Class_Name: %s\n", GetInputData(0)->Class_Name());\r | |
63 | \r | |
64 | fNtracks = new TH1I("ntracks","Number of tracks", 100, 0, 400);\r | |
65 | fListOfHists->Add(fNtracks);\r | |
66 | fNClusters = new TH1I("ncluster","Number of clusters",100, 0, 200);\r | |
67 | fListOfHists->Add(fNClusters);\r | |
68 | \r | |
69 | AliTPCcalibTracksCuts *cuts = (AliTPCcalibTracksCuts*)GetInputData(1);\r | |
70 | AliTPCClusterParam *clusterParam = (AliTPCClusterParam*)GetInputData(2);\r | |
71 | if (!cuts) Error("CreateOutputObjects", "No CUTS found in input slot 1");\r | |
72 | else {\r | |
73 | printf("\nCuts found :-) \n");\r | |
74 | cuts->Print();\r | |
75 | }\r | |
76 | if (!clusterParam) Error("CreateOutputObjects", "No CLUSTERPARAM found in input slot 2");\r | |
77 | \r | |
78 | /* if ( !fCalibTracks ) {\r | |
79 | OpenFile(0, "RECREATE");*/\r | |
80 | \r | |
81 | fCalibTracks = new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts);\r | |
82 | fListOfHists->Add(fCalibTracks);\r | |
83 | }\r | |
84 | \r | |
85 | \r | |
86 | //________________________________________________________________________\r | |
87 | Int_t AliAnaTPCTrackCalib::FillTrackHistograms(Int_t nTracks, AliESDtrack* track, AliESDfriendTrack* friendTrack, AliTPCseed* seed) {\r | |
88 | //\r | |
89 | // This is the main method which rejects noise tracks and fills \r | |
90 | // the histograms\r | |
91 | //\r | |
92 | \r | |
93 | if(!nTracks || !track || !friendTrack) {\r | |
94 | if (fDebug > 1) AliWarning("WARNING: missing track information in AliAnaTPCTrackCalib");\r | |
95 | return 0;\r | |
96 | }\r | |
97 | if(seed==0) {\r | |
98 | if (fDebug > 1) AliWarning("WARNING: Missing seed in AliAnaTPCTrackCalib");\r | |
99 | return 0;\r | |
100 | }\r | |
101 | \r | |
102 | // calibration components to go here: \r | |
103 | \r | |
104 | if (seed) {\r | |
105 | fNClusters->Fill(seed->GetNumberOfClusters());\r | |
106 | fCalibTracks->Process(seed, track); // analysis is done in fCalibTracks\r | |
107 | }\r | |
108 | \r | |
109 | return 1;\r | |
110 | } \r | |
111 | \r |