Added GetSimulationMoel, and fixed up SetDefaultSimulation to do the
authornilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 5 May 2002 21:06:55 +0000 (21:06 +0000)
committernilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 5 May 2002 21:06:55 +0000 (21:06 +0000)
proper initilization when a simulation has already been defined.

ITS/AliITS.cxx
ITS/AliITS.h

index 9361e250e1409c43c59d07e438d267983842d9ad..c1cf4e8c1311c17687c1482649079b464d48db08 100644 (file)
 
 /*
 $Log$
+Revision 1.68  2002/05/02 18:51:53  nilsen
+AliITS.h
+   Method MakeBranchR has now a second argument, with a default value:
+       Option_t *opt=" ". Opt="Fast" is to create a separate branch
+       for fast points in TreeR
+   New method MakeBranchRF: it a separate branch in TreeR for Fast Points
+
+AliITS.cxx
+1) TTree->Write() replaced with TTree->AutoSave for TreeS, TreeD and
+   TreeR
+2) Changes in MakeBranchR to allow the creation of a special branch
+   for fast points
+
 Revision 1.67  2002/03/15 17:22:51  nilsen
 Intoduced SDigits2Digits and SDigitsToDigits functions.
 
@@ -595,29 +608,57 @@ void AliITS::SetDefaultSimulation(){
     //      none.
 
     AliITSDetType *iDetType;
+    AliITSsimulation *sim;
     iDetType=DetType(0);
-    if (!iDetType->GetSimulationModel()) {
+    sim = iDetType->GetSimulationModel();
+    if (!sim) {
        AliITSsegmentation *seg0=
            (AliITSsegmentation*)iDetType->GetSegmentationModel();
        AliITSresponse *res0 = (AliITSresponse*)iDetType->GetResponseModel();
        AliITSsimulationSPD *sim0=new AliITSsimulationSPD(seg0,res0);
        SetSimulationModel(0,sim0);
+    }else{ // simulation exists, make sure it is set up properly.
+       ((AliITSsimulationSPD*)sim)->Init(
+           (AliITSsegmentationSPD*) iDetType->GetSegmentationModel(),
+           (AliITSresponseSPD*) 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);
-    if (!iDetType->GetSimulationModel()) {
+    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);
-    if (!iDetType->GetSimulationModel()) {
+    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
 }
 //______________________________________________________________________
index aad59af95d3dc9791649fdd757307745362ae8e8..39f50e15934877e0fd20fcff46cc6d89c8832a1b 100644 (file)
 
 #include "AliRun.h"
 #include "AliDetector.h"
+#include "AliITSDetType.h"
 
 class TString;
 class TTree;
 class TFile;
 
-class AliITSDetType;
+//class AliITSDetType;
 class AliITSsimulation;
 class AliITSClusterFinder;
 class AliITSsegmentation;
@@ -88,6 +89,9 @@ class AliITS : public AliDetector {
     virtual void SetSegmentationModel(Int_t id, AliITSsegmentation *seg);
     // Set simulation - temporary 
     virtual void SetSimulationModel(Int_t id, AliITSsimulation *sim);
+    // Set simulation - temporary 
+    virtual AliITSsimulation* GetSimulationModel(Int_t id){
+       return ((AliITSDetType*)(fDetTypes->At(id)))->GetSimulationModel();}
     // Set reconstruction 
     virtual void SetReconstructionModel(Int_t id, AliITSClusterFinder *rec);
     // Set class names for digit and rec point