--- /dev/null
+/**************************************************************************
+ * 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. *
+ **************************************************************************/
+
+//
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Laser for the TPChamber version 2 -- detailed TPC and slow simulation //
+// //
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdlib.h>
+
+#include <TLorentzVector.h>
+#include <TMath.h>
+#include <TPDGCode.h>
+#include <TVirtualMC.h>
+
+#include "AliConst.h"
+#include "AliLog.h"
+#include "AliMC.h"
+#include "AliRun.h"
+#include "AliTPCDigitsArray.h"
+#include "AliTPCParam.h"
+#include "AliTPCParamSR.h"
+#include "AliTPCTrackHitsV2.h"
+#include "AliTPCLaser.h"
+
+ClassImp(AliTPCLaser)
+
+//_____________________________________________________________________________
+AliTPCLaser::AliTPCLaser(const char *name, const char *title) :
+ AliTPCv2(name, title)
+{
+ // only use the AliTPCv2 constructor
+}
+//______________________________________________________________
+void AliTPCLaser::StepManager()
+{
+ // laser tracks are muons (PID=13)
+ // stopped in the the inner containment vessel (PID=14)
+
+ TVirtualMC* mc = TVirtualMC::GetMC();
+ Int_t copy, vol;
+ vol = mc->CurrentVolID(copy);
+ // Debug
+ // printf("Vol name %s\n",mc->CurrentVolName());
+ if (mc->TrackPid() == 13 // muons
+ && vol == 14) {// 14 = TIIN (inner containment vessel)
+ mc->StopTrack();
+ return;
+ }
+ AliTPCv2::StepManager();
+}
--- /dev/null
+/**************************************************************************
+ * 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. *
+ **************************************************************************/
+
+#ifndef ALITPCLASER_H
+#define ALITPCLASER_H
+
+////////////////////////////////////////////////
+// Laser for TPCv2 //
+////////////////////////////////////////////////
+
+
+#include "AliTPCv2.h"
+
+class AliTPCLaser : public AliTPCv2 {
+
+public:
+ AliTPCLaser() {}
+ AliTPCLaser(const char *name, const char *title);
+ virtual ~AliTPCLaser() {}
+
+ virtual void StepManager();
+
+ ClassDef(AliTPCLaser,1) // For Laser
+};
+
+#endif
if (fIteration>1) {t.fNFoundable++; return 0;} // not look for new cluster during refitting
//
UInt_t index=0;
- if (TMath::Abs(t.GetSnp())>0.95 || TMath::Abs(x*t.GetC()-t.GetEta())>0.95) return 0;
+ // if (TMath::Abs(t.GetSnp())>0.95 || TMath::Abs(x*t.GetC()-t.GetEta())>0.95) return 0;// patch 28 fev 06
Double_t y=t.GetYat(x);
if (TMath::Abs(y)>ymax){
if (y > ymax) {
Double_t ymax= GetMaxY(nr);
if (row < nr) return 1; // don't prolongate if not information until now -
- if (TMath::Abs(t.GetSnp())>0.9 && t.GetNumberOfClusters()>40. && fIteration!=2) {
- t.fRemoval =10;
- return 0; // not prolongate strongly inclined tracks
- }
- if (TMath::Abs(t.GetSnp())>0.95) {
- t.fRemoval =10;
- return 0; // not prolongate strongly inclined tracks
- }
+// if (TMath::Abs(t.GetSnp())>0.9 && t.GetNumberOfClusters()>40. && fIteration!=2) {
+// t.fRemoval =10;
+// return 0; // not prolongate strongly inclined tracks
+// }
+// if (TMath::Abs(t.GetSnp())>0.95) {
+// t.fRemoval =10;
+// return 0; // not prolongate strongly inclined tracks
+// }// patch 28 fev 06
Double_t x= GetXrow(nr);
Double_t y,z;
//
if (first<0) first=0;
for (Int_t nr=first; nr<=rf; nr++) {
- if ( (TMath::Abs(t.GetSnp())>0.95)) break;
+ // if ( (TMath::Abs(t.GetSnp())>0.95)) break;//patch 28 fev 06
if (t.GetKinkIndexes()[0]<0){
for (Int_t i=0;i<3;i++){
Int_t index = t.GetKinkIndexes()[i];
Float_t dedx = seed->GetdEdx();
esd->SetTPCsignal(dedx, sdedx, ndedx);
ntracks++;
+ Int_t eventnumber = event->GetEventNumber();// patch 28 fev 06
+ (*fDebugStreamer)<<"Cback"<<
+ "Tr0.="<<seed<<
+ "EventNr="<<eventnumber<<
+ "\n"; // patch 28 fev 06
}
}
//FindKinks(fSeeds,event);
for (Int_t i=0;i<nseed;i++){
AliTPCseed *pt=(AliTPCseed*)arr2->UncheckedAt(i);
if (pt){
-
+ // REMOVE VERY SHORT TRACKS
+ if (pt->GetNumberOfClusters()<20){
+ delete arr2->RemoveAt(i);
+ continue;
+ }// patch 28 fev06
// NORMAL ACTIVE TRACK
if (pt->IsActive()){
arr1->AddLast(arr2->RemoveAt(i));
delete arr2->RemoveAt(i);
continue;
}
- // REMOVE VERY SHORT TRACKS
- if (pt->GetNumberOfClusters()<20){
- delete arr2->RemoveAt(i);
- continue;
- }
+
// ENABLE ONLY ENOUGH GOOD STOPPED TRACKS
if (pt->GetDensityFirst(20)>0.8 || pt->GetDensityFirst(30)>0.8 || pt->GetDensityFirst(40)>0.7)
arr1->AddLast(arr2->RemoveAt(i));
#pragma link C++ class AliTPCv1+;
#pragma link C++ class AliTPCv2+;
#pragma link C++ class AliTPCv3+;
+#pragma link C++ class AliTPCLaser+;
//#pragma link C++ class AliTrackHitsInfo+; // defined in AliTPCTrackHits.h
//#pragma link C++ class AliTrackHitsParam+; // defined in AliTPCTrackHits.h
SRCS:= AliTPC.cxx \
AliTPCv0.cxx AliTPCv1.cxx AliTPCv2.cxx AliTPCv3.cxx \
+ AliTPCLaser.cxx \
AliTPCTrackHitsV2.cxx \
AliTPCDigitizer.cxx \
AliTPCBuffer.cxx AliTPCDDLRawData.cxx