]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Introduction of AliITSRecPointU. The cluster finder and the tracker have been chang...
authoramastros <amastros@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 7 Feb 2011 11:46:44 +0000 (11:46 +0000)
committeramastros <amastros@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 7 Feb 2011 11:46:44 +0000 (11:46 +0000)
- AliITSupgrade.h returns a version (same as v11Hybrid) to comply with the recent ITS code removal/cleaning
- Config.C uses by default the upgrade constructor which resembles the ITS (material budget / resolution)

ITS/CMakelibITSUpgradeBase.pkg
ITS/ITSUpgradeBaseLinkDef.h
ITS/UPGRADE/AliITSRecPointU.cxx [new file with mode: 0644]
ITS/UPGRADE/AliITSRecPointU.h [new file with mode: 0644]
ITS/UPGRADE/AliITSUpgradeClusterFinder.cxx
ITS/UPGRADE/AliITStrackerUpgrade.cxx
ITS/UPGRADE/AliITSupgrade.h
ITS/UPGRADE/Config.C

index 0ce92b619ce2d1e7a5473f284b95ea67f1aaea9e..1cd1e0f33ac8014ac1e0b1b8f735034d0b7c9daf 100644 (file)
@@ -25,7 +25,7 @@
 # SHLIBS - Shared Libraries and objects for linking (Executables only)           #
 #--------------------------------------------------------------------------------#
 
-set ( SRCS     UPGRADE/AliITSDigitUpgrade.cxx UPGRADE/AliITSsegmentationUpgrade.cxx)
+set ( SRCS     UPGRADE/AliITSDigitUpgrade.cxx UPGRADE/AliITSsegmentationUpgrade.cxx UPGRADE/AliITSRecPointU.cxx)
 
 string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" )
 
index 8298551a721ace6ee38b60ff7b7e2a8dba7c4377..12b3eb26b42b944872b40ade3b99ba19d300b87f 100644 (file)
@@ -11,4 +11,5 @@
 // ITS upgrade classes 
 #pragma link C++ class  AliITSDigitUpgrade+;
 #pragma link C++ class  AliITSsegmentationUpgrade+;
+#pragma link C++ class  AliITSRecPointU+;
 #endif
diff --git a/ITS/UPGRADE/AliITSRecPointU.cxx b/ITS/UPGRADE/AliITSRecPointU.cxx
new file mode 100644 (file)
index 0000000..c1d8580
--- /dev/null
@@ -0,0 +1,51 @@
+/**************************************************************************
+ * 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.                  *
+ **************************************************************************/
+
+
+/////////////////////////////////////////////////////////////////////////////////
+// This class sets the local coordinates via a specific setter. Needed because //
+// the AliGeomManager class can not be used for the upgrade code at this stage //
+/////////////////////////////////////////////////////////////////////////////////
+
+#include <AliITSRecPointU.h>
+
+//_____________________________________________________________
+AliITSRecPointU::AliITSRecPointU():
+    AliITSRecPoint()
+{
+ //
+ // Default constructor
+ // 
+}
+//_____________________________________________________________
+AliITSRecPointU::AliITSRecPointU(const AliITSRecPointU& pt):
+    AliITSRecPoint(pt)
+{
+  //
+  // Copy constructor
+  //
+}
+//______________________________________________________________________
+AliITSRecPointU& AliITSRecPointU::operator=(const AliITSRecPointU& source)
+{
+  //
+  // Assignment operator (as in AliITSRecPoint)
+  //
+
+  this->~AliITSRecPointU();
+  new(this) AliITSRecPointU(source);
+  return *this;
+
+}
diff --git a/ITS/UPGRADE/AliITSRecPointU.h b/ITS/UPGRADE/AliITSRecPointU.h
new file mode 100644 (file)
index 0000000..7438cdd
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef ALIITSRECPOINTU_H
+#define ALIITSRECPOINTU_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+
+/////////////////////////////////////////////////////////////////
+//  Class to set the local coordinates in ITS Upgrade recpoint //
+/////////////////////////////////////////////////////////////////
+
+#include <AliITSRecPoint.h>
+
+
+class AliITSRecPointU : public AliITSRecPoint {
+
+public :
+  AliITSRecPointU();
+  virtual ~AliITSRecPointU() {}; // distructor
+  AliITSRecPointU(const AliITSRecPointU& pt);
+  AliITSRecPointU& operator=(const AliITSRecPointU &source);
+
+  void SetLocalCoord(Float_t x, Float_t z) {fXloc=x; fZloc=z;}
+
+  ClassDef(AliITSRecPointU,1)  // AliITSRecPointU class
+
+};
+#endif
index 39901c82551c399f827246cc2e118a15ec2337fe..31729d9801862e6c1f08041238760f4d57e46ea3 100644 (file)
@@ -24,7 +24,7 @@
 
 #include "AliITSUpgradeClusterFinder.h"
 #include "AliITSsegmentationUpgrade.h"
