From 920e13db6574021d4f005b907fc875e7e3d88240 Mon Sep 17 00:00:00 2001 From: basanta Date: Tue, 26 May 2009 08:48:49 +0000 Subject: [PATCH] isolated cell serach included in AliPMDClusteringV1 and kept in recpoints for offline calibration, Track number is propagated to recpoint and kept in rechit branch for eff/pur --- PMD/AliPMDClusterFinder.cxx | 182 +++++++++++++++++++++++++++++++----- PMD/AliPMDClusterFinder.h | 7 +- PMD/AliPMDClustering.h | 7 +- PMD/AliPMDClusteringV1.cxx | 81 ++++++++++++++-- PMD/AliPMDClusteringV1.h | 10 +- PMD/AliPMDClusteringV2.cxx | 11 ++- PMD/AliPMDClusteringV2.h | 7 +- PMD/AliPMDDigitizer.cxx | 121 +++++++++++++++++------- PMD/AliPMDDigitizer.h | 11 ++- PMD/AliPMDRawToSDigits.cxx | 24 +++-- PMD/AliPMDRawToSDigits.h | 6 +- PMD/AliPMDcluster.cxx | 21 ++++- PMD/AliPMDcluster.h | 11 ++- PMD/AliPMDdigit.cxx | 12 ++- PMD/AliPMDdigit.h | 6 +- PMD/AliPMDisocell.cxx | 110 ++++++++++++++++++++++ PMD/AliPMDisocell.h | 48 ++++++++++ PMD/AliPMDrechit.cxx | 29 +++++- PMD/AliPMDrechit.h | 8 +- PMD/AliPMDsdigit.cxx | 11 ++- PMD/AliPMDsdigit.h | 6 +- PMD/AliPMDtracker.cxx | 9 +- PMD/CMake_libPMDrec.txt | 2 +- PMD/PMDrecLinkDef.h | 1 + PMD/libPMDrec.pkg | 2 +- 25 files changed, 627 insertions(+), 116 deletions(-) create mode 100644 PMD/AliPMDisocell.cxx create mode 100644 PMD/AliPMDisocell.h diff --git a/PMD/AliPMDClusterFinder.cxx b/PMD/AliPMDClusterFinder.cxx index 0185c3b565b..5a92759229e 100644 --- a/PMD/AliPMDClusterFinder.cxx +++ b/PMD/AliPMDClusterFinder.cxx @@ -39,6 +39,7 @@ #include "AliPMDcluster.h" #include "AliPMDrecpoint1.h" #include "AliPMDrechit.h" +#include "AliPMDisocell.h" #include "AliPMDRawStream.h" #include "AliPMDCalibData.h" #include "AliPMDPedestal.h" @@ -151,7 +152,11 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt) Int_t idet; Float_t clusdata[6]; + AliPMDisocell *pmdiso = 0x0; + TObjArray *pmdcont = new TObjArray(); + TObjArray *pmdisocell = new TObjArray(); + AliPMDClustering *pmdclust = new AliPMDClusteringV1(); pmdclust->SetEdepCut(fEcut); @@ -211,13 +216,17 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt) adc = adc*gain; //Int_t trno = pmddigit->GetTrackNumber(); - fCellADC[xpos][ypos] = (Double_t) adc; + fCellTrack[xpos][ypos] = pmddigit->GetTrackNumber(); + fCellPid[xpos][ypos] = pmddigit->GetTrackPid(); + fCellADC[xpos][ypos] = (Double_t) adc; } idet = det; ismn = smn; - pmdclust->DoClust(idet,ismn,fCellADC,pmdcont); - + //pmdclust->DoClust(idet,ismn,fCellADC,pmdisocell,pmdcont); + pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC, + pmdisocell,pmdcont); + Int_t nentries1 = pmdcont->GetEntries(); AliDebug(1,Form("Total number of clusters/module = %d",nentries1)); @@ -241,12 +250,35 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt) { Int_t celldataX = pmdcl->GetClusCellX(ihit); Int_t celldataY = pmdcl->GetClusCellY(ihit); - AddRecHit(celldataX, celldataY); + Int_t celldataTr = pmdcl->GetClusCellTrack(ihit); + Int_t celldataPid = pmdcl->GetClusCellPid(ihit); + AddRecHit(celldataX, celldataY, celldataTr, celldataPid); + //AddRecHit(celldataX, celldataY); } branch2->Fill(); ResetRechit(); } pmdcont->Delete(); + + // Added single isolated cell for offline gain calibration + nentries1 = pmdisocell->GetEntries(); + AliDebug(1,Form("Total number of isolated single cell clusters = %d",nentries1)); + + for (Int_t ient1 = 0; ient1 < nentries1; ient1++) + { + pmdiso = (AliPMDisocell*)pmdisocell->UncheckedAt(ient1); + idet = pmdiso->GetDetector(); + ismn = pmdiso->GetSmn(); + clusdata[0] = (Float_t) pmdiso->GetRow(); + clusdata[1] = (Float_t) pmdiso->GetCol(); + clusdata[2] = pmdiso->GetADC(); + clusdata[3] = 1.; + clusdata[4] = -99.; + clusdata[5] = -99.; + + AddRecPoint(idet,ismn,clusdata); + } + pmdisocell->Delete(); branch1->Fill(); ResetRecpoint(); @@ -260,6 +292,7 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt) // delete the pointers delete pmdclust; delete pmdcont; + delete pmdisocell; } // ------------------------------------------------------------------------- // @@ -280,8 +313,10 @@ void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree, Float_t clusdata[6]; AliPMDcluster *pmdcl = 0x0; + AliPMDisocell *pmdiso = 0x0; TObjArray *pmdcont = new TObjArray(); + TObjArray *pmdisocell = new TObjArray(); AliPMDClustering *pmdclust = new AliPMDClusteringV1(); pmdclust->SetEdepCut(fEcut); @@ -337,6 +372,8 @@ void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree, adc = adc1*gain; //Int_t trno = pmddigit->GetTrackNumber(); + fCellTrack[xpos][ypos] = pmddigit->GetTrackNumber(); + fCellPid[xpos][ypos] = pmddigit->GetTrackPid(); fCellADC[xpos][ypos] = (Double_t) adc; totADCMod += (Int_t) adc; @@ -348,7 +385,8 @@ void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree, if (totADCMod <= 0) continue; - pmdclust->DoClust(idet,ismn,fCellADC,pmdcont); + pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC, + pmdisocell,pmdcont); Int_t nentries1 = pmdcont->GetEntries(); @@ -356,7 +394,7 @@ void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree, for (Int_t ient1 = 0; ient1 < nentries1; ient1++) { - pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1); + pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1); idet = pmdcl->GetDetector(); ismn = pmdcl->GetSMN(); clusdata[0] = pmdcl->GetClusX(); @@ -373,24 +411,47 @@ void AliPMDClusterFinder::Digits2RecPoints(TTree *digitsTree, { Int_t celldataX = pmdcl->GetClusCellX(ihit); Int_t celldataY = pmdcl->GetClusCellY(ihit); - AddRecHit(celldataX, celldataY); + Int_t celldataTr = pmdcl->GetClusCellTrack(ihit); + Int_t celldataPid = pmdcl->GetClusCellPid(ihit); + AddRecHit(celldataX, celldataY, celldataTr, celldataPid); } branch2->Fill(); ResetRechit(); } pmdcont->Delete(); + + // Added single isolated cell for offline gain calibration + nentries1 = pmdisocell->GetEntries(); + AliDebug(1,Form("Total number of isolated single cell clusters = %d",nentries1)); + + for (Int_t ient1 = 0; ient1 < nentries1; ient1++) + { + pmdiso = (AliPMDisocell*)pmdisocell->UncheckedAt(ient1); + idet = pmdiso->GetDetector(); + ismn = pmdiso->GetSmn(); + clusdata[0] = (Float_t) pmdiso->GetRow(); + clusdata[1] = (Float_t) pmdiso->GetCol(); + clusdata[2] = pmdiso->GetADC(); + clusdata[3] = 1.; + clusdata[4] = -99.; + clusdata[5] = -99.; + + AddRecPoint(idet,ismn,clusdata); + } + pmdisocell->Delete(); branch1->Fill(); ResetRecpoint(); } // modules + ResetCellADC(); // delete the pointers delete pmdclust; delete pmdcont; - + delete pmdisocell; } // ------------------------------------------------------------------------- // @@ -403,14 +464,16 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, // This method is called at the time of reconstruction from RAW data - AliPMDddldata *pmdddl = 0x0; - AliPMDcluster *pmdcl = 0x0; + AliPMDddldata *pmdddl = 0x0; + AliPMDcluster *pmdcl = 0x0; + AliPMDisocell *pmdiso = 0x0; Float_t clusdata[6]; TObjArray pmdddlcont; TObjArray *pmdcont = new TObjArray(); + TObjArray *pmdisocell = new TObjArray(); AliPMDClustering *pmdclust = new AliPMDClusteringV1(); @@ -465,7 +528,7 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, Int_t ientries = pmdddlcont.GetEntries(); for (Int_t ient = 0; ient < ientries; ient++) { - pmdddl = (AliPMDddldata*)pmdddlcont.UncheckedAt(ient); + pmdddl = (AliPMDddldata*)pmdddlcont.UncheckedAt(ient); Int_t det = pmdddl->GetDetector(); Int_t smn = pmdddl->GetSMN(); @@ -554,6 +617,9 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, { for (Int_t icol = 0; icol < kCol; icol++) { + fCellTrack[irow][icol] = -1; + fCellPid[irow][icol] = -1; + fCellADC[irow][icol] = (Double_t) precpvADC[indexsmn][irow][icol]; totAdcMod += precpvADC[indexsmn][irow][icol]; @@ -591,14 +657,19 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, } if (totAdcMod <= 0) continue; - pmdclust->DoClust(idet,ismn,fCellADC,pmdcont); + + + //pmdclust->DoClust(idet,ismn,fCellADC,pmdisocell,pmdcont); + pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC, + pmdisocell,pmdcont); + Int_t nentries1 = pmdcont->GetEntries(); AliDebug(1,Form("Total number of clusters/module = %d",nentries1)); for (Int_t ient1 = 0; ient1 < nentries1; ient1++) { - pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1); + pmdcl = (AliPMDcluster*)pmdcont->UncheckedAt(ient1); idet = pmdcl->GetDetector(); ismn = pmdcl->GetSMN(); clusdata[0] = pmdcl->GetClusX(); @@ -615,13 +686,37 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, { Int_t celldataX = pmdcl->GetClusCellX(ihit); Int_t celldataY = pmdcl->GetClusCellY(ihit); - AddRecHit(celldataX, celldataY); + Int_t celldataTr = pmdcl->GetClusCellTrack(ihit); + Int_t celldataPid = pmdcl->GetClusCellPid(ihit); + AddRecHit(celldataX, celldataY, celldataTr, celldataPid); + //AddRecHit(celldataX, celldataY); } branch2->Fill(); ResetRechit(); } pmdcont->Delete(); + + + // Added single isolated cell for offline gain calibration + nentries1 = pmdisocell->GetEntries(); + AliDebug(1,Form("Total number of isolated single cell clusters = %d",nentries1)); + + for (Int_t ient1 = 0; ient1 < nentries1; ient1++) + { + pmdiso = (AliPMDisocell*)pmdisocell->UncheckedAt(ient1); + idet = pmdiso->GetDetector(); + ismn = pmdiso->GetSmn(); + clusdata[0] = (Float_t) pmdiso->GetRow(); + clusdata[1] = (Float_t) pmdiso->GetCol(); + clusdata[2] = pmdiso->GetADC(); + clusdata[3] = 1.; + clusdata[4] = -99.; + clusdata[5] = -99.; + + AddRecPoint(idet,ismn,clusdata); + } + pmdisocell->Delete(); branch1->Fill(); ResetRecpoint(); @@ -637,12 +732,14 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader, delete [] precpvADC; } // DDL Loop + ResetCellADC(); // delete the pointers delete pmdclust; delete pmdcont; + delete pmdisocell; } // ------------------------------------------------------------------------- // @@ -654,8 +751,15 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) // Float_t clusdata[6]; + TObjArray pmdddlcont; + + //AliPMDcluster *pmdcl = 0x0; + AliPMDisocell *pmdiso = 0x0; + + TObjArray *pmdcont = new TObjArray(); + TObjArray *pmdisocell = new TObjArray(); AliPMDClustering *pmdclust = new AliPMDClusteringV1(); @@ -799,6 +903,8 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) { for (Int_t icol = 0; icol < kCol; icol++) { + fCellTrack[irow][icol] = -1; + fCellPid[irow][icol] = -1; fCellADC[irow][icol] = (Double_t) precpvADC[indexsmn][irow][icol]; } // row @@ -835,7 +941,10 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) idet = 1; } - pmdclust->DoClust(idet,ismn,fCellADC,pmdcont); + //pmdclust->DoClust(idet,ismn,fCellADC,pmdisocell,pmdcont); + pmdclust->DoClust(idet,ismn,fCellTrack,fCellPid,fCellADC, + pmdisocell,pmdcont); + Int_t nentries1 = pmdcont->GetEntries(); AliDebug(1,Form("Total number of clusters/module = %d",nentries1)); @@ -860,13 +969,36 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) { Int_t celldataX = pmdcl->GetClusCellX(ihit); Int_t celldataY = pmdcl->GetClusCellY(ihit); - AddRecHit(celldataX, celldataY); + Int_t celldataTr = pmdcl->GetClusCellTrack(ihit); + Int_t celldataPid = pmdcl->GetClusCellPid(ihit); + AddRecHit(celldataX, celldataY, celldataTr, celldataPid); + //AddRecHit(celldataX, celldataY); } branch2->Fill(); ResetRechit(); } pmdcont->Delete(); + + // Added single isolated cell for offline gain calibration + nentries1 = pmdisocell->GetEntries(); + AliDebug(1,Form("Total number of isolated single cell clusters = %d",nentries1)); + + for (Int_t ient1 = 0; ient1 < nentries1; ient1++) + { + pmdiso = (AliPMDisocell*)pmdisocell->UncheckedAt(ient1); + idet = pmdiso->GetDetector(); + ismn = pmdiso->GetSmn(); + clusdata[0] = (Float_t) pmdiso->GetRow(); + clusdata[1] = (Float_t) pmdiso->GetCol(); + clusdata[2] = pmdiso->GetADC(); + clusdata[3] = 1.; + clusdata[4] = -99.; + clusdata[5] = -99.; + + AddRecPoint(idet,ismn,clusdata); + } + pmdisocell->Delete(); branch1->Fill(); ResetRecpoint(); @@ -881,7 +1013,8 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) for (Int_t i=0; iGetLoader("PMDLoader"); @@ -890,7 +1023,7 @@ void AliPMDClusterFinder::Digits2RecPoints(Int_t ievt, AliRawReader *rawReader) // delete the pointers delete pmdclust; delete pmdcont; - + delete pmdisocell; } // ------------------------------------------------------------------------- // void AliPMDClusterFinder::SetCellEdepCut(Float_t ecut) @@ -909,13 +1042,14 @@ void AliPMDClusterFinder::AddRecPoint(Int_t idet,Int_t ismn,Float_t *clusdata) delete newrecpoint; } // ------------------------------------------------------------------------- // -void AliPMDClusterFinder::AddRecHit(Int_t celldataX,Int_t celldataY) +void AliPMDClusterFinder::AddRecHit(Int_t celldataX,Int_t celldataY, + Int_t celldataTr, Int_t celldataPid) { // Add associated cell hits to the Reconstructed points // TClonesArray &lrechits = *fRechits; AliPMDrechit *newrechit; - newrechit = new AliPMDrechit(celldataX, celldataY); + newrechit = new AliPMDrechit(celldataX, celldataY, celldataTr, celldataPid); new(lrechits[fNhit++]) AliPMDrechit(newrechit); delete newrechit; } @@ -928,12 +1062,13 @@ void AliPMDClusterFinder::ResetCellADC() { for(Int_t icol = 0; icol < fgkCol; icol++) { - fCellADC[irow][icol] = 0.; + fCellTrack[irow][icol] = -1; + fCellPid[irow][icol] = -1; + fCellADC[irow][icol] = 0.; } } } // ------------------------------------------------------------------------- // - void AliPMDClusterFinder::ResetRecpoint() { // Clear the list of reconstructed points @@ -978,7 +1113,6 @@ void AliPMDClusterFinder::UnLoadClusters() fPMDLoader->UnloadRecPoints(); } // ------------------------------------------------------------------------- // - AliPMDCalibData* AliPMDClusterFinder::GetCalibGain() const { // The run number will be centralized in AliCDBManager, @@ -995,9 +1129,7 @@ AliPMDCalibData* AliPMDClusterFinder::GetCalibGain() const return calibdata; } - // ------------------------------------------------------------------------- // - AliPMDPedestal* AliPMDClusterFinder::GetCalibPed() const { // The run number will be centralized in AliCDBManager, diff --git a/PMD/AliPMDClusterFinder.h b/PMD/AliPMDClusterFinder.h index 7881fb0c5dc..153efb3a6e1 100644 --- a/PMD/AliPMDClusterFinder.h +++ b/PMD/AliPMDClusterFinder.h @@ -38,7 +38,8 @@ class AliPMDClusterFinder : public TObject void Digits2RecPoints(Int_t ievt, AliRawReader *rawReader); void SetCellEdepCut(Float_t ecut); void AddRecPoint(Int_t idet, Int_t ismn, Float_t * clusdata); - void AddRecHit(Int_t celldataX, Int_t celldataY); + void AddRecHit(Int_t celldataX, Int_t celldataY, Int_t celldataTr, + Int_t celldataPid); void ResetCellADC(); void ResetRecpoint(); void ResetRechit(); @@ -72,8 +73,10 @@ class AliPMDClusterFinder : public TObject static const Int_t fgkRow = 48; // Total number of rows in one unitmodule static const Int_t fgkCol = 96; // Total number of cols in one unitmodule Double_t fCellADC[fgkRow][fgkCol]; // Array containing individual cell ADC + Int_t fCellTrack[fgkRow][fgkCol]; // Array containing individual cell tr + Int_t fCellPid[fgkRow][fgkCol]; // Array containing individual cell pid - ClassDef(AliPMDClusterFinder,12) // To run PMD clustering + ClassDef(AliPMDClusterFinder,13) // To run PMD clustering }; #endif diff --git a/PMD/AliPMDClustering.h b/PMD/AliPMDClustering.h index 4764e66935b..0c07293d717 100644 --- a/PMD/AliPMDClustering.h +++ b/PMD/AliPMDClustering.h @@ -23,11 +23,12 @@ class AliPMDClustering: public TObject AliPMDClustering(){}; virtual ~AliPMDClustering(){}; - virtual void DoClust(Int_t idet, Int_t ismn, Double_t celladc[][96], - TObjArray *pmdcont) = 0; + virtual void DoClust(Int_t idet, Int_t ismn, Int_t celltrack[][96], + Int_t cellpid[][96], Double_t celladc[][96], + TObjArray *pmdisocell, TObjArray *pmdcont) = 0; virtual void SetEdepCut(Float_t decut) = 0; - ClassDef(AliPMDClustering,6) // Does clustering for PMD + ClassDef(AliPMDClustering,7) // Does clustering for PMD }; #endif diff --git a/PMD/AliPMDClusteringV1.cxx b/PMD/AliPMDClusteringV1.cxx index a081946f376..b96eb60d7d1 100644 --- a/PMD/AliPMDClusteringV1.cxx +++ b/PMD/AliPMDClusteringV1.cxx @@ -50,6 +50,7 @@ #include "AliPMDcludata.h" #include "AliPMDcluster.h" +#include "AliPMDisocell.h" #include "AliPMDClustering.h" #include "AliPMDClusteringV1.h" #include "AliLog.h" @@ -95,8 +96,11 @@ AliPMDClusteringV1::~AliPMDClusteringV1() delete fPMDclucont; } // ------------------------------------------------------------------------ // -void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, - Double_t celladc[48][96], TObjArray *pmdcont) +void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, + Int_t celltrack[48][96], + Int_t cellpid[48][96], + Double_t celladc[48][96], + TObjArray *pmdisocell, TObjArray *pmdcont) { // main function to call other necessary functions to do clustering // @@ -108,6 +112,7 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, Int_t i, j, nmx1, incr, id, jd; Int_t celldataX[kNmaxCell], celldataY[kNmaxCell]; + Int_t celldataTr[kNmaxCell], celldataPid[kNmaxCell]; Float_t clusdata[6]; Double_t cutoff, ave; Double_t edepcell[kNMX]; @@ -116,6 +121,10 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, Double_t *cellenergy = new Double_t [11424]; + // call the isolated cell search method + + CalculateIsoCell(idet, ismn, celladc, pmdisocell); + // ndimXr and ndimYr are different because of different module size Int_t ndimXr = 0; @@ -137,7 +146,6 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, cellenergy[i] = 0.; } - Int_t kk = 0; for (i = 0; i < kNDIMX; i++) { @@ -231,7 +239,6 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, { clusdata[0] = cluX0 - (48-1) + cluY0/2.; } - clusdata[1] = cluY0; clusdata[2] = cluADC; @@ -258,10 +265,24 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, } celldataY[ihit] = cellcol; - } + + Int_t irow = celldataX[ihit]; + Int_t icol = celldataY[ihit]; + if ((irow >= 0 && irow < 48) && (icol >= 0 && icol < 96)) + { + celldataTr[ihit] = celltrack[irow][icol]; + celldataPid[ihit] = cellpid[irow][icol]; + } + else + { + celldataTr[ihit] = -1; + celldataPid[ihit] = -1; + } + } - pmdcl = new AliPMDcluster(idet, ismn, clusdata, celldataX, celldataY); + pmdcl = new AliPMDcluster(idet, ismn, clusdata, celldataX, celldataY, + celldataTr, celldataPid); pmdcont->Add(pmdcl); } @@ -896,6 +917,54 @@ Double_t AliPMDClusteringV1::Distance(Double_t x1, Double_t y1, Double_t x2, Double_t y2) { return TMath::Sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); +} +// ------------------------------------------------------------------------ // +void AliPMDClusteringV1::CalculateIsoCell(Int_t idet, Int_t ismn, Double_t celladc[][96], TObjArray *pmdisocell) +{ + // Does isolated cell search for offline calibration + + AliPMDisocell *isocell = 0; + + const Int_t kMaxRow = 48; + const Int_t kMaxCol = 96; + const Int_t kCellNeighbour = 6; + + Int_t id1, jd1; + + Int_t neibx[6] = {1,0,-1,-1,0,1}; + Int_t neiby[6] = {0,1,1,0,-1,-1}; + + + for(Int_t irow = 0; irow < kMaxRow; irow++) + { + for(Int_t icol = 0; icol < kMaxCol; icol++) + { + if(celladc[irow][icol] > 0) + { + Int_t isocount = 0; + for(Int_t ii = 0; ii < kCellNeighbour; ii++) + { + id1 = irow + neibx[ii]; + jd1 = icol + neiby[ii]; + Float_t adc = (Float_t) celladc[id1][jd1]; + if(adc == 0.) + { + isocount++; + if(isocount == kCellNeighbour) + { + Float_t cadc = (Float_t) celladc[irow][icol]; + + isocell = new AliPMDisocell(idet,ismn,irow,icol,cadc); + pmdisocell->Add(isocell); + + } + } + } // neigh cell cond. + } + } + } + + } // ------------------------------------------------------------------------ // void AliPMDClusteringV1::SetEdepCut(Float_t decut) diff --git a/PMD/AliPMDClusteringV1.h b/PMD/AliPMDClusteringV1.h index 2f43e2771eb..165a3d797ba 100644 --- a/PMD/AliPMDClusteringV1.h +++ b/PMD/AliPMDClusteringV1.h @@ -22,6 +22,7 @@ class TNtuple; class TObjArray; class AliPMDcluster; class AliPMDcludata; + class AliPMDClusteringV1: public AliPMDClustering { public: @@ -30,13 +31,16 @@ class AliPMDClusteringV1: public AliPMDClustering AliPMDClusteringV1 &operator=(const AliPMDClusteringV1 &pmdclv1); virtual ~AliPMDClusteringV1(); - void DoClust(Int_t idet, Int_t ismn, Double_t celladc[][96], - TObjArray *pmdcont); + void DoClust(Int_t idet, Int_t ismn, Int_t celltrack[][96], + Int_t cellpid[][96], Double_t celladc[][96], + TObjArray *pmdisocell, TObjArray *pmdcont); Int_t CrClust(Double_t ave, Double_t cutoff, Int_t nmx1, Int_t iord1[], Double_t edepcell[]); void RefClust(Int_t incr, Double_t edepcell[]); Double_t Distance(Double_t x1, Double_t y1, Double_t x2, Double_t y2); + void CalculateIsoCell(Int_t idet, Int_t ism, + Double_t celladc[][96], TObjArray *pmdisocell); void SetEdepCut(Float_t decut); protected: @@ -60,6 +64,6 @@ class AliPMDClusteringV1: public AliPMDClustering Float_t fCutoff; // Energy(ADC) cutoff per cell before clustering - ClassDef(AliPMDClusteringV1,5) // Does clustering for PMD + ClassDef(AliPMDClusteringV1,6) // Does clustering for PMD }; #endif diff --git a/PMD/AliPMDClusteringV2.cxx b/PMD/AliPMDClusteringV2.cxx index fb083512366..7191a534be5 100644 --- a/PMD/AliPMDClusteringV2.cxx +++ b/PMD/AliPMDClusteringV2.cxx @@ -92,7 +92,10 @@ AliPMDClusteringV2::~AliPMDClusteringV2() // ------------------------------------------------------------------------ // void AliPMDClusteringV2::DoClust(Int_t idet, Int_t ismn, - Double_t celladc[48][96], TObjArray *pmdcont) + Int_t celltrack[48][96], + Int_t cellpid[48][96], + Double_t celladc[48][96], + TObjArray *pmdisocell, TObjArray *pmdcont) { // main function to call other necessary functions to do clustering // @@ -104,6 +107,7 @@ void AliPMDClusteringV2::DoClust(Int_t idet, Int_t ismn, Int_t ndimXr = 0; Int_t ndimYr = 0; Int_t celldataX[kNmaxCell], celldataY[kNmaxCell]; + Int_t celldataTr[kNmaxCell], celldataPid[kNmaxCell]; Float_t clusdata[6]; Double_t cutoff, ave; Double_t edepcell[kNMX]; @@ -234,9 +238,12 @@ void AliPMDClusteringV2::DoClust(Int_t idet, Int_t ismn, celldataX[ihit] = (Int_t) ((cellX - (48-1) + cellY/2.) + 0.5 ); } celldataY[ihit] = (Int_t) (cellY + 0.5); + celldataTr[ihit] = -1; + celldataPid[ihit] = -1; } - pmdcl = new AliPMDcluster(idet, ismn, clusdata, celldataX, celldataY); + pmdcl = new AliPMDcluster(idet, ismn, clusdata, celldataX, celldataY, + celldataTr, celldataPid); pmdcont->Add(pmdcl); } fPMDclucont->Delete(); diff --git a/PMD/AliPMDClusteringV2.h b/PMD/AliPMDClusteringV2.h index 2330b531476..cbb4287d721 100644 --- a/PMD/AliPMDClusteringV2.h +++ b/PMD/AliPMDClusteringV2.h @@ -28,8 +28,9 @@ class AliPMDClusteringV2 : public AliPMDClustering AliPMDClusteringV2 &operator=(const AliPMDClusteringV2 &pmdclv2); virtual ~AliPMDClusteringV2(); - void DoClust(Int_t idet, Int_t ismn, Double_t celladc[][96], - TObjArray *pmdcont); + void DoClust(Int_t idet, Int_t ismn, Int_t celltrack[][96], + Int_t cellpid[][96], Double_t celladc[][96], + TObjArray *pmdisocell, TObjArray *pmdcont); Int_t CrClust(Double_t ave, Double_t cutoff, Int_t nmx1, Int_t iord1[], Double_t edepcell[]); void RefClust(Int_t incr, Double_t edepcell[]); @@ -60,7 +61,7 @@ class AliPMDClusteringV2 : public AliPMDClustering Float_t fCutoff; // Energy(ADC) cutoff per cell before clustering - ClassDef(AliPMDClusteringV2,3) // Does clustering for PMD + ClassDef(AliPMDClusteringV2,4) // Does clustering for PMD }; #endif diff --git a/PMD/AliPMDDigitizer.cxx b/PMD/AliPMDDigitizer.cxx index e6188cf6f40..f8d0c5ff16f 100644 --- a/PMD/AliPMDDigitizer.cxx +++ b/PMD/AliPMDDigitizer.cxx @@ -84,12 +84,14 @@ AliPMDDigitizer::AliPMDDigitizer() : { for (Int_t k = 0; k < fgkCol; k++) { - fCPV[i][j][k] = 0.; - fPRE[i][j][k] = 0.; - fCPVCounter[i][j][k] = 0; - fPRECounter[i][j][k] = 0; - fCPVTrackNo[i][j][k] = -1; - fPRETrackNo[i][j][k] = -1; + fCPV[i][j][k] = 0.; + fPRE[i][j][k] = 0.; + fCPVCounter[i][j][k] = 0; + fPRECounter[i][j][k] = 0; + fCPVTrackNo[i][j][k] = -1; + fPRETrackNo[i][j][k] = -1; + fCPVTrackPid[i][j][k] = -1; + fPRETrackPid[i][j][k] = -1; } } } @@ -152,12 +154,14 @@ AliPMDDigitizer::AliPMDDigitizer(AliRunDigitizer* manager): { for (Int_t k = 0; k < fgkCol; k++) { - fCPV[i][j][k] = 0.; - fPRE[i][j][k] = 0.; - fCPVCounter[i][j][k] = 0; - fPRECounter[i][j][k] = 0; - fCPVTrackNo[i][j][k] = -1; - fPRETrackNo[i][j][k] = -1; + fCPV[i][j][k] = 0.; + fPRE[i][j][k] = 0.; + fCPVCounter[i][j][k] = 0; + fPRECounter[i][j][k] = 0; + fCPVTrackNo[i][j][k] = -1; + fPRETrackNo[i][j][k] = -1; + fCPVTrackPid[i][j][k] = -1; + fPRETrackPid[i][j][k] = -1; } } } @@ -276,6 +280,17 @@ void AliPMDDigitizer::Hits2SDigits(Int_t ievt) AliDebug(1,Form("Event Number = %d",ievt)); Int_t nparticles = fRunLoader->GetHeader()->GetNtrack(); AliDebug(1,Form("Number of Particles = %d",nparticles)); + // + // Ajay on 24th May 2009 + //No of primary + Int_t nprimary = fRunLoader->GetHeader()->GetNprimary(); + Int_t * mtraPid = new Int_t [nprimary]; + for(Int_t i = 0; i < nprimary; i++) + { + mtraPid[i] = -1; + } + // + fRunLoader->GetEvent(ievt); // ------------------------------------------------------- // // Pointer to specific detector hits. @@ -357,6 +372,8 @@ void AliPMDDigitizer::Hits2SDigits(Int_t ievt) trackpid=trackpidOld; trackno=tracknoOld; + mtraPid[trackno] = mtrackpid; + //-----------------end of modification---------------- xPos = fPMDHit->X(); yPos = fPMDHit->Y(); @@ -438,6 +455,7 @@ void AliPMDDigitizer::Hits2SDigits(Int_t ievt) Float_t deltaE = 0.; Int_t detno = 0; Int_t trno = -1; + Int_t trpid = -99; for (Int_t idet = 0; idet < 2; idet++) { @@ -451,17 +469,19 @@ void AliPMDDigitizer::Hits2SDigits(Int_t ievt) { deltaE = fPRE[ism][jrow][kcol]; trno = fPRETrackNo[ism][jrow][kcol]; + trpid = mtraPid[trno]; // added detno = 0; } else if (idet == 1) { deltaE = fCPV[ism][jrow][kcol]; trno = fCPVTrackNo[ism][jrow][kcol]; + trpid = mtraPid[trno]; // added detno = 1; } if (deltaE > 0.) { - AddSDigit(trno,detno,ism,jrow,kcol,deltaE); + AddSDigit(trno,trpid,detno,ism,jrow,kcol,deltaE); } } } @@ -471,6 +491,7 @@ void AliPMDDigitizer::Hits2SDigits(Int_t ievt) } fPMDLoader->WriteSDigits("OVERWRITE"); ResetCellADC(); + delete [] mtraPid; } //____________________________________________________________________________ @@ -499,6 +520,18 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) AliDebug(1,Form("Event Number = %d",ievt)); Int_t nparticles = fRunLoader->GetHeader()->GetNtrack(); AliDebug(1,Form("Number of Particles = %d", nparticles)); + + // + // Ajay on 24th May 2009 + //No of primary + Int_t nprimary = fRunLoader->GetHeader()->GetNprimary(); + Int_t * mtraPid = new Int_t [nprimary]; + for(Int_t i = 0; i < nprimary; i++) + { + mtraPid[i] = -1; + } + // + fRunLoader->GetEvent(ievt); // ------------------------------------------------------- // // Pointer to specific detector hits. @@ -589,6 +622,8 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) trackpid=trackpidOld; trackno=tracknoOld; + mtraPid[mtrackno] = mtrackpid; // added by Ajay + //-----------------end of modification---------------- xPos = fPMDHit->X(); yPos = fPMDHit->Y(); @@ -673,6 +708,8 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) Float_t deltaE = 0.; Int_t detno = 0; Int_t trno = 1; + Int_t trpid = -99; + for (Int_t idet = 0; idet < 2; idet++) { for (Int_t ism = 0; ism < fgkTotUM; ism++) @@ -685,13 +722,15 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) { deltaE = fPRE[ism][jrow][kcol]; trno = fPRETrackNo[ism][jrow][kcol]; - detno = 0; + trpid = mtraPid[trno]; // added + detno = 0; } else if (idet == 1) { deltaE = fCPV[ism][jrow][kcol]; trno = fCPVTrackNo[ism][jrow][kcol]; - detno = 1; + trpid = mtraPid[trno]; // added + detno = 1; } if (deltaE > 0.) { @@ -720,7 +759,7 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) if (adc > 0.) { adc += (pedmean + 3.0*pedrms); - AddDigit(trno,detno,ism,jrow,kcol,adc); + AddDigit(trno,trpid,detno,ism,jrow,kcol,adc); } } } // column loop @@ -732,7 +771,8 @@ void AliPMDDigitizer::Hits2Digits(Int_t ievt) fPMDLoader->WriteDigits("OVERWRITE"); ResetCellADC(); - + + delete [] mtraPid; } //____________________________________________________________________________ @@ -766,7 +806,7 @@ void AliPMDDigitizer::SDigits2Digits(Int_t ievt) if (!fDigits) fDigits = new TClonesArray("AliPMDdigit", 1000); treeD->Branch("PMDDigit", &fDigits, bufsize); - Int_t trno, det, smn; + Int_t trno, trpid, det, smn; Int_t irow, icol; Float_t edep, adc; @@ -782,6 +822,7 @@ void AliPMDDigitizer::SDigits2Digits(Int_t ievt) { pmdsdigit = (AliPMDsdigit*)fSDigits->UncheckedAt(ient); trno = pmdsdigit->GetTrackNumber(); + trpid = pmdsdigit->GetTrackPid(); det = pmdsdigit->GetDetector(); smn = pmdsdigit->GetSMNumber(); irow = pmdsdigit->GetRow(); @@ -810,7 +851,7 @@ void AliPMDDigitizer::SDigits2Digits(Int_t ievt) if(adc > 0.) { adc += (pedmean + 3.0*pedrms); - AddDigit(trno,det,smn,irow,icol,adc); + AddDigit(trno,trpid,det,smn,irow,icol,adc); } } @@ -860,8 +901,9 @@ void AliPMDDigitizer::Exec(Option_t *option) Float_t adc; Float_t deltaE = 0.; - Int_t detno = 0; - Int_t trno = 1; + Int_t detno = 0; + Int_t trno = 1; + Int_t trpid = -99; for (Int_t idet = 0; idet < 2; idet++) { @@ -875,13 +917,15 @@ void AliPMDDigitizer::Exec(Option_t *option) { deltaE = fPRE[ism][jrow][kcol]; trno = fPRETrackNo[ism][jrow][kcol]; - detno = 0; + trpid = fPRETrackPid[ism][jrow][kcol]; + detno = 0; } else if (idet == 1) { deltaE = fCPV[ism][jrow][kcol]; trno = fCPVTrackNo[ism][jrow][kcol]; - detno = 1; + trpid = fCPVTrackPid[ism][jrow][kcol]; + detno = 1; } if (deltaE > 0.) { @@ -911,7 +955,7 @@ void AliPMDDigitizer::Exec(Option_t *option) if (adc > 0.) { adc += (pedmean + 3.0*pedrms); - AddDigit(trno,detno,ism,jrow,kcol,adc); + AddDigit(trno,trpid,detno,ism,jrow,kcol,adc); } } @@ -1139,7 +1183,7 @@ void AliPMDDigitizer::MergeSDigits(Int_t filenumber, Int_t troffset) if (!fSDigits) fSDigits = new TClonesArray("AliPMDsdigit", 1000); branch->SetAddress(&fSDigits); - Int_t itrackno, idet, ism; + Int_t itrackno, itrackpid, idet, ism; Int_t ixp, iyp; Float_t edep; Int_t nmodules = (Int_t) treeS->GetEntries(); @@ -1154,6 +1198,7 @@ void AliPMDDigitizer::MergeSDigits(Int_t filenumber, Int_t troffset) { pmdsdigit = (AliPMDsdigit*)fSDigits->UncheckedAt(ient); itrackno = pmdsdigit->GetTrackNumber(); + itrackpid = pmdsdigit->GetTrackPid(); idet = pmdsdigit->GetDetector(); ism = pmdsdigit->GetSMNumber(); ixp = pmdsdigit->GetRow(); @@ -1164,6 +1209,7 @@ void AliPMDDigitizer::MergeSDigits(Int_t filenumber, Int_t troffset) if (fPRE[ism][ixp][iyp] < edep) { fPRETrackNo[ism][ixp][iyp] = troffset + itrackno; + fPRETrackPid[ism][ixp][iyp] = itrackpid; } fPRE[ism][ixp][iyp] += edep; } @@ -1172,6 +1218,7 @@ void AliPMDDigitizer::MergeSDigits(Int_t filenumber, Int_t troffset) if (fCPV[ism][ixp][iyp] < edep) { fCPVTrackNo[ism][ixp][iyp] = troffset + itrackno; + fCPVTrackPid[ism][ixp][iyp] = itrackpid; } fCPV[ism][ixp][iyp] += edep; } @@ -1412,25 +1459,27 @@ void AliPMDDigitizer::MeV2ADC(Float_t mev, Float_t & adc) const } } //____________________________________________________________________________ -void AliPMDDigitizer::AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, - Int_t irow, Int_t icol, Float_t adc) +void AliPMDDigitizer::AddSDigit(Int_t trnumber, Int_t trpid, Int_t det, + Int_t smnumber, Int_t irow, Int_t icol, + Float_t adc) { // Add SDigit // if (!fSDigits) fSDigits = new TClonesArray("AliPMDsdigit", 1000); TClonesArray &lsdigits = *fSDigits; - new(lsdigits[fNsdigit++]) AliPMDsdigit(trnumber,det,smnumber,irow,icol,adc); + new(lsdigits[fNsdigit++]) AliPMDsdigit(trnumber,trpid,det,smnumber,irow,icol,adc); } //____________________________________________________________________________ -void AliPMDDigitizer::AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, - Int_t irow, Int_t icol, Float_t adc) +void AliPMDDigitizer::AddDigit(Int_t trnumber, Int_t trpid, Int_t det, + Int_t smnumber, Int_t irow, Int_t icol, + Float_t adc) { // Add Digit // if (!fDigits) fDigits = new TClonesArray("AliPMDdigit", 1000); TClonesArray &ldigits = *fDigits; - new(ldigits[fNdigit++]) AliPMDdigit(trnumber,det,smnumber,irow,icol,adc); + new(ldigits[fNdigit++]) AliPMDdigit(trnumber,trpid, det,smnumber,irow,icol,adc); } //____________________________________________________________________________ @@ -1489,10 +1538,12 @@ void AliPMDDigitizer::ResetCellADC() { for (Int_t k = 0; k < fgkCol; k++) { - fCPV[i][j][k] = 0.; - fPRE[i][j][k] = 0.; - fCPVTrackNo[i][j][k] = 0; - fPRETrackNo[i][j][k] = 0; + fCPV[i][j][k] = 0.; + fPRE[i][j][k] = 0.; + fCPVTrackNo[i][j][k] = 0; + fPRETrackNo[i][j][k] = 0; + fCPVTrackPid[i][j][k] = -1; + fPRETrackPid[i][j][k] = -1; } } } diff --git a/PMD/AliPMDDigitizer.h b/PMD/AliPMDDigitizer.h index ba3cbafb7b6..40d128f783e 100644 --- a/PMD/AliPMDDigitizer.h +++ b/PMD/AliPMDDigitizer.h @@ -58,9 +58,9 @@ class AliPMDDigitizer:public AliDigitizer void TrackAssignment2CPVCell(); void TrackAssignment2Cell(); void MeV2ADC(Float_t mev, Float_t & adc) const; - void AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, + void AddSDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, Int_t irow, Int_t icol, Float_t adc); - void AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, + void AddDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, Int_t irow, Int_t icol, Float_t adc); void SetZPosition(Float_t zpos); Float_t GetZPosition() const; @@ -113,8 +113,13 @@ class AliPMDDigitizer:public AliDigitizer Int_t fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing // track number + Int_t fCPVTrackPid[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing + // track number + Int_t fPRETrackPid[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing + // track number + - ClassDef(AliPMDDigitizer,8) // To digitize PMD Hits + ClassDef(AliPMDDigitizer,9) // To digitize PMD Hits }; #endif diff --git a/PMD/AliPMDRawToSDigits.cxx b/PMD/AliPMDRawToSDigits.cxx index 8e5bdf1234d..feed1eb355e 100644 --- a/PMD/AliPMDRawToSDigits.cxx +++ b/PMD/AliPMDRawToSDigits.cxx @@ -196,15 +196,16 @@ void AliPMDRawToSDigits::Raw2SDigits(AliRunLoader *runLoader, AliRawReader *rawR for (Int_t icol = 0; icol < kCol; icol++) { - Int_t trno = -99999; - Int_t sig1 = precpvADC[indexsmn][irow][icol]; + Int_t trno = -99999; // when extracted from raw data + Int_t trpid = -99999; // when extracted from raw data + Int_t sig1 = precpvADC[indexsmn][irow][icol]; // plug in a function to convert to adc to MeV Float_t edep = 0.; if (sig1 > 0) { AdcToMeV(sig1,edep); - AddSDigit(trno,idet,ismn,irow,icol,edep); + AddSDigit(trno,trpid,idet,ismn,irow,icol,edep); } } // row } // col @@ -332,13 +333,14 @@ void AliPMDRawToSDigits::Raw2Digits(AliRunLoader *runLoader, AliRawReader *rawRe { for (Int_t icol = 0; icol < kCol; icol++) { - Int_t trno = -99999; - Int_t sig1 = precpvADC[indexsmn][irow][icol]; + Int_t trno = -99999; // when extracted from raw + Int_t trpid = -99999; // when extracted from raw + Int_t sig1 = precpvADC[indexsmn][irow][icol]; // plug in a function to convert to adc to MeV if (sig1 > 0) { - AddDigit(trno,idet,ismn,irow,icol,sig1); + AddDigit(trno,trpid,idet,ismn,irow,icol,sig1); } } // row } // col @@ -382,25 +384,27 @@ void AliPMDRawToSDigits::AdcToMeV(Int_t adc, Float_t &edep) // ------------------------------------------------------------------------- // -void AliPMDRawToSDigits::AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, +void AliPMDRawToSDigits::AddSDigit(Int_t trnumber, Int_t trpid, Int_t det, + Int_t smnumber, Int_t irow, Int_t icol, Float_t adc) { // Add SDigit // if (!fSDigits) fSDigits = new TClonesArray("AliPMDsdigit", 1000); TClonesArray &lsdigits = *fSDigits; - new(lsdigits[fNsdigit++]) AliPMDsdigit(trnumber,det,smnumber,irow,icol,adc); + new(lsdigits[fNsdigit++]) AliPMDsdigit(trnumber,trpid,det,smnumber,irow,icol,adc); } // ------------------------------------------------------------------------- // -void AliPMDRawToSDigits::AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, +void AliPMDRawToSDigits::AddDigit(Int_t trnumber, Int_t trpid, Int_t det, + Int_t smnumber, Int_t irow, Int_t icol, Float_t adc) { // Add Digit // if (!fDigits) fDigits = new TClonesArray("AliPMDdigit", 1000); TClonesArray &ldigits = *fDigits; - new(ldigits[fNdigit++]) AliPMDdigit(trnumber,det,smnumber,irow,icol,adc); + new(ldigits[fNdigit++]) AliPMDdigit(trnumber,trpid,det,smnumber,irow,icol,adc); } // ------------------------------------------------------------------------- // diff --git a/PMD/AliPMDRawToSDigits.h b/PMD/AliPMDRawToSDigits.h index 6fb4cd93ceb..94f70eae62d 100644 --- a/PMD/AliPMDRawToSDigits.h +++ b/PMD/AliPMDRawToSDigits.h @@ -31,9 +31,9 @@ class AliPMDRawToSDigits : public TObject void Raw2SDigits(AliRunLoader *runLoader, AliRawReader *rawReader); void Raw2Digits(AliRunLoader *runLoader, AliRawReader *rawReader); void AdcToMeV(Int_t adc, Float_t &edep); - void AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, + void AddSDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, Int_t irow, Int_t icol, Float_t adc); - void AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, + void AddDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, Int_t irow, Int_t icol, Float_t adc); void ResetSDigit(); @@ -47,7 +47,7 @@ class AliPMDRawToSDigits : public TObject Int_t fNsdigit; // Digits counter Int_t fNdigit; // Digits counter - ClassDef(AliPMDRawToSDigits,0) // Coverts Raw to SDigits + ClassDef(AliPMDRawToSDigits,1) // Coverts Raw to SDigits }; #endif diff --git a/PMD/AliPMDcluster.cxx b/PMD/AliPMDcluster.cxx index 90fc096dbf2..decf8b6c8c2 100644 --- a/PMD/AliPMDcluster.cxx +++ b/PMD/AliPMDcluster.cxx @@ -39,12 +39,15 @@ AliPMDcluster::AliPMDcluster(): { fClusCellDataX[i] = 0; fClusCellDataY[i] = 0; + fClusCellTrack[i] = -1; + fClusCellPid[i] = -1; } } // --------------------------------------------------------------------- // AliPMDcluster::AliPMDcluster(Int_t idet, Int_t ismn, Float_t *clusdata, - Int_t *celldataX, Int_t *celldataY): + Int_t *celldataX, Int_t *celldataY, + Int_t *celltrack, Int_t *cellpid): fDet(idet), fSMN(ismn) { @@ -57,6 +60,8 @@ AliPMDcluster::AliPMDcluster(Int_t idet, Int_t ismn, Float_t *clusdata, { fClusCellDataX[i] = celldataX[i]; fClusCellDataY[i] = celldataY[i]; + fClusCellTrack[i] = celltrack[i]; + fClusCellPid[i] = cellpid[i]; } } @@ -83,6 +88,8 @@ AliPMDcluster::AliPMDcluster(const AliPMDcluster &pmdcluster): { this->fClusCellDataX[i] = pmdcluster.fClusCellDataX[i]; this->fClusCellDataY[i] = pmdcluster.fClusCellDataY[i]; + this->fClusCellTrack[i] = pmdcluster.fClusCellTrack[i]; + this->fClusCellPid[i] = pmdcluster.fClusCellPid[i]; } } // --------------------------------------------------------------------- // @@ -102,6 +109,8 @@ AliPMDcluster & AliPMDcluster::operator=(const AliPMDcluster &pmdcluster) { this->fClusCellDataX[i] = pmdcluster.fClusCellDataX[i]; this->fClusCellDataY[i] = pmdcluster.fClusCellDataY[i]; + this->fClusCellTrack[i] = pmdcluster.fClusCellTrack[i]; + this->fClusCellPid[i] = pmdcluster.fClusCellPid[i]; } } return *this; @@ -164,3 +173,13 @@ Int_t AliPMDcluster::GetClusCellY(Int_t i) const return fClusCellDataY[i]; } // --------------------------------------------------------------------- // +Int_t AliPMDcluster::GetClusCellTrack(Int_t i) const +{ + return fClusCellTrack[i]; +} +// --------------------------------------------------------------------- // +Int_t AliPMDcluster::GetClusCellPid(Int_t i) const +{ + return fClusCellPid[i]; +} +// --------------------------------------------------------------------- // diff --git a/PMD/AliPMDcluster.h b/PMD/AliPMDcluster.h index 59a5da6c028..763b81ae056 100644 --- a/PMD/AliPMDcluster.h +++ b/PMD/AliPMDcluster.h @@ -20,7 +20,8 @@ class AliPMDcluster : public TObject public: AliPMDcluster(); AliPMDcluster(Int_t idet, Int_t ismn, Float_t *clusdata, - Int_t *celldataX, Int_t *celldataY); + Int_t *celldataX, Int_t *celldataY, + Int_t *celltrack, Int_t *cellpid); AliPMDcluster(AliPMDcluster *pmdcluster); AliPMDcluster (const AliPMDcluster &pmdcluster); // copy constructor AliPMDcluster &operator=(const AliPMDcluster &pmdcluster); // assignment op @@ -37,6 +38,8 @@ class AliPMDcluster : public TObject Float_t GetClusSigmaY() const; Int_t GetClusCellX(Int_t i) const; Int_t GetClusCellY(Int_t i) const; + Int_t GetClusCellTrack(Int_t i) const; + Int_t GetClusCellPid(Int_t i) const; protected: @@ -44,7 +47,11 @@ class AliPMDcluster : public TObject Int_t fSMN; // Serial Module No. Int_t fClusCellDataX[19]; // Array containing cell X Int_t fClusCellDataY[19]; // Array containing cell Y + Int_t fClusCellTrack[19]; // Array containing cell track no + Int_t fClusCellPid[19]; // Array containing cell pid + Float_t fClusData[6]; // Array containing cluster information + /* fDet : Det (0:PRE, 1:CPV), fSMN : SerialModuleNo fClusData[0] : Cluster x , fClusData[1] : Cluster y @@ -52,7 +59,7 @@ class AliPMDcluster : public TObject fClusData[4] : Cluster SigmaX , fClusData[5] : Cluster SigmaY */ - ClassDef(AliPMDcluster,4) // Keep Cluster information + ClassDef(AliPMDcluster,5) // Keep Cluster information }; #endif diff --git a/PMD/AliPMDdigit.cxx b/PMD/AliPMDdigit.cxx index 8dab143b531..38f2682f8c3 100644 --- a/PMD/AliPMDdigit.cxx +++ b/PMD/AliPMDdigit.cxx @@ -28,6 +28,7 @@ ClassImp(AliPMDdigit) AliPMDdigit::AliPMDdigit(): fTrNumber(0), + fTrPid(0), fDet(0), fSMNumber(0), fRow(0), @@ -37,9 +38,11 @@ AliPMDdigit::AliPMDdigit(): // Default Constructor } -AliPMDdigit::AliPMDdigit(Int_t trnumber, Int_t det, Int_t smnumber, +AliPMDdigit::AliPMDdigit(Int_t trnumber, Int_t trpid, Int_t det, + Int_t smnumber, Int_t irow, Int_t icol, Float_t adc): fTrNumber(trnumber), + fTrPid(trpid), fDet(det), fSMNumber(smnumber), fRow(irow), @@ -50,6 +53,7 @@ AliPMDdigit::AliPMDdigit(Int_t trnumber, Int_t det, Int_t smnumber, } AliPMDdigit::AliPMDdigit(AliPMDdigit *pmddigit): fTrNumber(0), + fTrPid(0), fDet(0), fSMNumber(0), fRow(0), @@ -62,6 +66,7 @@ AliPMDdigit::AliPMDdigit(AliPMDdigit *pmddigit): AliPMDdigit::AliPMDdigit(const AliPMDdigit& pmddigit): TObject(pmddigit), fTrNumber(pmddigit.fTrNumber), + fTrPid(pmddigit.fTrPid), fDet(pmddigit.fDet), fSMNumber(pmddigit.fSMNumber), fRow(pmddigit.fRow), @@ -75,6 +80,7 @@ AliPMDdigit & AliPMDdigit::operator=(const AliPMDdigit& pmddigit) { if(this != &pmddigit) { fTrNumber = pmddigit.fTrNumber; + fTrPid = pmddigit.fTrPid; fDet = pmddigit.fDet; fSMNumber = pmddigit.fSMNumber; fRow = pmddigit.fRow; @@ -91,6 +97,10 @@ Int_t AliPMDdigit::GetTrackNumber() const { return fTrNumber; } +Int_t AliPMDdigit::GetTrackPid() const +{ + return fTrPid; +} Int_t AliPMDdigit::GetDetector() const { return fDet; diff --git a/PMD/AliPMDdigit.h b/PMD/AliPMDdigit.h index d12e9ad879d..ac1b99ed1d6 100644 --- a/PMD/AliPMDdigit.h +++ b/PMD/AliPMDdigit.h @@ -17,7 +17,7 @@ class AliPMDdigit : public TObject { public: AliPMDdigit(); - AliPMDdigit(Int_t trnumber, Int_t det, Int_t smnumber, + AliPMDdigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, Int_t irow, Int_t icol, Float_t adc); AliPMDdigit(AliPMDdigit *pmddigit); AliPMDdigit (const AliPMDdigit &pmddigit); // copy constructor @@ -26,6 +26,7 @@ class AliPMDdigit : public TObject virtual ~AliPMDdigit(); Int_t GetTrackNumber() const; + Int_t GetTrackPid() const; Int_t GetDetector() const; Int_t GetSMNumber() const; Int_t GetRow() const; @@ -34,13 +35,14 @@ class AliPMDdigit : public TObject protected: Int_t fTrNumber; // Parent Track number + Int_t fTrPid; // Parent Track pid Int_t fDet; // Detecor Number (0:PRE, 1:CPV) Int_t fSMNumber; // Serial Module Number Int_t fRow; // Cell Row Number (0-47) Int_t fColumn; // Cell Column Number (0-95) Float_t fADC; // Energy deposition(ADC) in a hexagonal cell - ClassDef(AliPMDdigit,4) // Digits object for Detector set:PMD + ClassDef(AliPMDdigit,5) // Digits object for Detector set:PMD }; #endif diff --git a/PMD/AliPMDisocell.cxx b/PMD/AliPMDisocell.cxx new file mode 100644 index 00000000000..bff86f9126a --- /dev/null +++ b/PMD/AliPMDisocell.cxx @@ -0,0 +1,110 @@ +/*************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +#include "Riostream.h" +#include "Rtypes.h" +#include "AliPMDisocell.h" + +ClassImp(AliPMDisocell) + +AliPMDisocell::AliPMDisocell(): + fDet(-1), + fSmn(-1), + fRow(-1), + fCol(-1), + fAdc(0.) +{ + // Default constructor +} +// --------------------------------------------------------------------- // +AliPMDisocell::AliPMDisocell(Int_t idet, Int_t ismn, Int_t irow, Int_t icol, Float_t cadc): + fDet(idet), + fSmn(ismn), + fRow(irow), + fCol(icol), + fAdc(cadc) +{ + // Constructor +} +AliPMDisocell::AliPMDisocell(AliPMDisocell *pmdisocell): + fDet(-1), + fSmn(-1), + fRow(-1), + fCol(-1), + fAdc(0.) +{ + *this = *pmdisocell; +} + +// --------------------------------------------------------------------- // +// --------------------------------------------------------------------- // +AliPMDisocell::AliPMDisocell(const AliPMDisocell &pmdisocell): + TObject(pmdisocell), + fDet(pmdisocell.fDet), + fSmn(pmdisocell.fSmn), + fRow(pmdisocell.fRow), + fCol(pmdisocell.fCol), + fAdc(pmdisocell.fAdc) +{ + //Copy Constructor +} +// --------------------------------------------------------------------- // + +AliPMDisocell & AliPMDisocell::operator=(const AliPMDisocell &pmdisocell) +{ + // Assignment operator + if(this != &pmdisocell) + { + fDet = pmdisocell.fDet; + fSmn = pmdisocell.fSmn; + fRow = pmdisocell.fRow; + fCol = pmdisocell.fCol; + fAdc = pmdisocell.fAdc; + + } + return *this; +} +// --------------------------------------------------------------------- // + +AliPMDisocell::~AliPMDisocell() +{ + // Destructor +} +// --------------------------------------------------------------------- // +Int_t AliPMDisocell::GetDetector() const +{ + return fDet; +} +// --------------------------------------------------------------------- // +Int_t AliPMDisocell::GetSmn() const +{ + return fSmn; +} +// --------------------------------------------------------------------- // +Int_t AliPMDisocell::GetRow() const +{ + return fRow; +} +// --------------------------------------------------------------------- // +Int_t AliPMDisocell::GetCol() const +{ + return fCol; +} +// --------------------------------------------------------------------- // +Float_t AliPMDisocell::GetADC() const +{ + return fAdc; +} +// --------------------------------------------------------------------- // diff --git a/PMD/AliPMDisocell.h b/PMD/AliPMDisocell.h new file mode 100644 index 00000000000..957e333157a --- /dev/null +++ b/PMD/AliPMDisocell.h @@ -0,0 +1,48 @@ +#ifndef ALIPMDISOCELL_H +#define ALIPMDISOCELL_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ +//-----------------------------------------------------// +// // +// Date : May 22, 2009 // +// // +// Store isolated single cell information // +// to be used in offline calibartion // +// // +//-----------------------------------------------------// +// Author - B.K. Nandi +// +//#include "Rtypes.h" +#include "TObject.h" + +class TClonesArray; + +class AliPMDisocell : public TObject +{ + public: + AliPMDisocell(); + AliPMDisocell( Int_t idet, Int_t ismn, Int_t irow, Int_t icol, Float_t cadc); + AliPMDisocell(AliPMDisocell *pmdisocell); + AliPMDisocell (const AliPMDisocell &pmdisocell); //copy constructor + AliPMDisocell &operator=(const AliPMDisocell &pmdisocell); //assignment op + + virtual ~AliPMDisocell(); + + Int_t GetDetector() const; + Int_t GetSmn() const; + Int_t GetRow() const; + Int_t GetCol() const; + Float_t GetADC() const; + + + protected: + + Int_t fDet; // Pre = 0, CPV =1 plane + Int_t fSmn; + Int_t fRow; + Int_t fCol; + Float_t fAdc; + + ClassDef(AliPMDisocell,0) // Keep isolated single cell information +}; +#endif diff --git a/PMD/AliPMDrechit.cxx b/PMD/AliPMDrechit.cxx index 33386ef7829..cf95757adfb 100644 --- a/PMD/AliPMDrechit.cxx +++ b/PMD/AliPMDrechit.cxx @@ -28,21 +28,27 @@ ClassImp(AliPMDrechit) AliPMDrechit::AliPMDrechit(): fXcell(0), - fYcell(0) + fYcell(0), + fTrcell(0), + fPidcell(0) { // Standard constructor } -AliPMDrechit::AliPMDrechit(Int_t cellx, Int_t celly): +AliPMDrechit::AliPMDrechit(Int_t cellx, Int_t celly, Int_t celltr, Int_t cellpid): fXcell(cellx), - fYcell(celly) + fYcell(celly), + fTrcell(celltr), + fPidcell(cellpid) { // Constructor } AliPMDrechit::AliPMDrechit(AliPMDrechit *pmdrechit): fXcell(0), - fYcell(0) + fYcell(0), + fTrcell(0), + fPidcell(0) { *this = *pmdrechit; } @@ -50,7 +56,10 @@ AliPMDrechit::AliPMDrechit(AliPMDrechit *pmdrechit): AliPMDrechit::AliPMDrechit(const AliPMDrechit& source): TObject(source), fXcell(source.fXcell), - fYcell(source.fYcell) + fYcell(source.fYcell), + fTrcell(source.fTrcell), + fPidcell(source.fPidcell) + { //Copy Constructor @@ -63,6 +72,8 @@ AliPMDrechit& AliPMDrechit::operator=(const AliPMDrechit& source) { fXcell = source.fXcell; fYcell = source.fYcell; + fTrcell = source.fTrcell; + fPidcell = source.fPidcell; } return *this; } @@ -79,3 +90,11 @@ Int_t AliPMDrechit::GetCellY() const { return fYcell; } +Int_t AliPMDrechit::GetCellTrack() const +{ + return fTrcell; +} +Int_t AliPMDrechit::GetCellPid() const +{ + return fPidcell; +} diff --git a/PMD/AliPMDrechit.h b/PMD/AliPMDrechit.h index 266b8f6be54..2eac763a5b4 100644 --- a/PMD/AliPMDrechit.h +++ b/PMD/AliPMDrechit.h @@ -18,7 +18,7 @@ class AliPMDrechit : public TObject { public: AliPMDrechit(); - AliPMDrechit(Int_t cellx, Int_t celly); + AliPMDrechit(Int_t cellx, Int_t celly, Int_t celltr, Int_t cellpid); AliPMDrechit(AliPMDrechit *pmdrechit); AliPMDrechit (const AliPMDrechit &alipmdrechit); // copy constructor AliPMDrechit &operator=(const AliPMDrechit &alipmdrechit); // assignment op @@ -27,12 +27,16 @@ class AliPMDrechit : public TObject Int_t GetCellX() const; Int_t GetCellY() const; + Int_t GetCellTrack() const; + Int_t GetCellPid() const; protected: Int_t fXcell; // x-position of the cell Int_t fYcell; // y-position of the cell + Int_t fTrcell; // track no of the cell + Int_t fPidcell; // track pid of the cell - ClassDef(AliPMDrechit,2) // To keep cell hit information + ClassDef(AliPMDrechit,3) // To keep cell hit information }; #endif diff --git a/PMD/AliPMDsdigit.cxx b/PMD/AliPMDsdigit.cxx index c0833aeee82..fda342989e9 100644 --- a/PMD/AliPMDsdigit.cxx +++ b/PMD/AliPMDsdigit.cxx @@ -27,6 +27,7 @@ ClassImp(AliPMDsdigit) AliPMDsdigit::AliPMDsdigit(): fTrNumber(0), + fTrPid(0), fDet(0), fSMN(0), fRow(0), @@ -36,9 +37,10 @@ AliPMDsdigit::AliPMDsdigit(): // Default Constructor } -AliPMDsdigit::AliPMDsdigit(Int_t trnumber, Int_t det, Int_t smn, +AliPMDsdigit::AliPMDsdigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smn, Int_t irow, Int_t icol, Float_t edep): fTrNumber(trnumber), + fTrPid(trpid), fDet(det), fSMN(smn), fRow(irow), @@ -50,6 +52,7 @@ AliPMDsdigit::AliPMDsdigit(Int_t trnumber, Int_t det, Int_t smn, AliPMDsdigit::AliPMDsdigit(AliPMDsdigit *pmdsdigit): fTrNumber(0), + fTrPid(0), fDet(0), fSMN(0), fRow(0), @@ -62,6 +65,7 @@ AliPMDsdigit::AliPMDsdigit(AliPMDsdigit *pmdsdigit): AliPMDsdigit::AliPMDsdigit(const AliPMDsdigit& pmdsdigit): TObject(pmdsdigit), fTrNumber(pmdsdigit.fTrNumber), + fTrPid(pmdsdigit.fTrPid), fDet(pmdsdigit.fDet), fSMN(pmdsdigit.fSMN), fRow(pmdsdigit.fRow), @@ -76,6 +80,7 @@ AliPMDsdigit & AliPMDsdigit::operator=(const AliPMDsdigit& pmdsdigit) if(this != &pmdsdigit) { fTrNumber = pmdsdigit.fTrNumber; + fTrPid = pmdsdigit.fTrPid; fDet = pmdsdigit.fDet; fSMN = pmdsdigit.fSMN; fRow = pmdsdigit.fRow; @@ -94,6 +99,10 @@ Int_t AliPMDsdigit::GetTrackNumber() const { return fTrNumber; } +Int_t AliPMDsdigit::GetTrackPid() const +{ + return fTrPid; +} Int_t AliPMDsdigit::GetDetector() const { return fDet; diff --git a/PMD/AliPMDsdigit.h b/PMD/AliPMDsdigit.h index 7ca69988e70..8b1b27100af 100644 --- a/PMD/AliPMDsdigit.h +++ b/PMD/AliPMDsdigit.h @@ -19,7 +19,7 @@ class AliPMDsdigit : public TObject public: AliPMDsdigit(); - AliPMDsdigit(Int_t trnumber, Int_t det, Int_t smn, + AliPMDsdigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smn, Int_t irow, Int_t icol, Float_t edep); AliPMDsdigit(AliPMDsdigit *pmdsdigit); AliPMDsdigit (const AliPMDsdigit &pmdsdigit); // copy constructor @@ -28,6 +28,7 @@ class AliPMDsdigit : public TObject virtual ~AliPMDsdigit(); Int_t GetTrackNumber() const; + Int_t GetTrackPid() const; Int_t GetDetector() const; Int_t GetSMNumber() const; Int_t GetRow() const; @@ -37,13 +38,14 @@ class AliPMDsdigit : public TObject protected: Int_t fTrNumber; // Parent Track Number + Int_t fTrPid; // Parent Track pid Int_t fDet; // Detector Number (0:PRE, 1:CPV) Int_t fSMN; // Serial Module Number Int_t fRow; // Cell Row Number (0-47) Int_t fColumn; // Cell Column Number (0-95) Float_t fEdep; // Energy deposition in a hexagonal cell - ClassDef(AliPMDsdigit,4) // SDigits object for Detector set:PMD + ClassDef(AliPMDsdigit,5) // SDigits object for Detector set:PMD }; #endif diff --git a/PMD/AliPMDtracker.cxx b/PMD/AliPMDtracker.cxx index ca7c6ce1004..1c04d3ee30c 100644 --- a/PMD/AliPMDtracker.cxx +++ b/PMD/AliPMDtracker.cxx @@ -165,9 +165,12 @@ void AliPMDtracker::Clusters2Tracks(AliESDEvent *event) clusdata[3] = fPMDrecpoint->GetClusCells(); clusdata[4] = fPMDrecpoint->GetClusSigmaX(); clusdata[5] = fPMDrecpoint->GetClusSigmaY(); - - fPMDclin = new AliPMDrecpoint1(idet,ismn,clusdata); - fPMDcontin->Add(fPMDclin); + + if (clusdata[4] != -99. && clusdata[5] != -99.) + { + fPMDclin = new AliPMDrecpoint1(idet,ismn,clusdata); + fPMDcontin->Add(fPMDclin); + } } } diff --git a/PMD/CMake_libPMDrec.txt b/PMD/CMake_libPMDrec.txt index 614e364d43f..815fd20bffc 100644 --- a/PMD/CMake_libPMDrec.txt +++ b/PMD/CMake_libPMDrec.txt @@ -1,7 +1,7 @@ # -*- mode: cmake -*- set(SRCS -AliPMDRecPoint.cxx AliPMDUtility.cxx AliPMDrecpoint1.cxx AliPMDrechit.cxx AliPMDcluster.cxx AliPMDClusteringV1.cxx AliPMDClusteringV2.cxx AliPMDclupid.cxx AliPMDEmpDiscriminator.cxx AliPMDClusterFinder.cxx AliPMDtracker.cxx AliPMDReconstructor.cxx AliPMDcludata.cxx AliPMDCalibPedestal.cxx AliPMDCalibGain.cxx AliPMDQADataMakerRec.cxx +AliPMDRecPoint.cxx AliPMDUtility.cxx AliPMDrecpoint1.cxx AliPMDrechit.cxx AliPMDcluster.cxx AliPMDClusteringV1.cxx AliPMDClusteringV2.cxx AliPMDclupid.cxx AliPMDEmpDiscriminator.cxx AliPMDClusterFinder.cxx AliPMDtracker.cxx AliPMDReconstructor.cxx AliPMDcludata.cxx AliPMDCalibPedestal.cxx AliPMDCalibGain.cxx AliPMDQADataMakerRec.cxx AliPMDisocell.cxx AliPMDiso.cxx ) # fill list of header files from list of source files diff --git a/PMD/PMDrecLinkDef.h b/PMD/PMDrecLinkDef.h index 59c407e2690..e83e9b5c9f6 100644 --- a/PMD/PMDrecLinkDef.h +++ b/PMD/PMDrecLinkDef.h @@ -26,4 +26,5 @@ #pragma link C++ class AliPMDCalibPedestal+; #pragma link C++ class AliPMDCalibGain+; #pragma link C++ class AliPMDQADataMakerRec+; +#pragma link C++ class AliPMDisocell+; #endif diff --git a/PMD/libPMDrec.pkg b/PMD/libPMDrec.pkg index 97496b77773..268fb6daa48 100644 --- a/PMD/libPMDrec.pkg +++ b/PMD/libPMDrec.pkg @@ -1,7 +1,7 @@ #-*- Mode: Makefile -*- # $Id$ -SRCS:= AliPMDRecPoint.cxx AliPMDUtility.cxx AliPMDrecpoint1.cxx AliPMDrechit.cxx AliPMDcluster.cxx AliPMDClusteringV1.cxx AliPMDClusteringV2.cxx AliPMDclupid.cxx AliPMDEmpDiscriminator.cxx AliPMDClusterFinder.cxx AliPMDtracker.cxx AliPMDReconstructor.cxx AliPMDcludata.cxx AliPMDCalibPedestal.cxx AliPMDCalibGain.cxx AliPMDQADataMakerRec.cxx +SRCS:= AliPMDRecPoint.cxx AliPMDUtility.cxx AliPMDrecpoint1.cxx AliPMDrechit.cxx AliPMDcluster.cxx AliPMDClusteringV1.cxx AliPMDClusteringV2.cxx AliPMDclupid.cxx AliPMDEmpDiscriminator.cxx AliPMDClusterFinder.cxx AliPMDtracker.cxx AliPMDReconstructor.cxx AliPMDcludata.cxx AliPMDCalibPedestal.cxx AliPMDCalibGain.cxx AliPMDQADataMakerRec.cxx AliPMDisocell.cxx HDRS:= $(SRCS:.cxx=.h) AliPMDClustering.h AliPMDDiscriminator.h AliPMDcludata.h -- 2.39.3