@@ -120,10 +120,10 @@ class Digitizer
120120 // / \param nRBins number of grid points in r, must be (2**N)+1
121121 void setUseSCDistortions (const SCDistortionType& distortionType, const TH3 * hisInitialSCDensity);
122122 // / Enable the use of space-charge distortions and provide SpaceCharge object as input
123- // / \param spaceCharge unique pointer to spaceCharge object
123+ // / \param spaceCharge spaceCharge object, not owned: the caller (e.g. the DPL CCDB cache) keeps it alive
124124 void setUseSCDistortions (SC * spaceCharge);
125125
126- // / \param spaceCharge unique pointer to spaceCharge object
126+ // / \param spaceCharge spaceCharge object of the derivative map, not owned: the caller keeps it alive
127127 void setSCDistortionsDerivative (SC * spaceCharge);
128128
129129 // / Enable the use of space-charge distortions by providing global distortions and global corrections stored in a ROOT file
@@ -163,21 +163,22 @@ class Digitizer
163163 ULong64_t mSeedingTimeframe = 0 ; // !< Timeframe identifier for sector seeding
164164 bool mUseSectorSeeding = false ; // !< Whether sector seeding is used
165165
166- DigitContainer mDigitContainer ; // /< Container for the Digits
167- std::vector<float > mSignalArray ; // !< Workspace for the shaped signal of one electron
168- std::unique_ptr<SC > mSpaceCharge ; // /< Handler of full distortions (static + IR dependant)
169- std::unique_ptr<SC > mSpaceChargeDer ; // /< Handler of reference static distortions
170- Sector mSector = -1 ; // /< ID of the currently processed sector
171- double mEventTime = 0 .f; // /< Time of the currently processed event
172- double mOutputDigitTimeOffset = 0 ; // /< Time of the first IR sampled in the digitizer
173- float mVDrift = 0 ; // /< VDrift for current timestamp
174- float mTDriftOffset = 0 ; // /< drift time additive offset in \mus
175- bool mIsContinuous ; // /< Switch for continuous readout
176- bool mUseSCDistortions = false ; // /< Flag to switch on the use of space-charge distortions
177- int mDistortionScaleType = 0 ; // /< type=0: no scaling of distortions, type=1 distortions without any scaling, type=2 distortions scaling with lumi
178- float mLumiScaleFactor = 0 ; // /< value used to scale the derivative map
179- bool mUseScaledDistortions = false ; // /< whether the distortions are already scaled
180- ClassDefNV (Digitizer, 3 );
166+ DigitContainer mDigitContainer ; // /< Container for the Digits
167+ std::vector<float > mSignalArray ; // !< Workspace for the shaped signal of one electron
168+ std::unique_ptr<SC > mSpaceChargeOwned ; // !< Distortions created by the digitizer itself
169+ SC * mSpaceCharge = nullptr ; // !< Handler of full distortions (static + IR dependant), owned by mSpaceChargeOwned or by the caller
170+ SC * mSpaceChargeDer = nullptr ; // !< Handler of reference static distortions, owned by the caller
171+ Sector mSector = -1 ; // /< ID of the currently processed sector
172+ double mEventTime = 0 .f; // /< Time of the currently processed event
173+ double mOutputDigitTimeOffset = 0 ; // /< Time of the first IR sampled in the digitizer
174+ float mVDrift = 0 ; // /< VDrift for current timestamp
175+ float mTDriftOffset = 0 ; // /< drift time additive offset in \mus
176+ bool mIsContinuous ; // /< Switch for continuous readout
177+ bool mUseSCDistortions = false ; // /< Flag to switch on the use of space-charge distortions
178+ int mDistortionScaleType = 0 ; // /< type=0: no scaling of distortions, type=1 distortions without any scaling, type=2 distortions scaling with lumi
179+ float mLumiScaleFactor = 0 ; // /< value used to scale the derivative map
180+ bool mUseScaledDistortions = false ; // /< whether the distortions are already scaled
181+ ClassDefNV (Digitizer, 4 );
181182};
182183} // namespace tpc
183184} // namespace o2
0 commit comments