1 #include "AliAnaTPCTrackCalib.h"
\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
13 #include <AliTPCclusterMI.h>
\r
14 #include <AliTPCcalibTracksCuts.h>
\r
15 #include <AliTPCClusterParam.h>
\r
20 using namespace std;
\r
22 ClassImp(AliAnaTPCTrackCalib)
\r
24 //________________________________________________________________________
\r
25 AliAnaTPCTrackCalib::AliAnaTPCTrackCalib() :
\r
26 AliAnaTPCTrackBase(), fNtracks(0), fNClusters(0), fCalibTracks(0)
\r
29 // Default constructor (should not be used)
\r
33 //________________________________________________________________________
\r
34 AliAnaTPCTrackCalib::AliAnaTPCTrackCalib(const char *name) :
\r
35 AliAnaTPCTrackBase(name), fNtracks(0), fNClusters(0), fCalibTracks(0)
\r
38 // Normal constructor
\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
46 // Output slot #0 writes into a TList
\r
47 // DefineOutput(0, TList::Class());
\r
50 //________________________________________________________________________
\r
51 void AliAnaTPCTrackCalib::CreateOutputObjects()
\r
54 // Connect the output objects
\r
57 cout << "AliAnaTPCTrackCalib::CreateOutputObjects()" << endl;
\r
59 AliAnaTPCTrackBase::CreateOutputObjects();
\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
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
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
73 printf("\nCuts found :-) \n");
\r
76 if (!clusterParam) Error("CreateOutputObjects", "No CLUSTERPARAM found in input slot 2");
\r
78 /* if ( !fCalibTracks ) {
\r
79 OpenFile(0, "RECREATE");*/
\r
81 fCalibTracks = new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts);
\r
82 fListOfHists->Add(fCalibTracks);
\r
86 //________________________________________________________________________
\r
87 Int_t AliAnaTPCTrackCalib::FillTrackHistograms(Int_t nTracks, AliESDtrack* track, AliESDfriendTrack* friendTrack, AliTPCseed* seed) {
\r
89 // This is the main method which rejects noise tracks and fills
\r
93 if(!nTracks || !track || !friendTrack) {
\r
94 if (fDebug > 1) AliWarning("WARNING: missing track information in AliAnaTPCTrackCalib");
\r
98 if (fDebug > 1) AliWarning("WARNING: Missing seed in AliAnaTPCTrackCalib");
\r
102 // calibration components to go here:
\r
105 fNClusters->Fill(seed->GetNumberOfClusters());
\r
106 fCalibTracks->Process(seed, track); // analysis is done in fCalibTracks
\r