From 618de08b8bac29a55d8583b44f3878aa04f757d1 Mon Sep 17 00:00:00 2001 From: morsch Date: Fri, 8 Jan 2010 16:32:56 +0000 Subject: [PATCH] Moved to PWG1/ITS --- PWG1/PilotTrain/AliAnalysisTaskSDDRP.cxx | 329 ----------------------- PWG1/PilotTrain/AliAnalysisTaskSDDRP.h | 69 ----- PWG1/PilotTrain/AliAnalysisTaskSPD.cxx | 323 ---------------------- PWG1/PilotTrain/AliAnalysisTaskSPD.h | 43 --- 4 files changed, 764 deletions(-) delete mode 100644 PWG1/PilotTrain/AliAnalysisTaskSDDRP.cxx delete mode 100644 PWG1/PilotTrain/AliAnalysisTaskSDDRP.h delete mode 100644 PWG1/PilotTrain/AliAnalysisTaskSPD.cxx delete mode 100644 PWG1/PilotTrain/AliAnalysisTaskSPD.h diff --git a/PWG1/PilotTrain/AliAnalysisTaskSDDRP.cxx b/PWG1/PilotTrain/AliAnalysisTaskSDDRP.cxx deleted file mode 100644 index 2b4bc72845e..00000000000 --- a/PWG1/PilotTrain/AliAnalysisTaskSDDRP.cxx +++ /dev/null @@ -1,329 +0,0 @@ -#include "AliAnalysisTask.h" -#include "AliAnalysisManager.h" -#include "AliAnalysisDataContainer.h" -#include "AliITSRecPoint.h" -#include "AliESDEvent.h" -#include "AliTrackPointArray.h" -#include "AliITSgeomTGeo.h" -#include "AliESDfriend.h" -#include "AliCDBManager.h" -#include "AliCDBEntry.h" -#include "AliITSCalibrationSDD.h" -#include "AliITSresponseSDD.h" -#include "AliGeomManager.h" -#include -#include -#include -#include -#include -#include "AliESDInputHandlerRP.h" -#include "AliAnalysisTaskSDDRP.h" - -ClassImp(AliAnalysisTaskSDDRP) -//______________________________________________________________________________ -AliAnalysisTaskSDDRP::AliAnalysisTaskSDDRP() : AliAnalysisTaskSE("SDD RecPoints"), - fOutput(0), - fHistNEvents(0), - fRecPMod(0), - fTrackPMod(0), - fGoodAnMod(0), - fRecPLadLay3(0), - fRecPLadLay4(0), - fTrackPLadLay3(0), - fTrackPLadLay4(0), - fGoodAnLadLay3(0), - fGoodAnLadLay4(0), - fDriftTimeRP(0), - fDriftTimeTP(0), - fESD(0), - fESDfriend(0), - fResp(0), - fRunNumber(0), - fMinITSpts(3), - fMinPfordEdx(1.5), - fOnlyCINT1BTrig(0), - fInitialised(0) -{ - // - DefineOutput(1, TList::Class()); -} - - -//___________________________________________________________________________ -AliAnalysisTaskSDDRP::~AliAnalysisTaskSDDRP(){ - // - if (fOutput) { - delete fOutput; - fOutput = 0; - } -} - - -//___________________________________________________________________________ - -void AliAnalysisTaskSDDRP::UserCreateOutputObjects() { - - fOutput = new TList(); - fOutput->SetOwner(); - fOutput->SetName("OutputHistos"); - - fHistNEvents = new TH1F("hNEvents", "Number of processed events",3,-1.5,1.5); - fHistNEvents->Sumw2(); - fHistNEvents->SetMinimum(0); - fOutput->Add(fHistNEvents); - - // -- Module histos - - fRecPMod = new TH1F("hRPMod","Rec Points per Module",260,239.5,499.5); - fRecPMod->Sumw2(); - fRecPMod->SetMinimum(0); - fOutput->Add(fRecPMod); - - fTrackPMod = new TH1F("hTPMod","Track Points per Module",260,239.5,499.5); - fTrackPMod->Sumw2(); - fTrackPMod->SetMinimum(0); - fOutput->Add(fTrackPMod); - - fGoodAnMod = new TH1F("hGAMod","Good Anodes per Module",260,239.5,499.5); - fOutput->Add(fGoodAnMod); - - // -- Ladder histos - - fRecPLadLay3 = new TH1F("hRPLad3","Rec Points per Ladder Layer 3",14,-0.5,13.5); - fRecPLadLay3->Sumw2(); - fRecPLadLay3->SetMinimum(0); - fOutput->Add(fRecPLadLay3); - - fRecPLadLay4 = new TH1F("hRPLad4","Rec Points per Ladder Layer 4",22,-0.5,21.5); - fRecPLadLay4->Sumw2(); - fRecPLadLay4->SetMinimum(0); - fOutput->Add(fRecPLadLay4); - - fTrackPLadLay3 = new TH1F("hTPLad3","Track Points per Ladder Layer 3",14,-0.5,13.5); - fTrackPLadLay3->Sumw2(); - fTrackPLadLay3->SetMinimum(0); - fOutput->Add(fTrackPLadLay3); - - fTrackPLadLay4 = new TH1F("hTPLad4","Track Points per Ladder Layer 4",22,-0.5,21.5); - fTrackPLadLay4->Sumw2(); - fTrackPLadLay4->SetMinimum(0); - fOutput->Add(fTrackPLadLay4); - - fGoodAnLadLay3 = new TH1F("hGALad3","Good Anodes per Ladder Layer 3",14,-0.5,13.5); - fOutput->Add(fGoodAnLadLay3); - - fGoodAnLadLay4 = new TH1F("hGALad4","Good Anodes per Ladder Layer 4",22,-0.5,21.5); - fOutput->Add(fGoodAnLadLay4); - - fDriftTimeRP=new TH1F("hDrTimRP","Drift Time from Rec Points (ns)",100,0.,6400.); - fDriftTimeRP->Sumw2(); - fDriftTimeRP->SetMinimum(0.); - fOutput->Add(fDriftTimeRP); - - fDriftTimeTP=new TH1F("hDrTimTP","Drift Time from Track Points (ns)",100,0.,6400.); - fDriftTimeTP->Sumw2(); - fDriftTimeTP->SetMinimum(0.); - fOutput->Add(fDriftTimeTP); - - for(Int_t it=0; it<8; it++){ - fSignalTime[it]=new TH1F(Form("hSigTimeInt%d",it),Form("hSigTimeInt%d",it),100,0.,300.); - fSignalTime[it]->Sumw2(); - fSignalTime[it]->SetMinimum(0); - fOutput->Add(fSignalTime[it]); - } -} -//______________________________________________________________________________ -void AliAnalysisTaskSDDRP::UserExec(Option_t *) -{ - // - fESD = (AliESDEvent*) (InputEvent()); - - if(!fESD) { - printf("AliAnalysisTaskSDDRP::Exec(): bad ESD\n"); - return; - } - - fESDfriend = static_cast(fESD->FindListObject("AliESDfriend")); - - - - if(!fESDfriend) { - printf("AliAnalysisTaskSDDRP::Exec(): bad ESDfriend\n"); - return; - } - PostData(1, fOutput); - fESD->SetESDfriend(fESDfriend); - - if (!fInitialised) { - fInitialised = 1; - - AliCDBManager* man = AliCDBManager::Instance(); - man->SetDefaultStorage("raw://"); - man->SetRun(fESD->GetRunNumber()); - - - AliCDBEntry* eR=(AliCDBEntry*)man->Get("ITS/Calib/RespSDD"); - fResp=(AliITSresponseSDD*)eR->GetObject(); - - AliCDBEntry* eC=(AliCDBEntry*)man->Get("ITS/Calib/CalibSDD"); - TObjArray* calsdd=(TObjArray*)eC->GetObject(); - Int_t countGood3[14]; - Int_t countGood4[22]; - Int_t countGoodMod[260]; - for(Int_t ilad=0;ilad<14;ilad++) countGood3[ilad]=0; - for(Int_t ilad=0;ilad<22;ilad++) countGood4[ilad]=0; - for(Int_t imod=0;imod<260;imod++) countGoodMod[imod]=0; - for(Int_t imod=0;imod<260;imod++){ - AliITSCalibrationSDD* cal=(AliITSCalibrationSDD*)calsdd->At(imod); - if(cal->IsBad()) continue; - Int_t modId=imod+AliITSgeomTGeo::GetModuleIndex(3,1,1); - Int_t lay,lad,det; - AliITSgeomTGeo::GetModuleId(modId,lay,lad,det); - if(!CheckModule(lay,lad,det)) continue; - for(Int_t ian=0; ian<512; ian++){ - if(cal->IsBadChannel(ian)) continue; - countGoodMod[imod]++; - if(lay==3) countGood3[lad-1]++; - else if(lay==4) countGood4[lad-1]++; - } - } - for(Int_t imod=0;imod<260;imod++) fGoodAnMod->SetBinContent(imod+1,countGoodMod[imod]); - fGoodAnMod->SetMinimum(0); - for(Int_t ilad=0;ilad<14;ilad++) fGoodAnLadLay3->SetBinContent(ilad+1,countGood3[ilad]); - fGoodAnLadLay3->SetMinimum(0); - for(Int_t ilad=0;ilad<22;ilad++) fGoodAnLadLay4->SetBinContent(ilad+1,countGood4[ilad]); - fGoodAnLadLay4->SetMinimum(0); - } - - - fHistNEvents->Fill(0); - if(fOnlyCINT1BTrig){ - if(!fESD->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL")) return; - fHistNEvents->Fill(1); - } - const AliTrackPointArray *array = 0; - Int_t ntracks = fESD->GetNumberOfTracks(); - for (Int_t itrack=0; itrack < ntracks; itrack++) { - AliESDtrack * track = fESD->GetTrack(itrack); - if (!track) continue; - if(track->GetNcls(1)>0) continue; - if(track->GetNcls(0) < fMinITSpts) continue; - Double_t dedx[4]; - track->GetITSdEdxSamples(dedx); - array = track->GetTrackPointArray(); - if(!array) continue; - for(Int_t ipt=0; iptGetNPoints(); ipt++) { - AliTrackPoint point; - Int_t modId; - array->GetPoint(point,ipt); - Int_t volId = point.GetVolumeID(); - Int_t layerId = AliGeomManager::VolUIDToLayer(volId,modId); - if(layerId<3 || layerId>4) continue; - modId+=AliITSgeomTGeo::GetModuleIndex(layerId,1,1); - Int_t lay,lad,det; - AliITSgeomTGeo::GetModuleId(modId,lay,lad,det); - if(!CheckModule(lay,lad,det)) continue; - fTrackPMod->Fill(modId); - fDriftTimeTP->Fill(point.GetDriftTime()); - Float_t dtime=point.GetDriftTime()-fResp->GetTimeZero(modId); - Int_t theBin=int(dtime/6500.*8.); - if(layerId==3){ - fTrackPLadLay3->Fill(lad-1); - if(dedx[0]>0. && track->P()>fMinPfordEdx) fSignalTime[theBin]->Fill(dedx[0]); - } - if(layerId==4){ - fTrackPLadLay4->Fill(lad-1); - if(dedx[0]>0.&& track->P()>fMinPfordEdx) fSignalTime[theBin]->Fill(dedx[1]); - } - } - } - - AliESDInputHandlerRP *hand = dynamic_cast (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); - TTree* tR = hand->GetTreeR("ITS"); - TClonesArray *ITSrec= new TClonesArray("AliITSRecPoint"); - TBranch *branch =tR->GetBranch("ITSRecPoints"); - branch->SetAddress(&ITSrec); - for (Int_t modId=240; modId<500; modId++){ - Int_t lay,lad,det; - AliITSgeomTGeo::GetModuleId(modId,lay,lad,det); - if(!CheckModule(lay,lad,det)) continue; - branch->GetEvent(modId); - Int_t nrecp = ITSrec->GetEntries(); - fRecPMod->Fill(modId,nrecp); - if(lay==3) fRecPLadLay3->Fill(lad-1,nrecp); - if(lay==4) fRecPLadLay4->Fill(lad-1,nrecp); - for(Int_t irec=0;irecAt(irec); - fDriftTimeRP->Fill(recp->GetDriftTime()); - } - } - ITSrec->Delete(); - delete ITSrec; - - PostData(1,fOutput); - -} -//______________________________________________________________________________ -Bool_t AliAnalysisTaskSDDRP::CheckModule(Int_t lay, Int_t lad, Int_t det) const{ - // - if(lay==4){ - if(lad==3 && det==5) return kFALSE; // 1500 V - if(lad==3 && det==6) return kFALSE; // 0 V - if(lad==3 && det==7) return kFALSE; // 1500 V - if(lad==4 && det==1) return kFALSE; // 0 V - if(lad==4 && det==2) return kFALSE; // 1500 V - if(lad==7 && det==5) return kFALSE; // 0 MV - if(lad==9 && det==3) return kFALSE; // 1500 V - if(lad==9 && det==4) return kFALSE; // 0 V - if(lad==9 && det==5) return kFALSE; // 1500 V - if(lad==11 && det==6) return kFALSE; // 1500 V - if(lad==11 && det==7) return kFALSE; // 0 V - if(lad==11 && det==8) return kFALSE; // 1500 V - if(lad==18 && det==5) return kFALSE; // 1500 V - if(lad==18 && det==6) return kFALSE; // 0 V - if(lad==18 && det==7) return kFALSE; // 1500 V - if(lad==22 && det==1) return kFALSE; // 0 V - if(lad==22 && det==2) return kFALSE; // 1500 V - } - if(lay==3){ - if(lad==4 && det==4) return kFALSE; // 1500 V - if(lad==3) return kFALSE; // swapped in geometry - } - return kTRUE; -} - -//______________________________________________________________________________ -void AliAnalysisTaskSDDRP::Terminate(Option_t */*option*/) -{ - // Terminate analysis - fOutput = dynamic_cast (GetOutputData(1)); - if (!fOutput) { - printf("ERROR: fOutput not available\n"); - return; - } - fHistNEvents= dynamic_cast(fOutput->FindObject("hNEvents")); - fRecPMod= dynamic_cast(fOutput->FindObject("hRPMod")); - fTrackPMod= dynamic_cast(fOutput->FindObject("hTPMod")); - fGoodAnMod= dynamic_cast(fOutput->FindObject("hGAMod")); - - fRecPLadLay3= dynamic_cast(fOutput->FindObject("hRPLad3")); - fRecPLadLay4= dynamic_cast(fOutput->FindObject("hRPLad4")); - fTrackPLadLay3= dynamic_cast(fOutput->FindObject("hTPLad3")); - fTrackPLadLay4= dynamic_cast(fOutput->FindObject("hTPLad4")); - fGoodAnLadLay3= dynamic_cast(fOutput->FindObject("hGALad3")); - fGoodAnLadLay4= dynamic_cast(fOutput->FindObject("hGALad4")); - - fDriftTimeRP= dynamic_cast(fOutput->FindObject("hDrTimRP")); - fDriftTimeTP= dynamic_cast(fOutput->FindObject("hDrTimTP")); - - for(Int_t it=0; it<8; it++){ - fSignalTime[it]= dynamic_cast(fOutput->FindObject(Form("hSigTimeInt%d",it))); - } - - return; -} - - - - - diff --git a/PWG1/PilotTrain/AliAnalysisTaskSDDRP.h b/PWG1/PilotTrain/AliAnalysisTaskSDDRP.h deleted file mode 100644 index 0327a1976e3..00000000000 --- a/PWG1/PilotTrain/AliAnalysisTaskSDDRP.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ALIANALYSISTASKSDDRP -#define ALIANALYSISTASKSDDRP - -class TList; -class TH1F; -class TTree; -class TString; -class AliESDEvent; -class AliESDfriend; -class AliITSresponseSDD; - -#include "AliAnalysisTaskSE.h" - -class AliAnalysisTaskSDDRP : public AliAnalysisTaskSE { - - public: - - AliAnalysisTaskSDDRP(); - virtual ~AliAnalysisTaskSDDRP(); - virtual void UserExec(Option_t *option); - virtual void UserCreateOutputObjects(); - virtual void Terminate(Option_t *option); - - void SetRunNumber(Int_t nrun){ - fRunNumber=nrun; - } - void SetMinITSPoints(Int_t minp=3){ - fMinITSpts=minp; - } - void SetUseOnlyCINT1BTriggers(Bool_t use=kTRUE){ - fOnlyCINT1BTrig=use; - } - void SetMinPfordEdx(Float_t minp=1.5){ - fMinPfordEdx=minp; - } - Bool_t CheckModule(Int_t lay, Int_t lad, Int_t det) const; - - - private: - AliAnalysisTaskSDDRP(const AliAnalysisTaskSDDRP &source); - AliAnalysisTaskSDDRP& operator=(const AliAnalysisTaskSDDRP &source); - - TList* fOutput; //! ntuple with output of vertexers - TH1F* fHistNEvents; //! histo with N of events - TH1F* fRecPMod; //! histo with module occupancy (RecP) - TH1F* fTrackPMod; //! histo with module occupancy (TrP) - TH1F* fGoodAnMod; //! histo good anodes per module - TH1F* fRecPLadLay3; //! histo with ladder occupancy on layer3 (RecP) - TH1F* fRecPLadLay4; //! histo with ladder occupancy on layer4 (RecP) - TH1F* fTrackPLadLay3; //! histo with ladder occupancy on layer3 (TrP) - TH1F* fTrackPLadLay4; //! histo with ladder occupancy on layer4 (TrP) - TH1F* fGoodAnLadLay3; //! histo good anodes per ladder on layer3 - TH1F* fGoodAnLadLay4; //! histo good anodes per ladder on layer4 - TH1F* fDriftTimeRP; //! histo with drift time distribution (RecP) - TH1F* fDriftTimeTP; //! histo with drift time distribution (TrP) - TH1F* fSignalTime[8]; //! histos of dE/dx in time windows - AliESDEvent *fESD; // ESD object - AliESDfriend *fESDfriend; // ESD friend object - AliITSresponseSDD* fResp; // ResponseSDD object - Int_t fRunNumber; // Run number - Int_t fMinITSpts; // Minimum number of points per track - Float_t fMinPfordEdx; // Minimum momentum for dE/dx - Bool_t fOnlyCINT1BTrig; // Flag for using all events or only intections - Bool_t fInitialised; // True if initialised - ClassDef(AliAnalysisTaskSDDRP,1); -}; - - -#endif diff --git a/PWG1/PilotTrain/AliAnalysisTaskSPD.cxx b/PWG1/PilotTrain/AliAnalysisTaskSPD.cxx deleted file mode 100644 index 1f4e3e8df9c..00000000000 --- a/PWG1/PilotTrain/AliAnalysisTaskSPD.cxx +++ /dev/null @@ -1,323 +0,0 @@ -#include "AliAnalysisTask.h" -#include "AliAnalysisManager.h" -#include "AliAnalysisDataContainer.h" -#include "AliMultiplicity.h" -#include "AliITSRecPoint.h" -#include "AliITSDetTypeRec.h" -#include "AliGeomManager.h" -#include "AliESDVertex.h" -#include "AliESDEvent.h" -#include "AliMagF.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include "AliESDInputHandlerRP.h" -#include "AliAnalysisTaskSPD.h" -#include "AliITSsegmentationSPD.h" - -ClassImp(AliAnalysisTaskSPD) - //______________________________________________________________________________ - const Int_t AliAnalysisTaskSPD::fgkDDLModuleMap[20][12] = { - { 4, 5, 0, 1, 80, 81, 84, 85, 88, 89, 92, 93}, - {12,13, 8, 9, 96, 97,100,101,104,105,108,109}, - {20,21,16,17,112,113,116,117,120,121,124,125}, - {28,29,24,25,128,129,132,133,136,137,140,141}, - {36,37,32,33,144,145,148,149,152,153,156,157}, - {44,45,40,41,160,161,164,165,168,169,172,173}, - {52,53,48,49,176,177,180,181,184,185,188,189}, - {60,61,56,57,192,193,196,197,200,201,204,205}, - {68,69,64,65,208,209,212,213,216,217,220,221}, - {76,77,72,73,224,225,228,229,232,233,236,237}, - { 7, 6, 3, 2, 83, 82, 87, 86, 91, 90, 95, 94}, - {15,14,11,10, 99, 98,103,102,107,106,111,110}, - {23,22,19,18,115,114,119,118,123,122,127,126}, - {31,30,27,26,131,130,135,134,139,138,143,142}, - {39,38,35,34,147,146,151,150,155,154,159,158}, - {47,46,43,42,163,162,167,166,171,170,175,174}, - {55,54,51,50,179,178,183,182,187,186,191,190}, - {63,62,59,58,195,194,199,198,203,202,207,206}, - {71,70,67,66,211,210,215,214,219,218,223,222}, - {79,78,75,74,227,226,231,230,235,234,239,238} - }; - -//______________________________________________________________________________ -AliAnalysisTaskSPD::AliAnalysisTaskSPD() : - AliAnalysisTaskSE(), - fOutput(0), - fSegSPD(0) -{ - // -} -//______________________________________________________________________________ -AliAnalysisTaskSPD::AliAnalysisTaskSPD(const char *name) : - AliAnalysisTaskSE(name), - fOutput(0), - fSegSPD(0) -{ - DefineOutput(1, TList::Class()); -} - - -//___________________________________________________________________________ -AliAnalysisTaskSPD::~AliAnalysisTaskSPD(){ - // - if (fOutput) { - delete fOutput; - fOutput = 0; - } - if(fSegSPD) delete fSegSPD; -} - -//________________________________________________________________________ -void AliAnalysisTaskSPD::Init() -{ - // Initialization - - if(fDebug > 1) printf("AliAnalysisTaskSPD::Init() \n"); -} -//___________________________________________________________________________ - -void AliAnalysisTaskSPD::UserCreateOutputObjects() { - // - if(fDebug > 1) printf("AliAnalysisTaskSPD::UserCreateOutputObjects() \n"); - - fSegSPD = new AliITSsegmentationSPD(); - - OpenFile(1); - fOutput = new TList(); - - TH1I *nentries = new TH1I("events","events",1,0,1); - fOutput->AddLast(nentries); - - TH2F *modulemap[240]; - - for(Int_t imod =0; imod < 240; imod++){ - modulemap[imod] = new TH2F(Form("mod%i",imod),Form("cluster map for module %i",imod),800,-4,4,200,-1,1); - modulemap[imod]->SetXTitle("Local Z (cm)"); - modulemap[imod]->SetYTitle("Local X (cm)"); - fOutput->AddLast(modulemap[imod]); - } - - TH1F *hFOgood = new TH1F("hFOgood"," Events with FO and clusters ",1200,0,1200); - hFOgood->SetXTitle("chipkey"); - fOutput->AddLast(hFOgood); - - TH1F *hFOnoisy = new TH1F("hFOnoisy"," Events with FO but no cluster",1200,0,1200); - hFOnoisy->SetXTitle("chipkey"); - fOutput->AddLast(hFOnoisy); - - TH1F *hFiredChips = new TH1F("hFiredChips"," yield of fired chips",1200,0,1200); - hFiredChips->SetXTitle("chipkey"); - fOutput->AddLast(hFiredChips); - - TH2F *hSPDphivsSPDeta= new TH2F("hSPDphivsSPDeta", "Tracklets - #varphi vs #eta",120,-3.,3,360,0.,2*TMath::Pi()); - hSPDphivsSPDeta->GetXaxis()->SetTitle("Pseudorapidity #eta"); - hSPDphivsSPDeta->GetYaxis()->SetTitle("#varphi [rad]"); - fOutput->AddLast(hSPDphivsSPDeta); - - TH1F *hSPDphiZpos= new TH1F("hSPDphiZpos", "Tracklets - #varphi (Z>0)",360,0.,2*TMath::Pi()); - hSPDphiZpos->SetXTitle("#varphi [rad]"); - fOutput->AddLast(hSPDphiZpos); - - TH1F *hSPDphiZneg= new TH1F("fHistSPDphivsSPDetaZneg", "Tracklets - #varphi (Z<0)",360,0.,2*TMath::Pi()); - hSPDphiZneg->SetXTitle("#varphi [rad]"); - fOutput->AddLast(hSPDphiZneg); - -} -//______________________________________________________________________________ -void AliAnalysisTaskSPD::UserExec(Option_t */*option*/) -{ - if(fDebug > 1) printf("AliAnalysisTaskSPD::Exec() \n"); - - - AliESDInputHandlerRP *hand = dynamic_cast (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); - if(!hand) { - printf("No AliESDInputHandlerRP \n"); - return; - } - - AliESDEvent *ESD = hand->GetEvent(); - if(!ESD) { - printf("No AliESDEvent \n"); - return; - } - - TTree * treeRP = hand->GetTreeR("ITS"); - if(!treeRP) { - printf("No RecPoints tree \n"); - return; - } - - // RecPoints info - - TClonesArray statITSrec("AliITSRecPoint"); - TClonesArray *ITSCluster = &statITSrec; - TBranch* branch=treeRP->GetBranch("ITSRecPoints"); - if(!branch) return; - - branch->SetAddress(&ITSCluster); - - Bool_t isfiredchip[20][6][10]; - for(Int_t eq=0; eq<20; eq++){ - for(Int_t hs =0; hs<6; hs++){ - for(Int_t chip=0; chip<10; chip++){ - isfiredchip[eq][hs][chip]=kFALSE; - } - } - } - - - for(Int_t iMod=0;iMod<240;iMod++){ - branch->GetEvent(iMod); - Int_t nrecp = statITSrec.GetEntries(); - for(Int_t irec=0;irecGetLayer(); - if(lay>1) continue; - Float_t local[3]={-1,-1}; - local[1]=recp->GetDetLocalX(); - local[0]=recp->GetDetLocalZ(); - //printf("local X %f local Z %f in module %i \n",local[0],local[1],iMod); - ((TH2F*)fOutput->At(iMod+1))->Fill(local[0],local[1]); - Int_t eq = GetOnlineEqIdFromOffline(iMod); - Int_t hs = GetOnlineHSFromOffline(iMod); - Int_t row, col; - fSegSPD->LocalToDet(0.5,local[0],row,col); - Int_t chip = GetOnlineChipFromOffline(iMod,col); - isfiredchip[eq][hs][chip]=kTRUE; - } - } - - // ESDs info - - // First looking at the FO bits - const AliMultiplicity *mult = ESD->GetMultiplicity(); - - for(Int_t eq=0; eq<20; eq++){ - for(Int_t hs =0; hs<6; hs++){ - for(Int_t chip=0; chip<10; chip++){ - Int_t key = GetOfflineChipKeyFromOnline(eq,hs,chip); - if(mult->TestFastOrFiredChips(key) && isfiredchip[eq][hs][chip]) ((TH1F*)fOutput->At(241))->Fill(key); - if(!isfiredchip[eq][hs][chip] && mult->TestFastOrFiredChips(key)) ((TH1F*)fOutput->At(242))->Fill(key); - if(isfiredchip[eq][hs][chip]) ((TH1F*)fOutput->At(243))->Fill(key); - } - } - } - - // Then looking at tracklets - Bool_t eventWithVertex = kFALSE; - const AliESDVertex* vtxESD = ESD->GetVertex(); - if(vtxESD){ - - Double_t esdvtx[3]; - vtxESD->GetXYZ(esdvtx); - - for(Int_t iTracklet =0; iTracklet < mult->GetNumberOfTracklets(); iTracklet++){ - - Float_t phiTr= mult->GetPhi(iTracklet); - Float_t etaTr =mult->GetEta(iTracklet); - - ((TH2F*)fOutput->At(244))->Fill(etaTr,phiTr); - - //layer 0 - //Float_t z = esdvtx[2] + 3.9 / TMath::Tan(2 * TMath::ATan(TMath::Exp(- etaTr))); - Int_t isZpos = (esdvtx[2]>0 && etaTr>0) ; - Int_t isZneg = (esdvtx[2]<0 && etaTr<0) ; - - if(isZpos) ((TH1F*)fOutput->At(245))->Fill(phiTr); - if(isZneg) ((TH1F*)fOutput->At(246))->Fill(phiTr); - } - } - - ((TH1I*)fOutput->At(0))->Fill(0); // monitoring plot - - PostData(1,fOutput); - return; - -} -//______________________________________________________________________________ -void AliAnalysisTaskSPD::Terminate(Option_t */*option*/) -{ - // Terminate analysis - if(fDebug > 1) printf("AliAnalysisTaskSPD:: Terminate() \n"); - fOutput = dynamic_cast (GetOutputData(1)); - if (!fOutput) { - printf("ERROR: fOutput not available\n"); - //return; - } -} -//________________________________________________________________________ -UInt_t AliAnalysisTaskSPD::GetOfflineModuleFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip) { - // online->offline (module) - if (eqId<20 && hs<6 && chip<10) return fgkDDLModuleMap[eqId][hs*2+chip/5]; - else return 240; -} -//________________________________________________________________________ -UInt_t AliAnalysisTaskSPD::GetOfflineChipKeyFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip) { - // online->offline (chip key: 0-1199) - if (eqId<20 && hs<6 && chip<10) { - UInt_t module = GetOfflineModuleFromOnline(eqId,hs,chip); - UInt_t chipInModule = ( chip>4 ? chip-5 : chip ); - if(eqId>9) chipInModule = 4 - chipInModule; // side C only - return (module*5 + chipInModule); - } else return 1200; -} -//__________________________________________________________________________ -UInt_t AliAnalysisTaskSPD::GetOnlineEqIdFromOffline(UInt_t module) { - // offline->online (eq) - for (UInt_t eqId=0; eqId<20; eqId++) { - for (UInt_t iModule=0; iModule<12; iModule++) { - if (GetModuleNumber(eqId,iModule)==(Int_t)module) return eqId; - } - } - return 20; // error -} -//__________________________________________________________________________ -UInt_t AliAnalysisTaskSPD::GetOnlineHSFromOffline(UInt_t module) { - // offline->online (hs) - for (UInt_t eqId=0; eqId<20; eqId++) { - for (UInt_t iModule=0; iModule<12; iModule++) { - if (GetModuleNumber(eqId,iModule)==(Int_t)module) return iModule/2; - } - } - return 6; // error -} -//__________________________________________________________________________ -UInt_t AliAnalysisTaskSPD::GetOnlineChipFromOffline(UInt_t module, UInt_t colM) { - // offline->online (chip) - for (UInt_t eq=0; eq<20; eq++) { - for (UInt_t iModule=0; iModule<12; iModule++) { - if (GetModuleNumber(eq,iModule)==(Int_t)module) { - if (module<80) { - if (eq<10) { // side A - return (159-colM)/32 + 5*(iModule%2); - } - else { // side C - return colM/32 + 5*(iModule%2); - } - } - else if (module<240) { - if (eq<10) { // side A - return colM/32 + 5*(iModule%2); - } - else { // side C - return (159-colM)/32 + 5*(iModule%2); - } - } - } - } - } - return 10; // error -} -//__________________________________________________________________________ -Int_t AliAnalysisTaskSPD::GetModuleNumber(UInt_t iDDL, UInt_t iModule) { - if (iDDL<20 && iModule<12) return fgkDDLModuleMap[iDDL][iModule]; - else return 240; -} - - diff --git a/PWG1/PilotTrain/AliAnalysisTaskSPD.h b/PWG1/PilotTrain/AliAnalysisTaskSPD.h deleted file mode 100644 index c36f0e7ecb1..00000000000 --- a/PWG1/PilotTrain/AliAnalysisTaskSPD.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef ALIANALYSISTASKSPD_H -#define ALIANALYSISTASKSPD_H - - -#include "AliAnalysisTaskSE.h" - -class AliITSsegmentationSPD; -class AliAnalysisTaskSPD : public AliAnalysisTaskSE { - - public: - - AliAnalysisTaskSPD(); - AliAnalysisTaskSPD(const char *name); - virtual ~AliAnalysisTaskSPD(); - - virtual void UserCreateOutputObjects(); - virtual void Init(); - virtual void LocalInit() {Init();} - virtual void UserExec(Option_t *option); - virtual void Terminate(Option_t *option); - - - private: - - UInt_t GetOfflineModuleFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip); //see AliITSRawStreamSPD - UInt_t GetOfflineChipKeyFromOnline(UInt_t eqId, UInt_t hs, UInt_t chip); // see AliITSRawStreamSPD - UInt_t GetOnlineEqIdFromOffline(UInt_t module); // see AliITSRawStreamSPD - UInt_t GetOnlineHSFromOffline(UInt_t module); // see AliITSRawStreamSPD - UInt_t GetOnlineChipFromOffline(UInt_t module, UInt_t colM); // see AliITSRawStreamSPD - Int_t GetModuleNumber(UInt_t iDDL, UInt_t iModule); // see AliITSRawStreamSPD - - AliAnalysisTaskSPD(const AliAnalysisTaskSPD &source); - AliAnalysisTaskSPD& operator=(const AliAnalysisTaskSPD &source); - - static const Int_t fgkDDLModuleMap[20][12]; // mapping DDL/module -> module number - - TList *fOutput; //! list of histos - AliITSsegmentationSPD *fSegSPD; - ClassDef(AliAnalysisTaskSPD,1); -}; - - -#endif -- 2.43.5