#include "AliDCSSensor.h"
#include "AliDCSSensorArray.h"
-//#include "AliESDEvent.h"
+#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDVertex.h"
-//#include "AliESDfriend.h"
-
-#include "AliVEvent.h"
-#include "AliVTrack.h"
-#include "AliVfriendEvent.h"
-#include "AliVfriendTrack.h"
-
+#include "AliESDfriend.h"
#include "AliLog.h"
#include "AliRelAlignerKalman.h"
#include "AliTPCCalROC.h"
-void AliTPCcalibTime::Process(AliVEvent *event){
+void AliTPCcalibTime::Process(AliESDEvent *event){
//
// main function to make calibration
//
-
- //Printf("*******************AliTPCcalibTime::Process()*******************");
- if(!event) {
- Printf("ERROR AliTPCcalibTime::Process(): NO EVENT AVAILABLE!");
- return;
- }
- if (event->GetNumberOfTracks()<2) {
- //Printf("ACHTUNG AliTPCcalibTime::Process(): not enough tracks!");
- return;
- }
- //AliESDfriend *ESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
- AliVfriendEvent *friendEvent=event->FindFriend();
- if (!friendEvent) {
- Printf("ERROR AliTPCcalibTime::Process(): NO FRIEND AVAILABLE!");
+ if(!event) return;
+ if (event->GetNumberOfTracks()<2) return;
+ AliESDfriend *ESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
+ if (!ESDfriend) {
return;
}
- if (friendEvent->TestSkipBit()) return;
+ if (ESDfriend->TestSkipBit()) return;
ResetCurrent();
-
- //AliESDEvent *ev=(AliESDEvent*)event;
//if(IsLaser (event))
ProcessLaser (event);
//if(IsCosmics(event))
ProcessBeam (event);
}
-void AliTPCcalibTime::ProcessLaser(AliVEvent *event){
+void AliTPCcalibTime::ProcessLaser(AliESDEvent *event){
//
// Fit drift velocity using laser
//
}
}
-void AliTPCcalibTime::ProcessCosmic(const AliVEvent *const event){
+void AliTPCcalibTime::ProcessCosmic(const AliESDEvent *const event){
//
// process Cosmic event - track matching A side C side
//
if (!event) {
- Printf("ERROR: event not available");
+ Printf("ERROR: ESD not available");
return;
}
if (event->GetTimeStamp() == 0 ) {
if (ntracks > fCutTracks) return;
if (GetDebugLevel()>20) printf("Hallo world: Im here\n");
- //AliESDfriend *esdFriend=(AliESDfriend*)(((AliESDEvent*)event)->FindListObject("AliESDfriend"));
- AliVfriendEvent *friendEvent=event->FindFriend();
+ AliESDfriend *esdFriend=(AliESDfriend*)(((AliESDEvent*)event)->FindListObject("AliESDfriend"));
+
TObjArray tpcSeeds(ntracks);
Double_t vtxx[3]={0,0,0};
Double_t svtxx[3]={0.000001,0.000001,100.};
for (Int_t i=0;i<ntracks;++i) {
clusterSideA[i]=0;
clusterSideC[i]=0;
- AliVTrack *track = event->GetVTrack(i);
+ AliESDtrack *track = event->GetTrack(i);
const AliExternalTrackParam * trackIn = track->GetInnerParam();
const AliExternalTrackParam * trackOut = track->GetOuterParam();
if (!trackIn) continue;
if (!trackOut) continue;
- const AliVfriendTrack *friendTrack = friendEvent->GetTrack(i);
+ AliESDfriendTrack *friendTrack = esdFriend->GetTrack(i);
if (!friendTrack) continue;
if (friendTrack) ProcessSame(track,friendTrack,event);
- if (friendTrack) ProcessAlignITS(track,friendTrack,event,friendEvent);
+ if (friendTrack) ProcessAlignITS(track,friendTrack,event,esdFriend);
if (friendTrack) ProcessAlignTRD(track,friendTrack);
if (friendTrack) ProcessAlignTOF(track,friendTrack);
TObject *calibObject;
//
for (Int_t i=0;i<ntracks;++i) {
- AliVTrack *track0 = event->GetVTrack(i);
+ AliESDtrack *track0 = event->GetTrack(i);
// track0 - choosen upper part
if (!track0) continue;
if (!track0->GetOuterParam()) continue;
track0->GetDirection(d1);
for (Int_t j=0;j<ntracks;++j) {
if (i==j) continue;
- AliVTrack *track1 = event->GetVTrack(j);
+ AliESDtrack *track1 = event->GetTrack(j);
//track 1 lower part
if (!track1) continue;
if (!track1->GetOuterParam()) continue;
//
//
Float_t dmax = TMath::Max(TMath::Abs(dist0),TMath::Abs(dist1));
- AliExternalTrackParam param0;
- param0.CopyFromVTrack(track0);
- AliExternalTrackParam param1;
- param1.CopyFromVTrack(track1);
+ AliExternalTrackParam param0(*track0);
+ AliExternalTrackParam param1(*track1);
//
// Propagate using Magnetic field and correct fo material budget
//
if (GetDebugLevel()>20) printf("Trigger: %s\n",event->GetFiredTriggerClasses().Data());
}
-void AliTPCcalibTime::ProcessBeam(const AliVEvent *const event){
+void AliTPCcalibTime::ProcessBeam(const AliESDEvent *const event){
//
// Process beam data - calculates vartex
// from A side and C side
if (ntracks==0) return;
if (ntracks > fCutTracks) return;
//
- //AliESDfriend *esdFriend=(AliESDfriend*)(((AliESDEvent*)event)->FindListObject("AliESDfriend"));
- AliVfriendEvent *friendEvent=event->FindFriend();
+ AliESDfriend *esdFriend=(AliESDfriend*)(((AliESDEvent*)event)->FindListObject("AliESDfriend"));
//
// Divide tracks to A and C side tracks - using the cluster indexes
TObjArray tracksA(ntracks);
TObjArray tracksC(ntracks);
//
- //AliESDVertex *vertexSPD = (AliESDVertex *)event->GetPrimaryVertexSPD();
- //AliESDVertex *vertex = (AliESDVertex *)event->GetPrimaryVertex();
- //AliESDVertex *vertexTracks = (AliESDVertex *)event->GetPrimaryVertexTracks();
-
- AliESDVertex vtxSPD;
- event->GetPrimaryVertexSPD(vtxSPD);
- AliESDVertex *vertexSPD=&vtxSPD;
-
- AliESDVertex vtx;
- event->GetPrimaryVertex(vtx);
- AliESDVertex *vertex=&vtx;
-
- AliESDVertex vtxTracks;
- event->GetPrimaryVertexTracks(vtxTracks);
- AliESDVertex *vertexTracks=&vtxTracks;
-
-
+ AliESDVertex *vertexSPD = (AliESDVertex *)event->GetPrimaryVertexSPD();
+ AliESDVertex *vertex = (AliESDVertex *)event->GetPrimaryVertex();
+ AliESDVertex *vertexTracks = (AliESDVertex *)event->GetPrimaryVertexTracks();
Double_t vertexZA[10000], vertexZC[10000];
//
Int_t ntracksA= 0;
Int_t ntracksC= 0;
//
for (Int_t itrack=0;itrack<ntracks;itrack++) {
- AliVTrack *track = event->GetVTrack(itrack);
- const AliVfriendTrack *friendTrack = friendEvent->GetTrack(itrack);
+ AliESDtrack *track = event->GetTrack(itrack);
+ AliESDfriendTrack *friendTrack = esdFriend->GetTrack(itrack);
if (!friendTrack) continue;
if (TMath::Abs(track->GetTgl())>kMaxTgl) continue;
if (TMath::Abs(track->Pt())<kMinPt) continue;
return kTRUE;
}
-Bool_t AliTPCcalibTime::IsCross(const AliVTrack *const tr0, const AliVTrack *const tr1){
+Bool_t AliTPCcalibTime::IsCross(const AliESDtrack *const tr0, const AliESDtrack *const tr1){
//
// check if the cosmic pair of tracks crossed A/C side
//
return result;
}
-Bool_t AliTPCcalibTime::IsSame(const AliVTrack *const tr0, const AliVTrack *const tr1){
+Bool_t AliTPCcalibTime::IsSame(const AliESDtrack *const tr0, const AliESDtrack *const tr1){
//
// track crossing the CE
// 0. minimal number of clusters
}
-void AliTPCcalibTime::ProcessSame(const AliVTrack *const track, const AliVfriendTrack *const friendTrack, const AliVEvent *const event){
+void AliTPCcalibTime::ProcessSame(const AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event){
//
// Process TPC tracks crossing CE
//
}
-void AliTPCcalibTime::ProcessAlignITS(AliVTrack *const track, const AliVfriendTrack *const friendTrack, const AliVEvent *const event, AliVfriendEvent *const friendEvent){
+void AliTPCcalibTime::ProcessAlignITS(AliESDtrack *const track, const AliESDfriendTrack *const friendTrack, const AliESDEvent *const event, AliESDfriend *const esdFriend){
//
// Process track - Update TPC-ITS alignment
// Updates:
//
Int_t dummycl[1000];
if (track->GetTPCNcls()<kMinTPC) return; // minimal amount of clusters cut
- if (!track->IsOn(AliVTrack::kTPCrefit)) return;
+ if (!track->IsOn(AliESDtrack::kTPCrefit)) return;
if (!track->GetInnerParam()) return;
if (!track->GetOuterParam()) return;
if (track->GetInnerParam()->Pt()<kMinPt) return;
AliTracker::PropagateTrackToBxByBz(&pITS2,pTPC.GetX(),0.1,0.1,kFALSE);
}
- //AliESDfriendTrack *itsfriendTrack=0;
+ AliESDfriendTrack *itsfriendTrack=0;
//
// try to find standalone ITS track corresponing to the TPC if possible
//
Bool_t hasAlone=kFALSE;
Int_t ntracks=event->GetNumberOfTracks();
for (Int_t i=0; i<ntracks; i++){
- AliVTrack * trackITS = event->GetVTrack(i);
+ AliESDtrack * trackITS = event->GetTrack(i);
if (!trackITS) continue;
if (trackITS->GetITSclusters(dummycl)<kMinITS) continue; // minimal amount of clusters
- const AliVfriendTrack *itsfriendTrack = friendEvent->GetTrack(i);
+ itsfriendTrack = esdFriend->GetTrack(i);
if (!itsfriendTrack) continue;
if (!itsfriendTrack->GetITSOut()) continue;
-void AliTPCcalibTime::ProcessAlignTRD(AliVTrack *const track, const AliVfriendTrack *const friendTrack){
+void AliTPCcalibTime::ProcessAlignTRD(AliESDtrack *const track, const AliESDfriendTrack *const friendTrack){
//
// Process track - Update TPC-TRD alignment
// Updates:
if (track->GetTPCNcls()<kMinTPC) return; // minimal amount of clusters cut
// if (!friendTrack->GetTRDIn()) return;
// if (!track->IsOn(AliESDtrack::kTRDrefit)) return;
- if (!track->IsOn(AliVTrack::kTRDout)) return;
+ if (!track->IsOn(AliESDtrack::kTRDout)) return;
if (!track->GetInnerParam()) return;
if (!friendTrack->GetTPCOut()) return;
// exclude crossing track
AliTracker::PropagateTrackToBxByBz(&pTPC,kRefX,0.1,0.1,kFALSE);
AliExternalTrackParam *pTRDtrack = 0;
TObject *calibObject=0;
- for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
+ for (Int_t l=0;(calibObject=((AliESDfriendTrack*)friendTrack)->GetCalibObject(l));++l) {
if ((dynamic_cast< AliTPCseed*>(calibObject))) continue;
if ((pTRDtrack=dynamic_cast< AliExternalTrackParam*>(calibObject))) break;
}
}
-void AliTPCcalibTime::ProcessAlignTOF(AliVTrack *const track, const AliVfriendTrack *const friendTrack){
+void AliTPCcalibTime::ProcessAlignTOF(AliESDtrack *const track, const AliESDfriendTrack *const friendTrack){
//
//
// Process track - Update TPC-TOF alignment
}
-void AliTPCcalibTime::FillResHistoTPC(const AliVTrack *pTrack){
+void AliTPCcalibTime::FillResHistoTPC(const AliESDtrack * pTrack){
//
// fill residual histograms pTPC - vertex
// Histogram is filled only for primary tracks