-#include "AliITSRecPoint.h"
+#include "AliITSRecPointU.h"
 #include "AliITSDigitUpgrade.h"
 #include "AliITSRawStreamSPD.h"
 #include "AliLog.h"
@@ -56,7 +56,8 @@ AliITSUpgradeClusterFinder::AliITSUpgradeClusterFinder() :
   //
   
   fChargeArray = new TObjArray();
-  fRecPoints = new TClonesArray("AliITSRecPoint",3000);
+  fChargeArray->SetOwner(kTRUE);
+  fRecPoints = new TClonesArray("AliITSRecPointU",3000);
   fTmpLabel[0]=-5;
   fTmpLabel[1]=-5;
   fTmpLabel[2]=-5;
@@ -240,6 +241,7 @@ void AliITSUpgradeClusterFinder::NewModule() {
   
   fNhitsLeft=0;
   memset(fHits,0,999*999*sizeof(Bool_t));
+  fChargeArray->Clear();
 }
 //___________________________________________________________________________________
 Int_t AliITSUpgradeClusterFinder::DoModuleClustering(Int_t Layer, UShort_t charge) {
@@ -769,7 +771,7 @@ void AliITSUpgradeClusterFinder::MakeRecPointBranch(TTree *treeR){
   // Creating the branch (see AliITSUpgradeReconstructor::Reconstruct)
   //
 
-  if(!fRecPoints)fRecPoints = new TClonesArray("AliITSRecPoint",1000);
+  if(!fRecPoints)fRecPoints = new TClonesArray("AliITSRecPointU",1000);
   if (treeR) {
     TBranch *branch = treeR->GetBranch("ITSRecPoints");
     if (branch) return ;
@@ -782,7 +784,7 @@ void AliITSUpgradeClusterFinder::SetRecPointTreeAddress(TTree *treeR){
   // Addressing the branch (see AliITSUpgradeReconstructor::Reconstruct)
   //
   if(!treeR) return;
-  if(!fRecPoints) fRecPoints = new TClonesArray("AliITSRecPoint",1000);
+  if(!fRecPoints) fRecPoints = new TClonesArray("AliITSRecPointU",1000);
 
   TBranch *branch;
   branch = treeR->GetBranch("ITSRecPoints");
@@ -797,7 +799,7 @@ void AliITSUpgradeClusterFinder::DigitsToRecPoints(const TObjArray *digList) {
   // the clusterization is performed here
   //
   AliITSsegmentationUpgrade *segmentation = new AliITSsegmentationUpgrade(); 
-  AliITSRecPoint  recpnt;
+  AliITSRecPointU  recpnt;
   Int_t nClusters =0;
   TClonesArray &lrecp = *fRecPoints;
 
@@ -834,7 +836,7 @@ void AliITSUpgradeClusterFinder::DigitsToRecPoints(const TObjArray *digList) {
       xzl2[1] = zPixC2*(segmentation->GetCellSizeZ(ilayer))+0.5*(segmentation->GetCellSizeZ(ilayer))-(segmentation->GetHalfLength(ilayer));
       check2 = segmentation->DetToGlobal(ilayer,xzl2[0], xzl2[1],xcheck2,ycheck2,zcheck2);
       recpnt.SetType(GetClusterType(ilayer,nClu ));
-      // recpnt.SetLocalCoord(xzl2[0],xzl2[1]); //temporary solution (no LocalToTrack Matrix)
+      recpnt.SetLocalCoord(xzl2[0],xzl2[1]); //temporary solution (no LocalToTrack Matrix)
       //from global to tracking system coordinate
       // global coordinate -> local coordinate getting alpha angle of the recpoint
       Float_t xclg = xcheck2;//upgrade clusters global coordinate ( ITS official: GetX tracking coordinate)
@@ -867,7 +869,7 @@ void AliITSUpgradeClusterFinder::DigitsToRecPoints(const TObjArray *digList) {
       segmentation->GetSegmentation(ilayer,xsize, zsize);
       recpnt.SetSigmaY2(xsize/TMath::Sqrt(12)*xsize/TMath::Sqrt(12));
       recpnt.SetSigmaZ2(zsize/TMath::Sqrt(12)*zsize/TMath::Sqrt(12));
-      new(lrecp[nClusters++]) AliITSRecPoint(recpnt);
+      new(lrecp[nClusters++]) AliITSRecPointU(recpnt);
       //Int_t idx = fRecPoints->GetEntries();
       AliDebug(1,Form("recpoint : Nelectrons %f (entry %i)",recpnt.GetQ(),fRecPoints->GetEntries()));
     }//cluster list entries
index 078b0211d2d79c28c39a848f153ee0c5d13fe66f..fe3611ac75617dbf5118c288e2645043a59f884c 100644 (file)
@@ -1647,7 +1647,7 @@ AliCluster *AliITStrackerUpgrade::GetCluster(Int_t index) const {
   //--------------------------------------------------------------------
   Int_t l=(index & 0xf0000000) >> 28;
   Int_t c=(index & 0x0fffffff) >> 0;
-  AliInfo(Form("index %i  cluster index %i layer %i", index,c,l));
+  AliDebug(2,Form("index %i  cluster index %i layer %i", index,c,l));
   return fLayers[l]->GetCluster(c);
 }
 //______________________________________________________________________________
index 64816d00188b08e4ba1e67ee38a48eda7e78009b..5ad30fc53ccaf54147bfb534cbcfa2c319501a9a 100644 (file)
@@ -40,6 +40,8 @@ class AliITSupgrade : public AliITS //TObject-TNamed-AliModule-AliDetector-AliIT
   AliITSupgrade(const char *name, const char *title, Bool_t isBeamPipe=kTRUE);  //ctor for standard ITS 
   AliITSupgrade(const char *name, const char *title, TArrayD widths, TArrayD radii,TArrayD halfLengths, TArrayD radiiCu, TArrayD widthsCu, TArrayS copper,Bool_t bp, Double_t radiusBP, Double_t widthPB, Double_t halfLengthsBP);  //ctor
   virtual       ~AliITSupgrade();                                       //dtor
+  Int_t IsVersion() const {return 110;}// same as ITSv11Hybrid to comply with the AliITSInitGeom cases
   
   //framework part+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
   void    AddAlignableVolumes() const;             //from AliModule invoked from AliMC           
index c222fa6389490616310cde70152023c227fabff5..a7533a25fee4a7fedb8b2de8f963804e7468329a 100644 (file)
@@ -264,51 +264,11 @@ void Config()
   if (iITS)
     {
       //=================== ITS parameters ============================
-
-      Int_t  nlayers =6;
-      TArrayD xsize(nlayers);
-      TArrayD zsize(nlayers);
-      TArrayD spess(nlayers);
-      TArrayD radii(nlayers);
-       
-      TArrayD spessCu(nlayers);
-      TArrayD radiiCu(nlayers);
-      TArrayS copper(nlayers);
-      TArrayD halfLengths(nlayers);
-
-      Bool_t bp=kFALSE;
-      Double_t radiusBP = 2.9;
-      Double_t widthBP = 0.08;
-      Double_t halflengthBP = 80.;
-
-      for(Int_t i=0; i<nlayers; i++){
-       Double_t xsz[6]={31.18*1e-04,41.6*1e-04,131.6*1e-04,131.6*1e-04,69.3*1e-04,69.3*1e-04};
-       Double_t zsz[6]={416*1e-04,416*1e-04,97*1e-04,97*1e-04,2875*1e-04,2875*1e-04};
-       Double_t Lhalf[6]={80.,80.,80.,80.,80.,80.};
-       Int_t npixHalf[6];
-       npixHalf[i]=(Int_t)(Lhalf[i]/zsz[i]); 
-       Double_t HalfL[6];
-       HalfL[i]=npixHalf[i]*zsz[i];
-       Double_t r[6]={4.,7.6,14.9,23.8,39.1,43.6};
-       radii.AddAt(r[i],i);
-       Int_t npixR[6];
-       npixR[i] = (Int_t)(2*TMath::Pi()*r[i]/xsz[i]);
-       Double_t xszInt[6];
-       xszInt[i]= 2*TMath::Pi()*r[i]/npixR[i];
-       xsize.AddAt(xszInt[i],i);
-       zsize.AddAt(zsz[i],i);
-       Double_t thick[6]={75.*1e-04,150.*1e-04,150.*1e-04,150.*1e-04,150.*1e-04,150.*1e-04};
-
-       radiiCu.AddAt(r[i]+thick[i],i);
-       halfLengths.AddAt(HalfL[i],i);
-       spess.AddAt(thick[i],i);
-       spessCu.AddAt(0.015,i);//micron
-       Int_t c[6]={1,1,1,1,1,1};
-       copper.AddAt(c[i],i);
-      }
-      AliITSupgrade *ITS  = new AliITSupgrade("ITS","ITS upgrade",spess,radii,halfLengths,radiiCu,spessCu,copper,bp,radiusBP, widthBP, halflengthBP );
-     
-      ITS->SetFullSegmentation(xsize,zsize);
+      Bool_t isUpgrade = kTRUE;
+      AliITS *ITS = 0x0;
+      if(isUpgrade) ITS  = new AliITSupgrade("ITS","ITS Upgrade");
+      else ITS = new AliITSv11Hybrid("ITS","ITS v11Hybrid");
+    
     }