+ virtual void StepManager()=0;
+ AliTPCDigitsArray* GetDigitsArray() {return fDigitsArray;} //MI change
+ AliTPCParam *GetParam(){return fTPCParam;} // M.K, M.I changes
+ void SetParam(AliTPCParam *param){fTPCParam=param;} // M.K, M.I changes
+ void SetDigitsArray(AliTPCDigitsArray* param) {fDigitsArray=param;} //MI change
+
+// additional function neccesary for the new hits
+ virtual void MakeBranch(Option_t *opt=" "); //
+ virtual void SetTreeAddress();
+ virtual void SetTreeAddress2();
+ virtual void AddHit2(Int_t a1, Int_t *a2, Float_t *a3); //
+ virtual void ResetHits();
+ virtual void ResetHits2();
+ virtual AliHit* FirstHit(Int_t track);
+ virtual AliHit* NextHit();
+ virtual AliHit* FirstHit2(Int_t track);
+ virtual AliHit* NextHit2();
+ virtual void FinishPrimary();
+ virtual void RemapTrackHitIDs(Int_t *map);
+ void SetHitType(Int_t type){fHitType =type;} //set type of hit container
+ void SetDigitsSwitch(Int_t sw){fDigitsSwitch = sw;}
+ void SetDefSwitch(Int_t def){fDefaults = def;}
+ Float_t GetNoise(); //get Current noise
+ void GenerNoise(Int_t tablasize); // make noise table
+ Bool_t IsSectorActive(Int_t sec) const; // check if the sector is active
+ void SetActiveSectors(Int_t * sectors, Int_t n); //set active sectors
+ Int_t GetHitType() const {return fHitType;}
+ void SetActiveSectors(Int_t flag=1); //loop over al hits and set active only hitted sectors
+ Bool_t TrackInVolume(Int_t id,Int_t track); //return true if current track is in volume
+ void SetPrimaryIonisation(Bool_t flag = kTRUE) {fPrimaryIonisation = flag;}
+ void SetGainFactor(Float_t gain){fGainFactor=gain;} //gas gain scaling factor
+ Float_t GetGainFactor()const {return fGainFactor;}//gas gain scaling factor
+ // LHC clock phase switch 0 - no phase, 1 - random, 2 - from the OCDB
+ void SetLHCclockPhase(Int_t sw){fLHCclockPhaseSw = sw;}
+// static functions
+ static AliTPCParam* LoadTPCParam(TFile *file);
+protected:
+ Int_t fDefaults; // defaults switch
+ Int_t fSens; // ISENS
+ Int_t fNsectors; // Number of sectors in TPC
+ //MI changes
+ AliTPCDigitsArray * fDigitsArray; //! detector digit object
+ AliTPCParam *fTPCParam; // pointer to TPC parameters
+ AliTPCTrackHitsV2 *fTrackHits; //! hits for given track M.I.
+ // AliTPCTrackHits *fTrackHitsOld; //! hits for given track M.I. MIold -
+
+ Int_t fHitType; // if fNewHit = 1 old data structure if 2 new hits if 4 old MI stucture
+ // 3 both types
+ Int_t fDigitsSwitch; // digits type, 0->normal, 1->summable
+
+ //MK changes
+
+ Float_t fSide; // selects left(-1), right(+1), or both(0) sides of the TPC
+ Bool_t fPrimaryIonisation; //switch between Fluka(true) and geant3(false)
+ protected:
+ AliTPC(const AliTPC& t);
+ AliTPC &operator = (const AliTPC & param);