#include "AliITSgeomSDD.h"
#include "AliITSgeomSSD.h"
#include "AliITSDetType.h"
-#include "AliITSresponseSPD.h"
+#include "AliITSresponseSPDdubna.h"
#include "AliITSresponseSDD.h"
#include "AliITSresponseSSD.h"
#include "AliITSsegmentationSPD.h"
#include "AliITSsegmentationSDD.h"
#include "AliITSsegmentationSSD.h"
-#include "AliITSsimulationSPD.h"
+#include "AliITSsimulationSPDdubna.h"
#include "AliITSsimulationSDD.h"
#include "AliITSsimulationSSD.h"
#include "AliITSClusterFinderSPD.h"
strncpy(fWrite,fEuclidGeomDet,60);
}
//______________________________________________________________________
-AliITSvSPD02::AliITSvSPD02(const AliITSvSPD02 &source){
+AliITSvSPD02::AliITSvSPD02(const AliITSvSPD02 &source) : AliITS(source){
////////////////////////////////////////////////////////////////////////
// Copy Constructor for ITS SPD test beam 2002 version 1.
// This class is not to be copied. Function only dummy.
cout << "Reading Geometry informaton from Geant3 common blocks" << endl;
for(i=0;i<20;i++) lnam[i] = lnum[i] = 0;
for(i=0;i<ltypess;i++)for(j=0;j<ndeep;j++)
- itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
+ strncpy((char*) &itsGeomTreeNames[i][j],names[i][j],4);
+ // itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
mod = 5;
-
if(fITSgeom!=0) delete fITSgeom;
nlad[0]=1;nlad[1]=1;nlad[2]=1;nlad[3]=1;nlad[4]=1;
ndet[0]=1;ndet[1]=1;ndet[2]=1;ndet[3]=1;ndet[4]=1;
iDetType=DetType(kSPD);
// Get shape info. Do it this way for now.
s0 = (AliITSgeomSPD*) fITSgeom->GetShape(kSPD);
- AliITSresponse *resp0=new AliITSresponseSPD();
+ AliITSresponse *resp0=new AliITSresponseSPDdubna();
+ ((AliITSresponseSPDdubna*)resp0)->SetNoiseParam();
+ resp0->SetTemperature();
+ resp0->SetDistanceOverVoltage();
SetResponseModel(kSPD,resp0);
AliITSsegmentationSPD *seg0=new AliITSsegmentationSPD(fITSgeom);
seg0->SetDetSize(s0->GetDx()*2.*kconv, // base this on AliITSgeomSPD
return;
}
//______________________________________________________________________
+void AliITSvSPD02::SetDefaultSimulation(){
+ // sets the default simulation.
+ // Inputs:
+ // none.
+ // Outputs:
+ // none.
+ // Return:
+ // none.
+
+ AliITSDetType *iDetType;
+ AliITSsimulation *sim;
+ iDetType=DetType(0);
+ sim = iDetType->GetSimulationModel();
+ if (!sim) {
+ AliITSsegmentation *seg0=
+ (AliITSsegmentation*)iDetType->GetSegmentationModel();
+ AliITSresponse *res0 = (AliITSresponse*)iDetType->GetResponseModel();
+ AliITSsimulationSPDdubna *sim0=new AliITSsimulationSPDdubna(seg0,res0);
+ SetSimulationModel(0,sim0);
+ }else{ // simulation exists, make sure it is set up properly.
+ ((AliITSsimulationSPDdubna*)sim)->Init(
+ (AliITSsegmentationSPD*) iDetType->GetSegmentationModel(),
+ (AliITSresponseSPDdubna*) iDetType->GetResponseModel());
+// if(sim->GetResponseModel()==0) sim->SetResponseModel(
+// (AliITSresponse*)iDetType->GetResponseModel());
+// if(sim->GetSegmentationModel()==0) sim->SetSegmentationModel(
+// (AliITSsegmentation*)iDetType->GetSegmentationModel());
+ } // end if
+ iDetType=DetType(1);
+ sim = iDetType->GetSimulationModel();
+ if (!sim) {
+ AliITSsegmentation *seg1=
+ (AliITSsegmentation*)iDetType->GetSegmentationModel();
+ AliITSresponse *res1 = (AliITSresponse*)iDetType->GetResponseModel();
+ AliITSsimulationSDD *sim1=new AliITSsimulationSDD(seg1,res1);
+ SetSimulationModel(1,sim1);
+ }else{ // simulation exists, make sure it is set up properly.
+ ((AliITSsimulationSDD*)sim)->Init(
+ (AliITSsegmentationSDD*) iDetType->GetSegmentationModel(),
+ (AliITSresponseSDD*) iDetType->GetResponseModel());
+// if(sim->GetResponseModel()==0) sim->SetResponseModel(
+// (AliITSresponse*)iDetType->GetResponseModel());
+// if(sim->GetSegmentationModel()==0) sim->SetSegmentationModel(
+// (AliITSsegmentation*)iDetType->GetSegmentationModel());
+ } //end if
+ iDetType=DetType(2);
+ sim = iDetType->GetSimulationModel();
+ if (!sim) {
+ AliITSsegmentation *seg2=
+ (AliITSsegmentation*)iDetType->GetSegmentationModel();
+ AliITSresponse *res2 = (AliITSresponse*)iDetType->GetResponseModel();
+ AliITSsimulationSSD *sim2=new AliITSsimulationSSD(seg2,res2);
+ SetSimulationModel(2,sim2);
+ }else{ // simulation exists, make sure it is set up properly.
+ ((AliITSsimulationSSD*)sim)->Init(
+ (AliITSsegmentationSSD*) iDetType->GetSegmentationModel(),
+ (AliITSresponseSSD*) iDetType->GetResponseModel());
+// if(sim->GetResponseModel()==0) sim->SetResponseModel(
+// (AliITSresponse*)iDetType->GetResponseModel());
+// if(sim->GetSegmentationModel()==0) sim->SetSegmentationModel(
+// (AliITSsegmentation*)iDetType->GetSegmentationModel());
+ } // end if
+}
+//______________________________________________________________________
void AliITSvSPD02::DrawModule(){
////////////////////////////////////////////////////////////////////////
// Draw a shaded view of the ITS SPD test beam version 1.
copy = fTrackReferences->GetEntriesFast();
TClonesArray &lTR = *fTrackReferences;
// Fill TrackReference structure with this new TrackReference.
- new(lTR[copy]) AliTrackReference(gAlice->CurrentTrack());
+ new(lTR[copy]) AliTrackReference(gAlice->GetCurrentTrackNumber());
} // if Outer ITS mother Volume
if(!(this->IsActive())){
return;
return;
} // end if IsEntering
// Fill hit structure with this new hit only for non-entrerance hits.
- else new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,
+ else new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetCurrentTrackNumber(),vol,
gMC->Edep(),gMC->TrackTime(),position,
position0,momentum);
//